summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2016-10-11 12:59:38 -0400
committerAnthony G. Basile <blueness@gentoo.org>2016-10-11 12:59:38 -0400
commite18599fdb6d5103524c963e63a505efea4a5d693 (patch)
tree04abfadc60d630d1402cd8ed93011071b9b63ea4
parentgrsecurity-3.1-4.7.6-201609301918 (diff)
downloadhardened-patchset-e18599fdb6d5103524c963e63a505efea4a5d693.tar.gz
hardened-patchset-e18599fdb6d5103524c963e63a505efea4a5d693.tar.bz2
hardened-patchset-e18599fdb6d5103524c963e63a505efea4a5d693.zip
grsecurity-3.1-4.7.7-20161010190220161010
-rw-r--r--4.7.6/1005_linux-4.7.6.patch2572
-rw-r--r--4.7.7/0000_README (renamed from 4.7.6/0000_README)6
-rw-r--r--4.7.7/1006_linux-4.7.7.patch3811
-rw-r--r--4.7.7/4420_grsecurity-3.1-4.7.7-201610101902.patch (renamed from 4.7.6/4420_grsecurity-3.1-4.7.6-201609301918.patch)50268
-rw-r--r--4.7.7/4425_grsec_remove_EI_PAX.patch (renamed from 4.7.6/4425_grsec_remove_EI_PAX.patch)0
-rw-r--r--4.7.7/4427_force_XATTR_PAX_tmpfs.patch (renamed from 4.7.6/4427_force_XATTR_PAX_tmpfs.patch)0
-rw-r--r--4.7.7/4430_grsec-remove-localversion-grsec.patch (renamed from 4.7.6/4430_grsec-remove-localversion-grsec.patch)0
-rw-r--r--4.7.7/4435_grsec-mute-warnings.patch (renamed from 4.7.6/4435_grsec-mute-warnings.patch)0
-rw-r--r--4.7.7/4440_grsec-remove-protected-paths.patch (renamed from 4.7.6/4440_grsec-remove-protected-paths.patch)0
-rw-r--r--4.7.7/4450_grsec-kconfig-default-gids.patch (renamed from 4.7.6/4450_grsec-kconfig-default-gids.patch)0
-rw-r--r--4.7.7/4465_selinux-avc_audit-log-curr_ip.patch (renamed from 4.7.6/4465_selinux-avc_audit-log-curr_ip.patch)0
-rw-r--r--4.7.7/4470_disable-compat_vdso.patch (renamed from 4.7.6/4470_disable-compat_vdso.patch)0
-rw-r--r--4.7.7/4475_emutramp_default_on.patch (renamed from 4.7.6/4475_emutramp_default_on.patch)0
13 files changed, 30785 insertions, 25872 deletions
diff --git a/4.7.6/1005_linux-4.7.6.patch b/4.7.6/1005_linux-4.7.6.patch
deleted file mode 100644
index 5699974..0000000
--- a/4.7.6/1005_linux-4.7.6.patch
+++ /dev/null
@@ -1,2572 +0,0 @@
-diff --git a/Makefile b/Makefile
-index dd755d1..48b0120 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 4
- PATCHLEVEL = 7
--SUBLEVEL = 5
-+SUBLEVEL = 6
- EXTRAVERSION =
- NAME = Psychotic Stoned Sheep
-
-@@ -370,7 +370,7 @@ LDFLAGS_MODULE =
- CFLAGS_KERNEL =
- AFLAGS_KERNEL =
- LDFLAGS_vmlinux =
--CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im -Wno-maybe-uninitialized
-+CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im
- CFLAGS_KCOV = -fsanitize-coverage=trace-pc
-
-
-@@ -619,12 +619,13 @@ ARCH_CFLAGS :=
- include arch/$(SRCARCH)/Makefile
-
- KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
-+KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
-
- ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
--KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS += -Os
- else
- ifdef CONFIG_PROFILE_ALL_BRANCHES
--KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS += -O2
- else
- KBUILD_CFLAGS += -O2
- endif
-diff --git a/arch/arc/Makefile b/arch/arc/Makefile
-index 85814e7..601ed17 100644
---- a/arch/arc/Makefile
-+++ b/arch/arc/Makefile
-@@ -74,9 +74,7 @@ endif
- ifndef CONFIG_CC_OPTIMIZE_FOR_SIZE
- # Generic build system uses -O2, we want -O3
- # Note: No need to add to cflags-y as that happens anyways
--#
--# Disable the false maybe-uninitialized warings gcc spits out at -O3
--ARCH_CFLAGS += -O3 $(call cc-disable-warning,maybe-uninitialized,)
-+ARCH_CFLAGS += -O3
- endif
-
- # small data is default for elf32 tool-chain. If not usable, disable it
-diff --git a/arch/arm/crypto/aes-ce-glue.c b/arch/arm/crypto/aes-ce-glue.c
-index da3c042..aef022a 100644
---- a/arch/arm/crypto/aes-ce-glue.c
-+++ b/arch/arm/crypto/aes-ce-glue.c
-@@ -284,7 +284,7 @@ static int ctr_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst,
- err = blkcipher_walk_done(desc, &walk,
- walk.nbytes % AES_BLOCK_SIZE);
- }
-- if (nbytes) {
-+ if (walk.nbytes % AES_BLOCK_SIZE) {
- u8 *tdst = walk.dst.virt.addr + blocks * AES_BLOCK_SIZE;
- u8 *tsrc = walk.src.virt.addr + blocks * AES_BLOCK_SIZE;
- u8 __aligned(8) tail[AES_BLOCK_SIZE];
-diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c
-index 5c88804..6b2aa0f 100644
---- a/arch/arm64/crypto/aes-glue.c
-+++ b/arch/arm64/crypto/aes-glue.c
-@@ -216,7 +216,7 @@ static int ctr_encrypt(struct blkcipher_desc *desc, struct scatterlist *dst,
- err = blkcipher_walk_done(desc, &walk,
- walk.nbytes % AES_BLOCK_SIZE);
- }
-- if (nbytes) {
-+ if (walk.nbytes % AES_BLOCK_SIZE) {
- u8 *tdst = walk.dst.virt.addr + blocks * AES_BLOCK_SIZE;
- u8 *tsrc = walk.src.virt.addr + blocks * AES_BLOCK_SIZE;
- u8 __aligned(8) tail[AES_BLOCK_SIZE];
-diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
-index 490db85..95e32d9 100644
---- a/arch/arm64/kernel/smp.c
-+++ b/arch/arm64/kernel/smp.c
-@@ -201,12 +201,6 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle)
- return ret;
- }
-
--static void smp_store_cpu_info(unsigned int cpuid)
--{
-- store_cpu_topology(cpuid);
-- numa_store_cpu_info(cpuid);
--}
--
- /*
- * This is the secondary CPU boot entry. We're using this CPUs
- * idle thread stack, but a set of temporary page tables.
-@@ -254,7 +248,7 @@ asmlinkage void secondary_start_kernel(void)
- */
- notify_cpu_starting(cpu);
-
-- smp_store_cpu_info(cpu);
-+ store_cpu_topology(cpu);
-
- /*
- * OK, now it's safe to let the boot CPU continue. Wait for
-@@ -687,10 +681,13 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
- {
- int err;
- unsigned int cpu;
-+ unsigned int this_cpu;
-
- init_cpu_topology();
-
-- smp_store_cpu_info(smp_processor_id());
-+ this_cpu = smp_processor_id();
-+ store_cpu_topology(this_cpu);
-+ numa_store_cpu_info(this_cpu);
-
- /*
- * If UP is mandated by "nosmp" (which implies "maxcpus=0"), don't set
-@@ -717,6 +714,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
- continue;
-
- set_cpu_present(cpu, true);
-+ numa_store_cpu_info(cpu);
- }
- }
-
-diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
-index f0e314c..7f975b2 100644
---- a/arch/mips/Kconfig.debug
-+++ b/arch/mips/Kconfig.debug
-@@ -113,42 +113,6 @@ config SPINLOCK_TEST
- help
- Add several files to the debugfs to test spinlock speed.
-
--if CPU_MIPSR6
--
--choice
-- prompt "Compact branch policy"
-- default MIPS_COMPACT_BRANCHES_OPTIMAL
--
--config MIPS_COMPACT_BRANCHES_NEVER
-- bool "Never (force delay slot branches)"
-- help
-- Pass the -mcompact-branches=never flag to the compiler in order to
-- force it to always emit branches with delay slots, and make no use
-- of the compact branch instructions introduced by MIPSr6. This is
-- useful if you suspect there may be an issue with compact branches in
-- either the compiler or the CPU.
--
--config MIPS_COMPACT_BRANCHES_OPTIMAL
-- bool "Optimal (use where beneficial)"
-- help
-- Pass the -mcompact-branches=optimal flag to the compiler in order for
-- it to make use of compact branch instructions where it deems them
-- beneficial, and use branches with delay slots elsewhere. This is the
-- default compiler behaviour, and should be used unless you have a
-- reason to choose otherwise.
--
--config MIPS_COMPACT_BRANCHES_ALWAYS
-- bool "Always (force compact branches)"
-- help
-- Pass the -mcompact-branches=always flag to the compiler in order to
-- force it to always emit compact branches, making no use of branch
-- instructions with delay slots. This can result in more compact code
-- which may be beneficial in some scenarios.
--
--endchoice
--
--endif # CPU_MIPSR6
--
- config SCACHE_DEBUGFS
- bool "L2 cache debugfs entries"
- depends on DEBUG_FS
-diff --git a/arch/mips/Makefile b/arch/mips/Makefile
-index efd7a9d..598ab29 100644
---- a/arch/mips/Makefile
-+++ b/arch/mips/Makefile
-@@ -203,10 +203,6 @@ endif
- toolchain-virt := $(call cc-option-yn,$(mips-cflags) -mvirt)
- cflags-$(toolchain-virt) += -DTOOLCHAIN_SUPPORTS_VIRT
-
--cflags-$(CONFIG_MIPS_COMPACT_BRANCHES_NEVER) += -mcompact-branches=never
--cflags-$(CONFIG_MIPS_COMPACT_BRANCHES_OPTIMAL) += -mcompact-branches=optimal
--cflags-$(CONFIG_MIPS_COMPACT_BRANCHES_ALWAYS) += -mcompact-branches=always
--
- #
- # Firmware support
- #
-diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h
-index 56584a6..83054f7 100644
---- a/arch/mips/include/asm/asmmacro.h
-+++ b/arch/mips/include/asm/asmmacro.h
-@@ -157,6 +157,7 @@
- ldc1 $f28, THREAD_FPR28(\thread)
- ldc1 $f30, THREAD_FPR30(\thread)
- ctc1 \tmp, fcr31
-+ .set pop
- .endm
-
- .macro fpu_restore_16odd thread
-diff --git a/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h b/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h
-index 2f82bfa..c9f5769 100644
---- a/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h
-+++ b/arch/mips/include/asm/mach-paravirt/kernel-entry-init.h
-@@ -11,11 +11,13 @@
- #define CP0_EBASE $15, 1
-
- .macro kernel_entry_setup
-+#ifdef CONFIG_SMP
- mfc0 t0, CP0_EBASE
- andi t0, t0, 0x3ff # CPUNum
- beqz t0, 1f
- # CPUs other than zero goto smp_bootstrap
- j smp_bootstrap
-+#endif /* CONFIG_SMP */
-
- 1:
- .endm
-diff --git a/arch/mips/kernel/mips-r2-to-r6-emul.c b/arch/mips/kernel/mips-r2-to-r6-emul.c
-index 7ff2a55..ae77575 100644
---- a/arch/mips/kernel/mips-r2-to-r6-emul.c
-+++ b/arch/mips/kernel/mips-r2-to-r6-emul.c
-@@ -1164,7 +1164,9 @@ fpu_emul:
- regs->regs[31] = r31;
- regs->cp0_epc = epc;
- if (!used_math()) { /* First time FPU user. */
-+ preempt_disable();
- err = init_fpu();
-+ preempt_enable();
- set_used_math();
- }
- lose_fpu(1); /* Save FPU state for the emulator. */
-diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
-index 813ed78..45cff9f 100644
---- a/arch/mips/kernel/process.c
-+++ b/arch/mips/kernel/process.c
-@@ -591,14 +591,14 @@ int mips_set_process_fp_mode(struct task_struct *task, unsigned int value)
- return -EOPNOTSUPP;
-
- /* Avoid inadvertently triggering emulation */
-- if ((value & PR_FP_MODE_FR) && cpu_has_fpu &&
-- !(current_cpu_data.fpu_id & MIPS_FPIR_F64))
-+ if ((value & PR_FP_MODE_FR) && raw_cpu_has_fpu &&
-+ !(raw_current_cpu_data.fpu_id & MIPS_FPIR_F64))
- return -EOPNOTSUPP;
-- if ((value & PR_FP_MODE_FRE) && cpu_has_fpu && !cpu_has_fre)
-+ if ((value & PR_FP_MODE_FRE) && raw_cpu_has_fpu && !cpu_has_fre)
- return -EOPNOTSUPP;
-
- /* FR = 0 not supported in MIPS R6 */
-- if (!(value & PR_FP_MODE_FR) && cpu_has_fpu && cpu_has_mips_r6)
-+ if (!(value & PR_FP_MODE_FR) && raw_cpu_has_fpu && cpu_has_mips_r6)
- return -EOPNOTSUPP;
-
- /* Proceed with the mode switch */
-diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
-index f9d01e9..dcf4a23 100644
---- a/arch/mips/kernel/smp.c
-+++ b/arch/mips/kernel/smp.c
-@@ -320,6 +320,9 @@ asmlinkage void start_secondary(void)
- cpumask_set_cpu(cpu, &cpu_coherent_mask);
- notify_cpu_starting(cpu);
-
-+ cpumask_set_cpu(cpu, &cpu_callin_map);
-+ synchronise_count_slave(cpu);
-+
- set_cpu_online(cpu, true);
-
- set_cpu_sibling_map(cpu);
-@@ -327,10 +330,6 @@ asmlinkage void start_secondary(void)
-
- calculate_cpu_foreign_map();
-
-- cpumask_set_cpu(cpu, &cpu_callin_map);
--
-- synchronise_count_slave(cpu);
--
- /*
- * irq will be enabled in ->smp_finish(), enabling it too early
- * is dangerous.
-diff --git a/arch/mips/kernel/vdso.c b/arch/mips/kernel/vdso.c
-index 54e1663..0b30c02 100644
---- a/arch/mips/kernel/vdso.c
-+++ b/arch/mips/kernel/vdso.c
-@@ -39,16 +39,16 @@ static struct vm_special_mapping vdso_vvar_mapping = {
- static void __init init_vdso_image(struct mips_vdso_image *image)
- {
- unsigned long num_pages, i;
-+ unsigned long data_pfn;
-
- BUG_ON(!PAGE_ALIGNED(image->data));
- BUG_ON(!PAGE_ALIGNED(image->size));
-
- num_pages = image->size / PAGE_SIZE;
-
-- for (i = 0; i < num_pages; i++) {
-- image->mapping.pages[i] =
-- virt_to_page(image->data + (i * PAGE_SIZE));
-- }
-+ data_pfn = __phys_to_pfn(__pa_symbol(image->data));
-+ for (i = 0; i < num_pages; i++)
-+ image->mapping.pages[i] = pfn_to_page(data_pfn + i);
- }
-
- static int __init init_vdso(void)
-diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
-index 7a1f7bb..b2659b9 100644
---- a/arch/x86/mm/pageattr.c
-+++ b/arch/x86/mm/pageattr.c
-@@ -932,11 +932,11 @@ static void populate_pte(struct cpa_data *cpa,
- }
- }
-
--static int populate_pmd(struct cpa_data *cpa,
-- unsigned long start, unsigned long end,
-- unsigned num_pages, pud_t *pud, pgprot_t pgprot)
-+static long populate_pmd(struct cpa_data *cpa,
-+ unsigned long start, unsigned long end,
-+ unsigned num_pages, pud_t *pud, pgprot_t pgprot)
- {
-- unsigned int cur_pages = 0;
-+ long cur_pages = 0;
- pmd_t *pmd;
- pgprot_t pmd_pgprot;
-
-@@ -1006,12 +1006,12 @@ static int populate_pmd(struct cpa_data *cpa,
- return num_pages;
- }
-
--static int populate_pud(struct cpa_data *cpa, unsigned long start, pgd_t *pgd,
-- pgprot_t pgprot)
-+static long populate_pud(struct cpa_data *cpa, unsigned long start, pgd_t *pgd,
-+ pgprot_t pgprot)
- {
- pud_t *pud;
- unsigned long end;
-- int cur_pages = 0;
-+ long cur_pages = 0;
- pgprot_t pud_pgprot;
-
- end = start + (cpa->numpages << PAGE_SHIFT);
-@@ -1067,7 +1067,7 @@ static int populate_pud(struct cpa_data *cpa, unsigned long start, pgd_t *pgd,
-
- /* Map trailing leftover */
- if (start < end) {
-- int tmp;
-+ long tmp;
-
- pud = pud_offset(pgd, start);
- if (pud_none(*pud))
-@@ -1093,7 +1093,7 @@ static int populate_pgd(struct cpa_data *cpa, unsigned long addr)
- pgprot_t pgprot = __pgprot(_KERNPG_TABLE);
- pud_t *pud = NULL; /* shut up gcc */
- pgd_t *pgd_entry;
-- int ret;
-+ long ret;
-
- pgd_entry = cpa->pgd + pgd_index(addr);
-
-@@ -1336,7 +1336,8 @@ static int cpa_process_alias(struct cpa_data *cpa)
-
- static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias)
- {
-- int ret, numpages = cpa->numpages;
-+ unsigned long numpages = cpa->numpages;
-+ int ret;
-
- while (numpages) {
- /*
-diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
-index b226b3f..964c702 100644
---- a/arch/x86/platform/efi/efi_64.c
-+++ b/arch/x86/platform/efi/efi_64.c
-@@ -244,7 +244,7 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
- * text and allocate a new stack because we can't rely on the
- * stack pointer being < 4GB.
- */
-- if (!IS_ENABLED(CONFIG_EFI_MIXED))
-+ if (!IS_ENABLED(CONFIG_EFI_MIXED) || efi_is_native())
- return 0;
-
- /*
-diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
-index 8cc1622..dca7bc8 100644
---- a/crypto/blkcipher.c
-+++ b/crypto/blkcipher.c
-@@ -234,6 +234,8 @@ static int blkcipher_walk_next(struct blkcipher_desc *desc,
- return blkcipher_walk_done(desc, walk, -EINVAL);
- }
-
-+ bsize = min(walk->walk_blocksize, n);
-+
- walk->flags &= ~(BLKCIPHER_WALK_SLOW | BLKCIPHER_WALK_COPY |
- BLKCIPHER_WALK_DIFF);
- if (!scatterwalk_aligned(&walk->in, walk->alignmask) ||
-@@ -246,7 +248,6 @@ static int blkcipher_walk_next(struct blkcipher_desc *desc,
- }
- }
-
-- bsize = min(walk->walk_blocksize, n);
- n = scatterwalk_clamp(&walk->in, n);
- n = scatterwalk_clamp(&walk->out, n);
-
-diff --git a/crypto/echainiv.c b/crypto/echainiv.c
-index b96a8456..343a74e 100644
---- a/crypto/echainiv.c
-+++ b/crypto/echainiv.c
-@@ -1,8 +1,8 @@
- /*
- * echainiv: Encrypted Chain IV Generator
- *
-- * This generator generates an IV based on a sequence number by xoring it
-- * with a salt and then encrypting it with the same key as used to encrypt
-+ * This generator generates an IV based on a sequence number by multiplying
-+ * it with a salt and then encrypting it with the same key as used to encrypt
- * the plain text. This algorithm requires that the block size be equal
- * to the IV size. It is mainly useful for CBC.
- *
-@@ -23,81 +23,17 @@
- #include <linux/err.h>
- #include <linux/init.h>
- #include <linux/kernel.h>
--#include <linux/mm.h>
- #include <linux/module.h>
--#include <linux/percpu.h>
--#include <linux/spinlock.h>
-+#include <linux/slab.h>
- #include <linux/string.h>
-
--#define MAX_IV_SIZE 16
--
--static DEFINE_PER_CPU(u32 [MAX_IV_SIZE / sizeof(u32)], echainiv_iv);
--
--/* We don't care if we get preempted and read/write IVs from the next CPU. */
--static void echainiv_read_iv(u8 *dst, unsigned size)
--{
-- u32 *a = (u32 *)dst;
-- u32 __percpu *b = echainiv_iv;
--
-- for (; size >= 4; size -= 4) {
-- *a++ = this_cpu_read(*b);
-- b++;
-- }
--}
--
--static void echainiv_write_iv(const u8 *src, unsigned size)
--{
-- const u32 *a = (const u32 *)src;
-- u32 __percpu *b = echainiv_iv;
--
-- for (; size >= 4; size -= 4) {
-- this_cpu_write(*b, *a);
-- a++;
-- b++;
-- }
--}
--
--static void echainiv_encrypt_complete2(struct aead_request *req, int err)
--{
-- struct aead_request *subreq = aead_request_ctx(req);
-- struct crypto_aead *geniv;
-- unsigned int ivsize;
--
-- if (err == -EINPROGRESS)
-- return;
--
-- if (err)
-- goto out;
--
-- geniv = crypto_aead_reqtfm(req);
-- ivsize = crypto_aead_ivsize(geniv);
--
-- echainiv_write_iv(subreq->iv, ivsize);
--
-- if (req->iv != subreq->iv)
-- memcpy(req->iv, subreq->iv, ivsize);
--
--out:
-- if (req->iv != subreq->iv)
-- kzfree(subreq->iv);
--}
--
--static void echainiv_encrypt_complete(struct crypto_async_request *base,
-- int err)
--{
-- struct aead_request *req = base->data;
--
-- echainiv_encrypt_complete2(req, err);
-- aead_request_complete(req, err);
--}
--
- static int echainiv_encrypt(struct aead_request *req)
- {
- struct crypto_aead *geniv = crypto_aead_reqtfm(req);
- struct aead_geniv_ctx *ctx = crypto_aead_ctx(geniv);
- struct aead_request *subreq = aead_request_ctx(req);
-- crypto_completion_t compl;
-- void *data;
-+ __be64 nseqno;
-+ u64 seqno;
- u8 *info;
- unsigned int ivsize = crypto_aead_ivsize(geniv);
- int err;
-@@ -107,8 +43,6 @@ static int echainiv_encrypt(struct aead_request *req)
-
- aead_request_set_tfm(subreq, ctx->child);
-
-- compl = echainiv_encrypt_complete;
-- data = req;
- info = req->iv;
-
- if (req->src != req->dst) {
-@@ -123,29 +57,30 @@ static int echainiv_encrypt(struct aead_request *req)
- return err;
- }
-
-- if (unlikely(!IS_ALIGNED((unsigned long)info,
-- crypto_aead_alignmask(geniv) + 1))) {
-- info = kmalloc(ivsize, req->base.flags &
-- CRYPTO_TFM_REQ_MAY_SLEEP ? GFP_KERNEL:
-- GFP_ATOMIC);
-- if (!info)
-- return -ENOMEM;
--
-- memcpy(info, req->iv, ivsize);
-- }
--
-- aead_request_set_callback(subreq, req->base.flags, compl, data);
-+ aead_request_set_callback(subreq, req->base.flags,
-+ req->base.complete, req->base.data);
- aead_request_set_crypt(subreq, req->dst, req->dst,
- req->cryptlen, info);
- aead_request_set_ad(subreq, req->assoclen);
-
-- crypto_xor(info, ctx->salt, ivsize);
-+ memcpy(&nseqno, info + ivsize - 8, 8);
-+ seqno = be64_to_cpu(nseqno);
-+ memset(info, 0, ivsize);
-+
- scatterwalk_map_and_copy(info, req->dst, req->assoclen, ivsize, 1);
-- echainiv_read_iv(info, ivsize);
-
-- err = crypto_aead_encrypt(subreq);
-- echainiv_encrypt_complete2(req, err);
-- return err;
-+ do {
-+ u64 a;
-+
-+ memcpy(&a, ctx->salt + ivsize - 8, 8);
-+
-+ a |= 1;
-+ a *= seqno;
-+
-+ memcpy(info + ivsize - 8, &a, 8);
-+ } while ((ivsize -= 8));
-+
-+ return crypto_aead_encrypt(subreq);
- }
-
- static int echainiv_decrypt(struct aead_request *req)
-@@ -192,8 +127,7 @@ static int echainiv_aead_create(struct crypto_template *tmpl,
- alg = crypto_spawn_aead_alg(spawn);
-
- err = -EINVAL;
-- if (inst->alg.ivsize & (sizeof(u32) - 1) ||
-- inst->alg.ivsize > MAX_IV_SIZE)
-+ if (inst->alg.ivsize & (sizeof(u64) - 1) || !inst->alg.ivsize)
- goto free_inst;
-
- inst->alg.encrypt = echainiv_encrypt;
-@@ -202,7 +136,6 @@ static int echainiv_aead_create(struct crypto_template *tmpl,
- inst->alg.init = aead_init_geniv;
- inst->alg.exit = aead_exit_geniv;
-
-- inst->alg.base.cra_alignmask |= __alignof__(u32) - 1;
- inst->alg.base.cra_ctxsize = sizeof(struct aead_geniv_ctx);
- inst->alg.base.cra_ctxsize += inst->alg.ivsize;
-
-diff --git a/drivers/gpu/drm/qxl/qxl_draw.c b/drivers/gpu/drm/qxl/qxl_draw.c
-index 56e1d63..6e6c760 100644
---- a/drivers/gpu/drm/qxl/qxl_draw.c
-+++ b/drivers/gpu/drm/qxl/qxl_draw.c
-@@ -136,6 +136,8 @@ static int qxl_palette_create_1bit(struct qxl_bo *palette_bo,
- * correctly globaly, since that would require
- * tracking all of our palettes. */
- ret = qxl_bo_kmap(palette_bo, (void **)&pal);
-+ if (ret)
-+ return ret;
- pal->num_ents = 2;
- pal->unique = unique++;
- if (visual == FB_VISUAL_TRUECOLOR || visual == FB_VISUAL_DIRECTCOLOR) {
-diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
-index 137125b..5ce71ce 100644
---- a/drivers/i2c/busses/i2c-eg20t.c
-+++ b/drivers/i2c/busses/i2c-eg20t.c
-@@ -773,13 +773,6 @@ static int pch_i2c_probe(struct pci_dev *pdev,
- /* Set the number of I2C channel instance */
- adap_info->ch_num = id->driver_data;
-
-- ret = request_irq(pdev->irq, pch_i2c_handler, IRQF_SHARED,
-- KBUILD_MODNAME, adap_info);
-- if (ret) {
-- pch_pci_err(pdev, "request_irq FAILED\n");
-- goto err_request_irq;
-- }
--
- for (i = 0; i < adap_info->ch_num; i++) {
- pch_adap = &adap_info->pch_data[i].pch_adapter;
- adap_info->pch_i2c_suspended = false;
-@@ -797,6 +790,17 @@ static int pch_i2c_probe(struct pci_dev *pdev,
-
- pch_adap->dev.of_node = pdev->dev.of_node;
- pch_adap->dev.parent = &pdev->dev;
-+ }
-+
-+ ret = request_irq(pdev->irq, pch_i2c_handler, IRQF_SHARED,
-+ KBUILD_MODNAME, adap_info);
-+ if (ret) {
-+ pch_pci_err(pdev, "request_irq FAILED\n");
-+ goto err_request_irq;
-+ }
-+
-+ for (i = 0; i < adap_info->ch_num; i++) {
-+ pch_adap = &adap_info->pch_data[i].pch_adapter;
-
- pch_i2c_init(&adap_info->pch_data[i]);
-
-diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
-index 041050e..57256bb 100644
---- a/drivers/i2c/busses/i2c-qup.c
-+++ b/drivers/i2c/busses/i2c-qup.c
-@@ -1610,7 +1610,8 @@ static int qup_i2c_pm_resume_runtime(struct device *device)
- #ifdef CONFIG_PM_SLEEP
- static int qup_i2c_suspend(struct device *device)
- {
-- qup_i2c_pm_suspend_runtime(device);
-+ if (!pm_runtime_suspended(device))
-+ return qup_i2c_pm_suspend_runtime(device);
- return 0;
- }
-
-diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c
-index 528e755..3278ebf 100644
---- a/drivers/i2c/muxes/i2c-mux-pca954x.c
-+++ b/drivers/i2c/muxes/i2c-mux-pca954x.c
-@@ -164,7 +164,7 @@ static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan)
- /* Only select the channel if its different from the last channel */
- if (data->last_chan != regval) {
- ret = pca954x_reg_write(muxc->parent, client, regval);
-- data->last_chan = regval;
-+ data->last_chan = ret ? 0 : regval;
- }
-
- return ret;
-diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
-index a3a6721..be00c4b 100644
---- a/drivers/infiniband/hw/cxgb4/cm.c
-+++ b/drivers/infiniband/hw/cxgb4/cm.c
-@@ -3011,9 +3011,9 @@ static int fw4_ack(struct c4iw_dev *dev, struct sk_buff *skb)
- PDBG("%s last streaming msg ack ep %p tid %u state %u "
- "initiator %u freeing skb\n", __func__, ep, ep->hwtid,
- state_read(&ep->com), ep->mpa_attr.initiator ? 1 : 0);
-+ mutex_lock(&ep->com.mutex);
- kfree_skb(ep->mpa_skb);
- ep->mpa_skb = NULL;
-- mutex_lock(&ep->com.mutex);
- if (test_bit(STOP_MPA_TIMER, &ep->com.flags))
- stop_ep_timer(ep);
- mutex_unlock(&ep->com.mutex);
-@@ -3582,6 +3582,16 @@ int c4iw_ep_disconnect(struct c4iw_ep *ep, int abrupt, gfp_t gfp)
- ep->com.state = ABORTING;
- else {
- ep->com.state = CLOSING;
-+
-+ /*
-+ * if we close before we see the fw4_ack() then we fix
-+ * up the timer state since we're reusing it.
-+ */
-+ if (ep->mpa_skb &&
-+ test_bit(STOP_MPA_TIMER, &ep->com.flags)) {
-+ clear_bit(STOP_MPA_TIMER, &ep->com.flags);
-+ stop_ep_timer(ep);
-+ }
- start_ep_timer(ep);
- }
- set_bit(CLOSE_SENT, &ep->com.flags);
-diff --git a/drivers/irqchip/irq-mips-gic.c b/drivers/irqchip/irq-mips-gic.c
-index d3ef0fc..6acf69e 100644
---- a/drivers/irqchip/irq-mips-gic.c
-+++ b/drivers/irqchip/irq-mips-gic.c
-@@ -638,27 +638,6 @@ static int gic_local_irq_domain_map(struct irq_domain *d, unsigned int virq,
- if (!gic_local_irq_is_routable(intr))
- return -EPERM;
-
-- /*
-- * HACK: These are all really percpu interrupts, but the rest
-- * of the MIPS kernel code does not use the percpu IRQ API for
-- * the CP0 timer and performance counter interrupts.
-- */
-- switch (intr) {
-- case GIC_LOCAL_INT_TIMER:
-- case GIC_LOCAL_INT_PERFCTR:
-- case GIC_LOCAL_INT_FDC:
-- irq_set_chip_and_handler(virq,
-- &gic_all_vpes_local_irq_controller,
-- handle_percpu_irq);
-- break;
-- default:
-- irq_set_chip_and_handler(virq,
-- &gic_local_irq_controller,
-- handle_percpu_devid_irq);
-- irq_set_percpu_devid(virq);
-- break;
-- }
--
- spin_lock_irqsave(&gic_lock, flags);
- for (i = 0; i < gic_vpes; i++) {
- u32 val = GIC_MAP_TO_PIN_MSK | gic_cpu_pin;
-@@ -724,16 +703,42 @@ static int gic_shared_irq_domain_map(struct irq_domain *d, unsigned int virq,
- return 0;
- }
-
--static int gic_irq_domain_map(struct irq_domain *d, unsigned int virq,
-- irq_hw_number_t hw)
-+static int gic_setup_dev_chip(struct irq_domain *d, unsigned int virq,
-+ unsigned int hwirq)
- {
-- if (GIC_HWIRQ_TO_LOCAL(hw) < GIC_NUM_LOCAL_INTRS)
-- return gic_local_irq_domain_map(d, virq, hw);
-+ struct irq_chip *chip;
-+ int err;
-+
-+ if (hwirq >= GIC_SHARED_HWIRQ_BASE) {
-+ err = irq_domain_set_hwirq_and_chip(d, virq, hwirq,
-+ &gic_level_irq_controller,
-+ NULL);
-+ } else {
-+ switch (GIC_HWIRQ_TO_LOCAL(hwirq)) {
-+ case GIC_LOCAL_INT_TIMER:
-+ case GIC_LOCAL_INT_PERFCTR:
-+ case GIC_LOCAL_INT_FDC:
-+ /*
-+ * HACK: These are all really percpu interrupts, but
-+ * the rest of the MIPS kernel code does not use the
-+ * percpu IRQ API for them.
-+ */
-+ chip = &gic_all_vpes_local_irq_controller;
-+ irq_set_handler(virq, handle_percpu_irq);
-+ break;
-+
-+ default:
-+ chip = &gic_local_irq_controller;
-+ irq_set_handler(virq, handle_percpu_devid_irq);
-+ irq_set_percpu_devid(virq);
-+ break;
-+ }
-
-- irq_set_chip_and_handler(virq, &gic_level_irq_controller,
-- handle_level_irq);
-+ err = irq_domain_set_hwirq_and_chip(d, virq, hwirq,
-+ chip, NULL);
-+ }
-
-- return gic_shared_irq_domain_map(d, virq, hw, 0);
-+ return err;
- }
-
- static int gic_irq_domain_alloc(struct irq_domain *d, unsigned int virq,
-@@ -744,15 +749,12 @@ static int gic_irq_domain_alloc(struct irq_domain *d, unsigned int virq,
- int cpu, ret, i;
-
- if (spec->type == GIC_DEVICE) {
-- /* verify that it doesn't conflict with an IPI irq */
-- if (test_bit(spec->hwirq, ipi_resrv))
-+ /* verify that shared irqs don't conflict with an IPI irq */
-+ if ((spec->hwirq >= GIC_SHARED_HWIRQ_BASE) &&
-+ test_bit(GIC_HWIRQ_TO_SHARED(spec->hwirq), ipi_resrv))
- return -EBUSY;
-
-- hwirq = GIC_SHARED_TO_HWIRQ(spec->hwirq);
--
-- return irq_domain_set_hwirq_and_chip(d, virq, hwirq,
-- &gic_level_irq_controller,
-- NULL);
-+ return gic_setup_dev_chip(d, virq, spec->hwirq);
- } else {
- base_hwirq = find_first_bit(ipi_resrv, gic_shared_intrs);
- if (base_hwirq == gic_shared_intrs) {
-@@ -821,7 +823,6 @@ int gic_irq_domain_match(struct irq_domain *d, struct device_node *node,
- }
-
- static const struct irq_domain_ops gic_irq_domain_ops = {
-- .map = gic_irq_domain_map,
- .alloc = gic_irq_domain_alloc,
- .free = gic_irq_domain_free,
- .match = gic_irq_domain_match,
-@@ -852,29 +853,20 @@ static int gic_dev_domain_alloc(struct irq_domain *d, unsigned int virq,
- struct irq_fwspec *fwspec = arg;
- struct gic_irq_spec spec = {
- .type = GIC_DEVICE,
-- .hwirq = fwspec->param[1],
- };
- int i, ret;
-- bool is_shared = fwspec->param[0] == GIC_SHARED;
-
-- if (is_shared) {
-- ret = irq_domain_alloc_irqs_parent(d, virq, nr_irqs, &spec);
-- if (ret)
-- return ret;
-- }
--
-- for (i = 0; i < nr_irqs; i++) {
-- irq_hw_number_t hwirq;
-+ if (fwspec->param[0] == GIC_SHARED)
-+ spec.hwirq = GIC_SHARED_TO_HWIRQ(fwspec->param[1]);
-+ else
-+ spec.hwirq = GIC_LOCAL_TO_HWIRQ(fwspec->param[1]);
-
-- if (is_shared)
-- hwirq = GIC_SHARED_TO_HWIRQ(spec.hwirq + i);
-- else
-- hwirq = GIC_LOCAL_TO_HWIRQ(spec.hwirq + i);
-+ ret = irq_domain_alloc_irqs_parent(d, virq, nr_irqs, &spec);
-+ if (ret)
-+ return ret;
-
-- ret = irq_domain_set_hwirq_and_chip(d, virq + i,
-- hwirq,
-- &gic_level_irq_controller,
-- NULL);
-+ for (i = 0; i < nr_irqs; i++) {
-+ ret = gic_setup_dev_chip(d, virq + i, spec.hwirq + i);
- if (ret)
- goto error;
- }
-@@ -896,7 +888,10 @@ void gic_dev_domain_free(struct irq_domain *d, unsigned int virq,
- static void gic_dev_domain_activate(struct irq_domain *domain,
- struct irq_data *d)
- {
-- gic_shared_irq_domain_map(domain, d->irq, d->hwirq, 0);
-+ if (GIC_HWIRQ_TO_LOCAL(d->hwirq) < GIC_NUM_LOCAL_INTRS)
-+ gic_local_irq_domain_map(domain, d->irq, d->hwirq);
-+ else
-+ gic_shared_irq_domain_map(domain, d->irq, d->hwirq, 0);
- }
-
- static struct irq_domain_ops gic_dev_domain_ops = {
-diff --git a/drivers/mtd/maps/pmcmsp-flash.c b/drivers/mtd/maps/pmcmsp-flash.c
-index 744ca5c..f9fa3fa 100644
---- a/drivers/mtd/maps/pmcmsp-flash.c
-+++ b/drivers/mtd/maps/pmcmsp-flash.c
-@@ -75,15 +75,15 @@ static int __init init_msp_flash(void)
-
- printk(KERN_NOTICE "Found %d PMC flash devices\n", fcnt);
-
-- msp_flash = kmalloc(fcnt * sizeof(struct map_info *), GFP_KERNEL);
-+ msp_flash = kcalloc(fcnt, sizeof(*msp_flash), GFP_KERNEL);
- if (!msp_flash)
- return -ENOMEM;
-
-- msp_parts = kmalloc(fcnt * sizeof(struct mtd_partition *), GFP_KERNEL);
-+ msp_parts = kcalloc(fcnt, sizeof(*msp_parts), GFP_KERNEL);
- if (!msp_parts)
- goto free_msp_flash;
-
-- msp_maps = kcalloc(fcnt, sizeof(struct mtd_info), GFP_KERNEL);
-+ msp_maps = kcalloc(fcnt, sizeof(*msp_maps), GFP_KERNEL);
- if (!msp_maps)
- goto free_msp_parts;
-
-diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c
-index 142fc3d..784c6e1 100644
---- a/drivers/mtd/maps/sa1100-flash.c
-+++ b/drivers/mtd/maps/sa1100-flash.c
-@@ -230,8 +230,10 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
-
- info->mtd = mtd_concat_create(cdev, info->num_subdev,
- plat->name);
-- if (info->mtd == NULL)
-+ if (info->mtd == NULL) {
- ret = -ENXIO;
-+ goto err;
-+ }
- }
- info->mtd->dev.parent = &pdev->dev;
-
-diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
-index 5173fad..57cbe2b 100644
---- a/drivers/mtd/nand/mxc_nand.c
-+++ b/drivers/mtd/nand/mxc_nand.c
-@@ -943,7 +943,7 @@ static int mxc_v2_ooblayout_free(struct mtd_info *mtd, int section,
- struct nand_chip *nand_chip = mtd_to_nand(mtd);
- int stepsize = nand_chip->ecc.bytes == 9 ? 16 : 26;
-
-- if (section > nand_chip->ecc.steps)
-+ if (section >= nand_chip->ecc.steps)
- return -ERANGE;
-
- if (!section) {
-diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
-index c52e455..a6adb27 100644
---- a/drivers/mtd/spi-nor/spi-nor.c
-+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -661,7 +661,7 @@ static int stm_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len)
- status_new = (status_old & ~mask & ~SR_TB) | val;
-
- /* Don't protect status register if we're fully unlocked */
-- if (lock_len == mtd->size)
-+ if (lock_len == 0)
- status_new &= ~SR_SRWD;
-
- if (!use_top)
-diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
-index 41c0fc9..16f7cad 100644
---- a/drivers/net/can/flexcan.c
-+++ b/drivers/net/can/flexcan.c
-@@ -1268,11 +1268,10 @@ static int __maybe_unused flexcan_suspend(struct device *device)
- struct flexcan_priv *priv = netdev_priv(dev);
- int err;
-
-- err = flexcan_chip_disable(priv);
-- if (err)
-- return err;
--
- if (netif_running(dev)) {
-+ err = flexcan_chip_disable(priv);
-+ if (err)
-+ return err;
- netif_stop_queue(dev);
- netif_device_detach(dev);
- }
-@@ -1285,13 +1284,17 @@ static int __maybe_unused flexcan_resume(struct device *device)
- {
- struct net_device *dev = dev_get_drvdata(device);
- struct flexcan_priv *priv = netdev_priv(dev);
-+ int err;
-
- priv->can.state = CAN_STATE_ERROR_ACTIVE;
- if (netif_running(dev)) {
- netif_device_attach(dev);
- netif_start_queue(dev);
-+ err = flexcan_chip_enable(priv);
-+ if (err)
-+ return err;
- }
-- return flexcan_chip_enable(priv);
-+ return 0;
- }
-
- static SIMPLE_DEV_PM_OPS(flexcan_pm_ops, flexcan_suspend, flexcan_resume);
-diff --git a/drivers/net/can/ifi_canfd/ifi_canfd.c b/drivers/net/can/ifi_canfd/ifi_canfd.c
-index 2d1d22e..368bb07 100644
---- a/drivers/net/can/ifi_canfd/ifi_canfd.c
-+++ b/drivers/net/can/ifi_canfd/ifi_canfd.c
-@@ -81,6 +81,10 @@
- #define IFI_CANFD_TIME_SET_TIMEA_4_12_6_6 BIT(15)
-
- #define IFI_CANFD_TDELAY 0x1c
-+#define IFI_CANFD_TDELAY_DEFAULT 0xb
-+#define IFI_CANFD_TDELAY_MASK 0x3fff
-+#define IFI_CANFD_TDELAY_ABS BIT(14)
-+#define IFI_CANFD_TDELAY_EN BIT(15)
-
- #define IFI_CANFD_ERROR 0x20
- #define IFI_CANFD_ERROR_TX_OFFSET 0
-@@ -641,7 +645,7 @@ static void ifi_canfd_set_bittiming(struct net_device *ndev)
- struct ifi_canfd_priv *priv = netdev_priv(ndev);
- const struct can_bittiming *bt = &priv->can.bittiming;
- const struct can_bittiming *dbt = &priv->can.data_bittiming;
-- u16 brp, sjw, tseg1, tseg2;
-+ u16 brp, sjw, tseg1, tseg2, tdc;
-
- /* Configure bit timing */
- brp = bt->brp - 2;
-@@ -664,6 +668,11 @@ static void ifi_canfd_set_bittiming(struct net_device *ndev)
- (brp << IFI_CANFD_TIME_PRESCALE_OFF) |
- (sjw << IFI_CANFD_TIME_SJW_OFF_7_9_8_8),
- priv->base + IFI_CANFD_FTIME);
-+
-+ /* Configure transmitter delay */
-+ tdc = (dbt->brp * (dbt->phase_seg1 + 1)) & IFI_CANFD_TDELAY_MASK;
-+ writel(IFI_CANFD_TDELAY_EN | IFI_CANFD_TDELAY_ABS | tdc,
-+ priv->base + IFI_CANFD_TDELAY);
- }
-
- static void ifi_canfd_set_filter(struct net_device *ndev, const u32 id,
-diff --git a/drivers/net/ethernet/intel/igb/igb_ptp.c b/drivers/net/ethernet/intel/igb/igb_ptp.c
-index f097c5a..3c7bcdf 100644
---- a/drivers/net/ethernet/intel/igb/igb_ptp.c
-+++ b/drivers/net/ethernet/intel/igb/igb_ptp.c
-@@ -743,7 +743,8 @@ static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
- }
- }
-
-- shhwtstamps.hwtstamp = ktime_sub_ns(shhwtstamps.hwtstamp, adjust);
-+ shhwtstamps.hwtstamp =
-+ ktime_add_ns(shhwtstamps.hwtstamp, adjust);
-
- skb_tstamp_tx(adapter->ptp_tx_skb, &shhwtstamps);
- dev_kfree_skb_any(adapter->ptp_tx_skb);
-@@ -766,13 +767,32 @@ void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector,
- struct sk_buff *skb)
- {
- __le64 *regval = (__le64 *)va;
-+ struct igb_adapter *adapter = q_vector->adapter;
-+ int adjust = 0;
-
- /* The timestamp is recorded in little endian format.
- * DWORD: 0 1 2 3
- * Field: Reserved Reserved SYSTIML SYSTIMH
- */
-- igb_ptp_systim_to_hwtstamp(q_vector->adapter, skb_hwtstamps(skb),
-+ igb_ptp_systim_to_hwtstamp(adapter, skb_hwtstamps(skb),
- le64_to_cpu(regval[1]));
-+
-+ /* adjust timestamp for the RX latency based on link speed */
-+ if (adapter->hw.mac.type == e1000_i210) {
-+ switch (adapter->link_speed) {
-+ case SPEED_10:
-+ adjust = IGB_I210_RX_LATENCY_10;
-+ break;
-+ case SPEED_100:
-+ adjust = IGB_I210_RX_LATENCY_100;
-+ break;
-+ case SPEED_1000:
-+ adjust = IGB_I210_RX_LATENCY_1000;
-+ break;
-+ }
-+ }
-+ skb_hwtstamps(skb)->hwtstamp =
-+ ktime_sub_ns(skb_hwtstamps(skb)->hwtstamp, adjust);
- }
-
- /**
-@@ -824,7 +844,7 @@ void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector,
- }
- }
- skb_hwtstamps(skb)->hwtstamp =
-- ktime_add_ns(skb_hwtstamps(skb)->hwtstamp, adjust);
-+ ktime_sub_ns(skb_hwtstamps(skb)->hwtstamp, adjust);
-
- /* Update the last_rx_timestamp timer in order to enable watchdog check
- * for error case of latched timestamp on a dropped packet.
-diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
-index 8bebd86..58153e8 100644
---- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
-+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
-@@ -4100,6 +4100,8 @@ static void ixgbe_vlan_promisc_enable(struct ixgbe_adapter *adapter)
- struct ixgbe_hw *hw = &adapter->hw;
- u32 vlnctrl, i;
-
-+ vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL);
-+
- switch (hw->mac.type) {
- case ixgbe_mac_82599EB:
- case ixgbe_mac_X540:
-@@ -4112,8 +4114,7 @@ static void ixgbe_vlan_promisc_enable(struct ixgbe_adapter *adapter)
- /* fall through */
- case ixgbe_mac_82598EB:
- /* legacy case, we can just disable VLAN filtering */
-- vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL);
-- vlnctrl &= ~(IXGBE_VLNCTRL_VFE | IXGBE_VLNCTRL_CFIEN);
-+ vlnctrl &= ~IXGBE_VLNCTRL_VFE;
- IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
- return;
- }
-@@ -4125,6 +4126,10 @@ static void ixgbe_vlan_promisc_enable(struct ixgbe_adapter *adapter)
- /* Set flag so we don't redo unnecessary work */
- adapter->flags2 |= IXGBE_FLAG2_VLAN_PROMISC;
-
-+ /* For VMDq and SR-IOV we must leave VLAN filtering enabled */
-+ vlnctrl |= IXGBE_VLNCTRL_VFE;
-+ IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
-+
- /* Add PF to all active pools */
- for (i = IXGBE_VLVF_ENTRIES; --i;) {
- u32 reg_offset = IXGBE_VLVFB(i * 2 + VMDQ_P(0) / 32);
-@@ -4191,6 +4196,11 @@ static void ixgbe_vlan_promisc_disable(struct ixgbe_adapter *adapter)
- struct ixgbe_hw *hw = &adapter->hw;
- u32 vlnctrl, i;
-
-+ /* Set VLAN filtering to enabled */
-+ vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL);
-+ vlnctrl |= IXGBE_VLNCTRL_VFE;
-+ IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
-+
- switch (hw->mac.type) {
- case ixgbe_mac_82599EB:
- case ixgbe_mac_X540:
-@@ -4202,10 +4212,6 @@ static void ixgbe_vlan_promisc_disable(struct ixgbe_adapter *adapter)
- break;
- /* fall through */
- case ixgbe_mac_82598EB:
-- vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL);
-- vlnctrl &= ~IXGBE_VLNCTRL_CFIEN;
-- vlnctrl |= IXGBE_VLNCTRL_VFE;
-- IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
- return;
- }
-
-@@ -9496,6 +9502,7 @@ skip_sriov:
-
- /* copy netdev features into list of user selectable features */
- netdev->hw_features |= netdev->features |
-+ NETIF_F_HW_VLAN_CTAG_FILTER |
- NETIF_F_HW_VLAN_CTAG_RX |
- NETIF_F_HW_VLAN_CTAG_TX |
- NETIF_F_RXALL |
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-index 779bafc..b92b75f 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-@@ -501,6 +501,15 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
- int hdrlen = ieee80211_hdrlen(hdr->frame_control);
- int queue;
-
-+ /* IWL_MVM_OFFCHANNEL_QUEUE is used for ROC packets that can be used
-+ * in 2 different types of vifs, P2P & STATION. P2P uses the offchannel
-+ * queue. STATION (HS2.0) uses the auxiliary context of the FW,
-+ * and hence needs to be sent on the aux queue
-+ */
-+ if (IEEE80211_SKB_CB(skb)->hw_queue == IWL_MVM_OFFCHANNEL_QUEUE &&
-+ skb_info->control.vif->type == NL80211_IFTYPE_STATION)
-+ IEEE80211_SKB_CB(skb)->hw_queue = mvm->aux_queue;
-+
- memcpy(&info, skb->cb, sizeof(info));
-
- if (WARN_ON_ONCE(info.flags & IEEE80211_TX_CTL_AMPDU))
-@@ -514,16 +523,6 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
- /* This holds the amsdu headers length */
- skb_info->driver_data[0] = (void *)(uintptr_t)0;
-
-- /*
-- * IWL_MVM_OFFCHANNEL_QUEUE is used for ROC packets that can be used
-- * in 2 different types of vifs, P2P & STATION. P2P uses the offchannel
-- * queue. STATION (HS2.0) uses the auxiliary context of the FW,
-- * and hence needs to be sent on the aux queue
-- */
-- if (IEEE80211_SKB_CB(skb)->hw_queue == IWL_MVM_OFFCHANNEL_QUEUE &&
-- info.control.vif->type == NL80211_IFTYPE_STATION)
-- IEEE80211_SKB_CB(skb)->hw_queue = mvm->aux_queue;
--
- queue = info.hw_queue;
-
- /*
-diff --git a/drivers/power/max17042_battery.c b/drivers/power/max17042_battery.c
-index 9c65f13..da7a75f 100644
---- a/drivers/power/max17042_battery.c
-+++ b/drivers/power/max17042_battery.c
-@@ -457,13 +457,16 @@ static inline void max17042_write_model_data(struct max17042_chip *chip,
- }
-
- static inline void max17042_read_model_data(struct max17042_chip *chip,
-- u8 addr, u32 *data, int size)
-+ u8 addr, u16 *data, int size)
- {
- struct regmap *map = chip->regmap;
- int i;
-+ u32 tmp;
-
-- for (i = 0; i < size; i++)
-- regmap_read(map, addr + i, &data[i]);
-+ for (i = 0; i < size; i++) {
-+ regmap_read(map, addr + i, &tmp);
-+ data[i] = (u16)tmp;
-+ }
- }
-
- static inline int max17042_model_data_compare(struct max17042_chip *chip,
-@@ -486,7 +489,7 @@ static int max17042_init_model(struct max17042_chip *chip)
- {
- int ret;
- int table_size = ARRAY_SIZE(chip->pdata->config_data->cell_char_tbl);
-- u32 *temp_data;
-+ u16 *temp_data;
-
- temp_data = kcalloc(table_size, sizeof(*temp_data), GFP_KERNEL);
- if (!temp_data)
-@@ -501,7 +504,7 @@ static int max17042_init_model(struct max17042_chip *chip)
- ret = max17042_model_data_compare(
- chip,
- chip->pdata->config_data->cell_char_tbl,
-- (u16 *)temp_data,
-+ temp_data,
- table_size);
-
- max10742_lock_model(chip);
-@@ -514,7 +517,7 @@ static int max17042_verify_model_lock(struct max17042_chip *chip)
- {
- int i;
- int table_size = ARRAY_SIZE(chip->pdata->config_data->cell_char_tbl);
-- u32 *temp_data;
-+ u16 *temp_data;
- int ret = 0;
-
- temp_data = kcalloc(table_size, sizeof(*temp_data), GFP_KERNEL);
-diff --git a/drivers/power/reset/hisi-reboot.c b/drivers/power/reset/hisi-reboot.c
-index 9ab7f56..f69387e 100644
---- a/drivers/power/reset/hisi-reboot.c
-+++ b/drivers/power/reset/hisi-reboot.c
-@@ -53,13 +53,16 @@ static int hisi_reboot_probe(struct platform_device *pdev)
-
- if (of_property_read_u32(np, "reboot-offset", &reboot_offset) < 0) {
- pr_err("failed to find reboot-offset property\n");
-+ iounmap(base);
- return -EINVAL;
- }
-
- err = register_restart_handler(&hisi_restart_nb);
-- if (err)
-+ if (err) {
- dev_err(&pdev->dev, "cannot register restart handler (err=%d)\n",
- err);
-+ iounmap(base);
-+ }
-
- return err;
- }
-diff --git a/drivers/power/tps65217_charger.c b/drivers/power/tps65217_charger.c
-index 73dfae4..4c56e54 100644
---- a/drivers/power/tps65217_charger.c
-+++ b/drivers/power/tps65217_charger.c
-@@ -206,6 +206,7 @@ static int tps65217_charger_probe(struct platform_device *pdev)
- if (!charger)
- return -ENOMEM;
-
-+ platform_set_drvdata(pdev, charger);
- charger->tps = tps;
- charger->dev = &pdev->dev;
-
-diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
-index 821d9c0..f25f7dc 100644
---- a/drivers/rtc/rtc-ds1307.c
-+++ b/drivers/rtc/rtc-ds1307.c
-@@ -602,6 +602,8 @@ static const struct rtc_class_ops ds13xx_rtc_ops = {
- * Alarm support for mcp794xx devices.
- */
-
-+#define MCP794XX_REG_WEEKDAY 0x3
-+#define MCP794XX_REG_WEEKDAY_WDAY_MASK 0x7
- #define MCP794XX_REG_CONTROL 0x07
- # define MCP794XX_BIT_ALM0_EN 0x10
- # define MCP794XX_BIT_ALM1_EN 0x20
-@@ -1231,13 +1233,16 @@ static int ds1307_probe(struct i2c_client *client,
- {
- struct ds1307 *ds1307;
- int err = -ENODEV;
-- int tmp;
-+ int tmp, wday;
- struct chip_desc *chip = &chips[id->driver_data];
- struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
- bool want_irq = false;
- bool ds1307_can_wakeup_device = false;
- unsigned char *buf;
- struct ds1307_platform_data *pdata = dev_get_platdata(&client->dev);
-+ struct rtc_time tm;
-+ unsigned long timestamp;
-+
- irq_handler_t irq_handler = ds1307_irq;
-
- static const int bbsqi_bitpos[] = {
-@@ -1526,6 +1531,27 @@ read_rtc:
- bin2bcd(tmp));
- }
-
-+ /*
-+ * Some IPs have weekday reset value = 0x1 which might not correct
-+ * hence compute the wday using the current date/month/year values
-+ */
-+ ds1307_get_time(&client->dev, &tm);
-+ wday = tm.tm_wday;
-+ timestamp = rtc_tm_to_time64(&tm);
-+ rtc_time64_to_tm(timestamp, &tm);
-+
-+ /*
-+ * Check if reset wday is different from the computed wday
-+ * If different then set the wday which we computed using
-+ * timestamp
-+ */
-+ if (wday != tm.tm_wday) {
-+ wday = i2c_smbus_read_byte_data(client, MCP794XX_REG_WEEKDAY);
-+ wday = wday & ~MCP794XX_REG_WEEKDAY_WDAY_MASK;
-+ wday = wday | (tm.tm_wday + 1);
-+ i2c_smbus_write_byte_data(client, MCP794XX_REG_WEEKDAY, wday);
-+ }
-+
- if (want_irq) {
- device_set_wakeup_capable(&client->dev, true);
- set_bit(HAS_ALARM, &ds1307->flags);
-diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
-index bb17345..5031c89 100644
---- a/drivers/soc/tegra/pmc.c
-+++ b/drivers/soc/tegra/pmc.c
-@@ -1205,6 +1205,14 @@ static int tegra_pmc_probe(struct platform_device *pdev)
- struct resource *res;
- int err;
-
-+ /*
-+ * Early initialisation should have configured an initial
-+ * register mapping and setup the soc data pointer. If these
-+ * are not valid then something went badly wrong!
-+ */
-+ if (WARN_ON(!pmc->base || !pmc->soc))
-+ return -ENODEV;
-+
- err = tegra_pmc_parse_dt(pmc, pdev->dev.of_node);
- if (err < 0)
- return err;
-diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
-index b493909..d8e6d42 100644
---- a/fs/autofs4/expire.c
-+++ b/fs/autofs4/expire.c
-@@ -417,6 +417,7 @@ static struct dentry *should_expire(struct dentry *dentry,
- }
- return NULL;
- }
-+
- /*
- * Find an eligible tree to time-out
- * A tree is eligible if :-
-@@ -432,6 +433,7 @@ struct dentry *autofs4_expire_indirect(struct super_block *sb,
- struct dentry *root = sb->s_root;
- struct dentry *dentry;
- struct dentry *expired;
-+ struct dentry *found;
- struct autofs_info *ino;
-
- if (!root)
-@@ -442,31 +444,46 @@ struct dentry *autofs4_expire_indirect(struct super_block *sb,
-
- dentry = NULL;
- while ((dentry = get_next_positive_subdir(dentry, root))) {
-+ int flags = how;
-+
- spin_lock(&sbi->fs_lock);
- ino = autofs4_dentry_ino(dentry);
-- if (ino->flags & AUTOFS_INF_WANT_EXPIRE)
-- expired = NULL;
-- else
-- expired = should_expire(dentry, mnt, timeout, how);
-- if (!expired) {
-+ if (ino->flags & AUTOFS_INF_WANT_EXPIRE) {
- spin_unlock(&sbi->fs_lock);
- continue;
- }
-+ spin_unlock(&sbi->fs_lock);
-+
-+ expired = should_expire(dentry, mnt, timeout, flags);
-+ if (!expired)
-+ continue;
-+
-+ spin_lock(&sbi->fs_lock);
- ino = autofs4_dentry_ino(expired);
- ino->flags |= AUTOFS_INF_WANT_EXPIRE;
- spin_unlock(&sbi->fs_lock);
- synchronize_rcu();
-- spin_lock(&sbi->fs_lock);
-- if (should_expire(expired, mnt, timeout, how)) {
-- if (expired != dentry)
-- dput(dentry);
-- goto found;
-- }
-
-+ /* Make sure a reference is not taken on found if
-+ * things have changed.
-+ */
-+ flags &= ~AUTOFS_EXP_LEAVES;
-+ found = should_expire(expired, mnt, timeout, how);
-+ if (!found || found != expired)
-+ /* Something has changed, continue */
-+ goto next;
-+
-+ if (expired != dentry)
-+ dput(dentry);
-+
-+ spin_lock(&sbi->fs_lock);
-+ goto found;
-+next:
-+ spin_lock(&sbi->fs_lock);
- ino->flags &= ~AUTOFS_INF_WANT_EXPIRE;
-+ spin_unlock(&sbi->fs_lock);
- if (expired != dentry)
- dput(expired);
-- spin_unlock(&sbi->fs_lock);
- }
- return NULL;
-
-@@ -483,6 +500,7 @@ int autofs4_expire_wait(struct dentry *dentry, int rcu_walk)
- struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb);
- struct autofs_info *ino = autofs4_dentry_ino(dentry);
- int status;
-+ int state;
-
- /* Block on any pending expire */
- if (!(ino->flags & AUTOFS_INF_WANT_EXPIRE))
-@@ -490,8 +508,19 @@ int autofs4_expire_wait(struct dentry *dentry, int rcu_walk)
- if (rcu_walk)
- return -ECHILD;
-
-+retry:
- spin_lock(&sbi->fs_lock);
-- if (ino->flags & AUTOFS_INF_EXPIRING) {
-+ state = ino->flags & (AUTOFS_INF_WANT_EXPIRE | AUTOFS_INF_EXPIRING);
-+ if (state == AUTOFS_INF_WANT_EXPIRE) {
-+ spin_unlock(&sbi->fs_lock);
-+ /*
-+ * Possibly being selected for expire, wait until
-+ * it's selected or not.
-+ */
-+ schedule_timeout_uninterruptible(HZ/10);
-+ goto retry;
-+ }
-+ if (state & AUTOFS_INF_EXPIRING) {
- spin_unlock(&sbi->fs_lock);
-
- pr_debug("waiting for expire %p name=%pd\n", dentry, dentry);
-diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
-index 3722a1f..4ffcf0c 100644
---- a/fs/btrfs/ioctl.c
-+++ b/fs/btrfs/ioctl.c
-@@ -1634,6 +1634,9 @@ static noinline int btrfs_ioctl_snap_create_transid(struct file *file,
- int namelen;
- int ret = 0;
-
-+ if (!S_ISDIR(file_inode(file)->i_mode))
-+ return -ENOTDIR;
-+
- ret = mnt_want_write_file(file);
- if (ret)
- goto out;
-@@ -1691,6 +1694,9 @@ static noinline int btrfs_ioctl_snap_create(struct file *file,
- struct btrfs_ioctl_vol_args *vol_args;
- int ret;
-
-+ if (!S_ISDIR(file_inode(file)->i_mode))
-+ return -ENOTDIR;
-+
- vol_args = memdup_user(arg, sizeof(*vol_args));
- if (IS_ERR(vol_args))
- return PTR_ERR(vol_args);
-@@ -1714,6 +1720,9 @@ static noinline int btrfs_ioctl_snap_create_v2(struct file *file,
- bool readonly = false;
- struct btrfs_qgroup_inherit *inherit = NULL;
-
-+ if (!S_ISDIR(file_inode(file)->i_mode))
-+ return -ENOTDIR;
-+
- vol_args = memdup_user(arg, sizeof(*vol_args));
- if (IS_ERR(vol_args))
- return PTR_ERR(vol_args);
-@@ -2358,6 +2367,9 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
- int ret;
- int err = 0;
-
-+ if (!S_ISDIR(dir->i_mode))
-+ return -ENOTDIR;
-+
- vol_args = memdup_user(arg, sizeof(*vol_args));
- if (IS_ERR(vol_args))
- return PTR_ERR(vol_args);
-diff --git a/fs/ceph/file.c b/fs/ceph/file.c
-index 0daaf7c..b1b9b48 100644
---- a/fs/ceph/file.c
-+++ b/fs/ceph/file.c
-@@ -1448,16 +1448,14 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int whence)
- {
- struct inode *inode = file->f_mapping->host;
- loff_t i_size;
-- int ret;
-+ loff_t ret;
-
- inode_lock(inode);
-
- if (whence == SEEK_END || whence == SEEK_DATA || whence == SEEK_HOLE) {
- ret = ceph_do_getattr(inode, CEPH_STAT_CAP_SIZE, false);
-- if (ret < 0) {
-- offset = ret;
-+ if (ret < 0)
- goto out;
-- }
- }
-
- i_size = i_size_read(inode);
-@@ -1473,7 +1471,7 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int whence)
- * write() or lseek() might have altered it
- */
- if (offset == 0) {
-- offset = file->f_pos;
-+ ret = file->f_pos;
- goto out;
- }
- offset += file->f_pos;
-@@ -1493,11 +1491,11 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int whence)
- break;
- }
-
-- offset = vfs_setpos(file, offset, inode->i_sb->s_maxbytes);
-+ ret = vfs_setpos(file, offset, inode->i_sb->s_maxbytes);
-
- out:
- inode_unlock(inode);
-- return offset;
-+ return ret;
- }
-
- static inline void ceph_zero_partial_page(
-diff --git a/fs/ceph/ioctl.c b/fs/ceph/ioctl.c
-index be6b165..0946f2d 100644
---- a/fs/ceph/ioctl.c
-+++ b/fs/ceph/ioctl.c
-@@ -183,7 +183,7 @@ static long ceph_ioctl_get_dataloc(struct file *file, void __user *arg)
- struct ceph_osd_client *osdc =
- &ceph_sb_to_client(inode->i_sb)->client->osdc;
- struct ceph_object_locator oloc;
-- struct ceph_object_id oid;
-+ CEPH_DEFINE_OID_ONSTACK(oid);
- u64 len = 1, olen;
- u64 tmp;
- struct ceph_pg pgid;
-diff --git a/fs/configfs/file.c b/fs/configfs/file.c
-index bbc1252..2ddfa05 100644
---- a/fs/configfs/file.c
-+++ b/fs/configfs/file.c
-@@ -333,6 +333,7 @@ configfs_write_bin_file(struct file *file, const char __user *buf,
- if (bin_attr->cb_max_size &&
- *ppos + count > bin_attr->cb_max_size) {
- len = -EFBIG;
-+ goto out;
- }
-
- tbuf = vmalloc(*ppos + count);
-diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
-index 5c57654..90e46cd 100644
---- a/fs/hostfs/hostfs_kern.c
-+++ b/fs/hostfs/hostfs_kern.c
-@@ -959,10 +959,11 @@ static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
-
- if (S_ISLNK(root_inode->i_mode)) {
- char *name = follow_link(host_root_path);
-- if (IS_ERR(name))
-+ if (IS_ERR(name)) {
- err = PTR_ERR(name);
-- else
-- err = read_name(root_inode, name);
-+ goto out_put;
-+ }
-+ err = read_name(root_inode, name);
- kfree(name);
- if (err)
- goto out_put;
-diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
-index d2f97ec..e0e5f7c 100644
---- a/fs/notify/fanotify/fanotify.c
-+++ b/fs/notify/fanotify/fanotify.c
-@@ -67,18 +67,7 @@ static int fanotify_get_response(struct fsnotify_group *group,
-
- pr_debug("%s: group=%p event=%p\n", __func__, group, event);
-
-- wait_event(group->fanotify_data.access_waitq, event->response ||
-- atomic_read(&group->fanotify_data.bypass_perm));
--
-- if (!event->response) { /* bypass_perm set */
-- /*
-- * Event was canceled because group is being destroyed. Remove
-- * it from group's event list because we are responsible for
-- * freeing the permission event.
-- */
-- fsnotify_remove_event(group, &event->fae.fse);
-- return 0;
-- }
-+ wait_event(group->fanotify_data.access_waitq, event->response);
-
- /* userspace responded, convert to something usable */
- switch (event->response) {
-diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
-index 8e8e6bc..a643138 100644
---- a/fs/notify/fanotify/fanotify_user.c
-+++ b/fs/notify/fanotify/fanotify_user.c
-@@ -358,16 +358,20 @@ static int fanotify_release(struct inode *ignored, struct file *file)
-
- #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
- struct fanotify_perm_event_info *event, *next;
-+ struct fsnotify_event *fsn_event;
-
- /*
-- * There may be still new events arriving in the notification queue
-- * but since userspace cannot use fanotify fd anymore, no event can
-- * enter or leave access_list by now.
-+ * Stop new events from arriving in the notification queue. since
-+ * userspace cannot use fanotify fd anymore, no event can enter or
-+ * leave access_list by now either.
- */
-- spin_lock(&group->fanotify_data.access_lock);
--
-- atomic_inc(&group->fanotify_data.bypass_perm);
-+ fsnotify_group_stop_queueing(group);
-
-+ /*
-+ * Process all permission events on access_list and notification queue
-+ * and simulate reply from userspace.
-+ */
-+ spin_lock(&group->fanotify_data.access_lock);
- list_for_each_entry_safe(event, next, &group->fanotify_data.access_list,
- fae.fse.list) {
- pr_debug("%s: found group=%p event=%p\n", __func__, group,
-@@ -379,12 +383,21 @@ static int fanotify_release(struct inode *ignored, struct file *file)
- spin_unlock(&group->fanotify_data.access_lock);
-
- /*
-- * Since bypass_perm is set, newly queued events will not wait for
-- * access response. Wake up the already sleeping ones now.
-- * synchronize_srcu() in fsnotify_destroy_group() will wait for all
-- * processes sleeping in fanotify_handle_event() waiting for access
-- * response and thus also for all permission events to be freed.
-+ * Destroy all non-permission events. For permission events just
-+ * dequeue them and set the response. They will be freed once the
-+ * response is consumed and fanotify_get_response() returns.
- */
-+ mutex_lock(&group->notification_mutex);
-+ while (!fsnotify_notify_queue_is_empty(group)) {
-+ fsn_event = fsnotify_remove_first_event(group);
-+ if (!(fsn_event->mask & FAN_ALL_PERM_EVENTS))
-+ fsnotify_destroy_event(group, fsn_event);
-+ else
-+ FANOTIFY_PE(fsn_event)->response = FAN_ALLOW;
-+ }
-+ mutex_unlock(&group->notification_mutex);
-+
-+ /* Response for all permission events it set, wakeup waiters */
- wake_up(&group->fanotify_data.access_waitq);
- #endif
-
-@@ -755,7 +768,6 @@ SYSCALL_DEFINE2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
- spin_lock_init(&group->fanotify_data.access_lock);
- init_waitqueue_head(&group->fanotify_data.access_waitq);
- INIT_LIST_HEAD(&group->fanotify_data.access_list);
-- atomic_set(&group->fanotify_data.bypass_perm, 0);
- #endif
- switch (flags & FAN_ALL_CLASS_BITS) {
- case FAN_CLASS_NOTIF:
-diff --git a/fs/notify/group.c b/fs/notify/group.c
-index 3e2dd85..b47f7cf 100644
---- a/fs/notify/group.c
-+++ b/fs/notify/group.c
-@@ -40,6 +40,17 @@ static void fsnotify_final_destroy_group(struct fsnotify_group *group)
- }
-
- /*
-+ * Stop queueing new events for this group. Once this function returns
-+ * fsnotify_add_event() will not add any new events to the group's queue.
-+ */
-+void fsnotify_group_stop_queueing(struct fsnotify_group *group)
-+{
-+ mutex_lock(&group->notification_mutex);
-+ group->shutdown = true;
-+ mutex_unlock(&group->notification_mutex);
-+}
-+
-+/*
- * Trying to get rid of a group. Remove all marks, flush all events and release
- * the group reference.
- * Note that another thread calling fsnotify_clear_marks_by_group() may still
-@@ -47,6 +58,14 @@ static void fsnotify_final_destroy_group(struct fsnotify_group *group)
- */
- void fsnotify_destroy_group(struct fsnotify_group *group)
- {
-+ /*
-+ * Stop queueing new events. The code below is careful enough to not
-+ * require this but fanotify needs to stop queuing events even before
-+ * fsnotify_destroy_group() is called and this makes the other callers
-+ * of fsnotify_destroy_group() to see the same behavior.
-+ */
-+ fsnotify_group_stop_queueing(group);
-+
- /* clear all inode marks for this group, attach them to destroy_list */
- fsnotify_detach_group_marks(group);
-
-diff --git a/fs/notify/notification.c b/fs/notify/notification.c
-index a95d8e0..e455e83 100644
---- a/fs/notify/notification.c
-+++ b/fs/notify/notification.c
-@@ -82,7 +82,8 @@ void fsnotify_destroy_event(struct fsnotify_group *group,
- * Add an event to the group notification queue. The group can later pull this
- * event off the queue to deal with. The function returns 0 if the event was
- * added to the queue, 1 if the event was merged with some other queued event,
-- * 2 if the queue of events has overflown.
-+ * 2 if the event was not queued - either the queue of events has overflown
-+ * or the group is shutting down.
- */
- int fsnotify_add_event(struct fsnotify_group *group,
- struct fsnotify_event *event,
-@@ -96,6 +97,11 @@ int fsnotify_add_event(struct fsnotify_group *group,
-
- mutex_lock(&group->notification_mutex);
-
-+ if (group->shutdown) {
-+ mutex_unlock(&group->notification_mutex);
-+ return 2;
-+ }
-+
- if (group->q_len >= group->max_events) {
- ret = 2;
- /* Queue overflow event only if it isn't already queued */
-@@ -126,21 +132,6 @@ queue:
- }
-
- /*
-- * Remove @event from group's notification queue. It is the responsibility of
-- * the caller to destroy the event.
-- */
--void fsnotify_remove_event(struct fsnotify_group *group,
-- struct fsnotify_event *event)
--{
-- mutex_lock(&group->notification_mutex);
-- if (!list_empty(&event->list)) {
-- list_del_init(&event->list);
-- group->q_len--;
-- }
-- mutex_unlock(&group->notification_mutex);
--}
--
--/*
- * Remove and return the first event from the notification list. It is the
- * responsibility of the caller to destroy the obtained event
- */
-diff --git a/fs/ocfs2/cluster/tcp_internal.h b/fs/ocfs2/cluster/tcp_internal.h
-index 94b1836..b95e7df 100644
---- a/fs/ocfs2/cluster/tcp_internal.h
-+++ b/fs/ocfs2/cluster/tcp_internal.h
-@@ -44,9 +44,6 @@
- * version here in tcp_internal.h should not need to be bumped for
- * filesystem locking changes.
- *
-- * New in version 12
-- * - Negotiate hb timeout when storage is down.
-- *
- * New in version 11
- * - Negotiation of filesystem locking in the dlm join.
- *
-@@ -78,7 +75,7 @@
- * - full 64 bit i_size in the metadata lock lvbs
- * - introduction of "rw" lock and pushing meta/data locking down
- */
--#define O2NET_PROTOCOL_VERSION 12ULL
-+#define O2NET_PROTOCOL_VERSION 11ULL
- struct o2net_handshake {
- __be64 protocol_version;
- __be64 connector_id;
-diff --git a/fs/ocfs2/dlm/dlmconvert.c b/fs/ocfs2/dlm/dlmconvert.c
-index cdeafb4..0bb1286 100644
---- a/fs/ocfs2/dlm/dlmconvert.c
-+++ b/fs/ocfs2/dlm/dlmconvert.c
-@@ -268,7 +268,6 @@ enum dlm_status dlmconvert_remote(struct dlm_ctxt *dlm,
- struct dlm_lock *lock, int flags, int type)
- {
- enum dlm_status status;
-- u8 old_owner = res->owner;
-
- mlog(0, "type=%d, convert_type=%d, busy=%d\n", lock->ml.type,
- lock->ml.convert_type, res->state & DLM_LOCK_RES_IN_PROGRESS);
-@@ -335,7 +334,6 @@ enum dlm_status dlmconvert_remote(struct dlm_ctxt *dlm,
-
- spin_lock(&res->spinlock);
- res->state &= ~DLM_LOCK_RES_IN_PROGRESS;
-- lock->convert_pending = 0;
- /* if it failed, move it back to granted queue.
- * if master returns DLM_NORMAL and then down before sending ast,
- * it may have already been moved to granted queue, reset to
-@@ -344,12 +342,14 @@ enum dlm_status dlmconvert_remote(struct dlm_ctxt *dlm,
- if (status != DLM_NOTQUEUED)
- dlm_error(status);
- dlm_revert_pending_convert(res, lock);
-- } else if ((res->state & DLM_LOCK_RES_RECOVERING) ||
-- (old_owner != res->owner)) {
-- mlog(0, "res %.*s is in recovering or has been recovered.\n",
-- res->lockname.len, res->lockname.name);
-+ } else if (!lock->convert_pending) {
-+ mlog(0, "%s: res %.*s, owner died and lock has been moved back "
-+ "to granted list, retry convert.\n",
-+ dlm->name, res->lockname.len, res->lockname.name);
- status = DLM_RECOVERING;
- }
-+
-+ lock->convert_pending = 0;
- bail:
- spin_unlock(&res->spinlock);
-
-diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
-index 4e7b0dc..0b055bf 100644
---- a/fs/ocfs2/file.c
-+++ b/fs/ocfs2/file.c
-@@ -1506,7 +1506,8 @@ static int ocfs2_zero_partial_clusters(struct inode *inode,
- u64 start, u64 len)
- {
- int ret = 0;
-- u64 tmpend, end = start + len;
-+ u64 tmpend = 0;
-+ u64 end = start + len;
- struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
- unsigned int csize = osb->s_clustersize;
- handle_t *handle;
-@@ -1538,18 +1539,31 @@ static int ocfs2_zero_partial_clusters(struct inode *inode,
- }
-
- /*
-- * We want to get the byte offset of the end of the 1st cluster.
-+ * If start is on a cluster boundary and end is somewhere in another
-+ * cluster, we have not COWed the cluster starting at start, unless
-+ * end is also within the same cluster. So, in this case, we skip this
-+ * first call to ocfs2_zero_range_for_truncate() truncate and move on
-+ * to the next one.
- */
-- tmpend = (u64)osb->s_clustersize + (start & ~(osb->s_clustersize - 1));
-- if (tmpend > end)
-- tmpend = end;
-+ if ((start & (csize - 1)) != 0) {
-+ /*
-+ * We want to get the byte offset of the end of the 1st
-+ * cluster.
-+ */
-+ tmpend = (u64)osb->s_clustersize +
-+ (start & ~(osb->s_clustersize - 1));
-+ if (tmpend > end)
-+ tmpend = end;
-
-- trace_ocfs2_zero_partial_clusters_range1((unsigned long long)start,
-- (unsigned long long)tmpend);
-+ trace_ocfs2_zero_partial_clusters_range1(
-+ (unsigned long long)start,
-+ (unsigned long long)tmpend);
-
-- ret = ocfs2_zero_range_for_truncate(inode, handle, start, tmpend);
-- if (ret)
-- mlog_errno(ret);
-+ ret = ocfs2_zero_range_for_truncate(inode, handle, start,
-+ tmpend);
-+ if (ret)
-+ mlog_errno(ret);
-+ }
-
- if (tmpend < end) {
- /*
-diff --git a/fs/reiserfs/ibalance.c b/fs/reiserfs/ibalance.c
-index b751eea..5db6f45 100644
---- a/fs/reiserfs/ibalance.c
-+++ b/fs/reiserfs/ibalance.c
-@@ -1153,8 +1153,9 @@ int balance_internal(struct tree_balance *tb,
- insert_ptr);
- }
-
-- memcpy(new_insert_key_addr, &new_insert_key, KEY_SIZE);
- insert_ptr[0] = new_insert_ptr;
-+ if (new_insert_ptr)
-+ memcpy(new_insert_key_addr, &new_insert_key, KEY_SIZE);
-
- return order;
- }
-diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
-index e71cfbd..41c20b6 100644
---- a/fs/xfs/xfs_buf.c
-+++ b/fs/xfs/xfs_buf.c
-@@ -1531,7 +1531,7 @@ xfs_wait_buftarg(
- * ensure here that all reference counts have been dropped before we
- * start walking the LRU list.
- */
-- drain_workqueue(btp->bt_mount->m_buf_workqueue);
-+ flush_workqueue(btp->bt_mount->m_buf_workqueue);
-
- /* loop until there is nothing left on the lru list. */
- while (list_lru_count(&btp->bt_lru)) {
-diff --git a/include/linux/ceph/libceph.h b/include/linux/ceph/libceph.h
-index 690985d..6b79a6b 100644
---- a/include/linux/ceph/libceph.h
-+++ b/include/linux/ceph/libceph.h
-@@ -214,8 +214,9 @@ static void erase_##name(struct rb_root *root, type *t) \
- }
-
- #define DEFINE_RB_LOOKUP_FUNC(name, type, keyfld, nodefld) \
-+extern type __lookup_##name##_key; \
- static type *lookup_##name(struct rb_root *root, \
-- typeof(((type *)0)->keyfld) key) \
-+ typeof(__lookup_##name##_key.keyfld) key) \
- { \
- struct rb_node *n = root->rb_node; \
- \
-diff --git a/include/linux/ceph/osdmap.h b/include/linux/ceph/osdmap.h
-index 9ccf4db..21d7f04 100644
---- a/include/linux/ceph/osdmap.h
-+++ b/include/linux/ceph/osdmap.h
-@@ -115,6 +115,11 @@ static inline void ceph_oid_init(struct ceph_object_id *oid)
- oid->name_len = 0;
- }
-
-+#define CEPH_OID_INIT_ONSTACK(oid) \
-+ ({ ceph_oid_init(&oid); oid; })
-+#define CEPH_DEFINE_OID_ONSTACK(oid) \
-+ struct ceph_object_id oid = CEPH_OID_INIT_ONSTACK(oid)
-+
- static inline bool ceph_oid_empty(const struct ceph_object_id *oid)
- {
- return oid->name == oid->inline_name && !oid->name_len;
-diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h
-index 29f9175..16af670 100644
---- a/include/linux/fsnotify_backend.h
-+++ b/include/linux/fsnotify_backend.h
-@@ -148,6 +148,7 @@ struct fsnotify_group {
- #define FS_PRIO_1 1 /* fanotify content based access control */
- #define FS_PRIO_2 2 /* fanotify pre-content access */
- unsigned int priority;
-+ bool shutdown; /* group is being shut down, don't queue more events */
-
- /* stores all fastpath marks assoc with this group so they can be cleaned on unregister */
- struct mutex mark_mutex; /* protect marks_list */
-@@ -179,7 +180,6 @@ struct fsnotify_group {
- spinlock_t access_lock;
- struct list_head access_list;
- wait_queue_head_t access_waitq;
-- atomic_t bypass_perm;
- #endif /* CONFIG_FANOTIFY_ACCESS_PERMISSIONS */
- int f_flags;
- unsigned int max_marks;
-@@ -303,6 +303,8 @@ extern struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *op
- extern void fsnotify_get_group(struct fsnotify_group *group);
- /* drop reference on a group from fsnotify_alloc_group */
- extern void fsnotify_put_group(struct fsnotify_group *group);
-+/* group destruction begins, stop queuing new events */
-+extern void fsnotify_group_stop_queueing(struct fsnotify_group *group);
- /* destroy group */
- extern void fsnotify_destroy_group(struct fsnotify_group *group);
- /* fasync handler function */
-@@ -315,8 +317,6 @@ extern int fsnotify_add_event(struct fsnotify_group *group,
- struct fsnotify_event *event,
- int (*merge)(struct list_head *,
- struct fsnotify_event *));
--/* Remove passed event from groups notification queue */
--extern void fsnotify_remove_event(struct fsnotify_group *group, struct fsnotify_event *event);
- /* true if the group notification queue is empty */
- extern bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group);
- /* return, but do not dequeue the first event on the notification queue */
-diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
-index 9735410..1f94053 100644
---- a/include/linux/pagemap.h
-+++ b/include/linux/pagemap.h
-@@ -571,56 +571,56 @@ static inline int fault_in_pages_readable(const char __user *uaddr, int size)
- */
- static inline int fault_in_multipages_writeable(char __user *uaddr, int size)
- {
-- int ret = 0;
- char __user *end = uaddr + size - 1;
-
- if (unlikely(size == 0))
-- return ret;
-+ return 0;
-
-+ if (unlikely(uaddr > end))
-+ return -EFAULT;
- /*
- * Writing zeroes into userspace here is OK, because we know that if
- * the zero gets there, we'll be overwriting it.
- */
-- while (uaddr <= end) {
-- ret = __put_user(0, uaddr);
-- if (ret != 0)
-- return ret;
-+ do {
-+ if (unlikely(__put_user(0, uaddr) != 0))
-+ return -EFAULT;
- uaddr += PAGE_SIZE;
-- }
-+ } while (uaddr <= end);
-
- /* Check whether the range spilled into the next page. */
- if (((unsigned long)uaddr & PAGE_MASK) ==
- ((unsigned long)end & PAGE_MASK))
-- ret = __put_user(0, end);
-+ return __put_user(0, end);
-
-- return ret;
-+ return 0;
- }
-
- static inline int fault_in_multipages_readable(const char __user *uaddr,
- int size)
- {
- volatile char c;
-- int ret = 0;
- const char __user *end = uaddr + size - 1;
-
- if (unlikely(size == 0))
-- return ret;
-+ return 0;
-
-- while (uaddr <= end) {
-- ret = __get_user(c, uaddr);
-- if (ret != 0)
-- return ret;
-+ if (unlikely(uaddr > end))
-+ return -EFAULT;
-+
-+ do {
-+ if (unlikely(__get_user(c, uaddr) != 0))
-+ return -EFAULT;
- uaddr += PAGE_SIZE;
-- }
-+ } while (uaddr <= end);
-
- /* Check whether the range spilled into the next page. */
- if (((unsigned long)uaddr & PAGE_MASK) ==
- ((unsigned long)end & PAGE_MASK)) {
-- ret = __get_user(c, end);
-- (void)c;
-+ return __get_user(c, end);
- }
-
-- return ret;
-+ return 0;
- }
-
- int add_to_page_cache_locked(struct page *page, struct address_space *mapping,
-diff --git a/include/linux/reset.h b/include/linux/reset.h
-index 45a4abe..5daff15 100644
---- a/include/linux/reset.h
-+++ b/include/linux/reset.h
-@@ -71,14 +71,14 @@ static inline struct reset_control *__of_reset_control_get(
- struct device_node *node,
- const char *id, int index, int shared)
- {
-- return ERR_PTR(-EINVAL);
-+ return ERR_PTR(-ENOTSUPP);
- }
-
- static inline struct reset_control *__devm_reset_control_get(
- struct device *dev,
- const char *id, int index, int shared)
- {
-- return ERR_PTR(-EINVAL);
-+ return ERR_PTR(-ENOTSUPP);
- }
-
- #endif /* CONFIG_RESET_CONTROLLER */
-diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index e0be49f..129a7ca 100644
---- a/kernel/cgroup.c
-+++ b/kernel/cgroup.c
-@@ -6240,6 +6240,12 @@ void cgroup_sk_alloc(struct sock_cgroup_data *skcd)
- if (cgroup_sk_alloc_disabled)
- return;
-
-+ /* Socket clone path */
-+ if (skcd->val) {
-+ cgroup_get(sock_cgroup_ptr(skcd));
-+ return;
-+ }
-+
- rcu_read_lock();
-
- while (true) {
-diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index fca9254..2fc1177 100644
---- a/kernel/power/hibernate.c
-+++ b/kernel/power/hibernate.c
-@@ -299,12 +299,12 @@ static int create_image(int platform_mode)
- save_processor_state();
- trace_suspend_resume(TPS("machine_suspend"), PM_EVENT_HIBERNATE, true);
- error = swsusp_arch_suspend();
-+ /* Restore control flow magically appears here */
-+ restore_processor_state();
- trace_suspend_resume(TPS("machine_suspend"), PM_EVENT_HIBERNATE, false);
- if (error)
- printk(KERN_ERR "PM: Error %d creating hibernation image\n",
- error);
-- /* Restore control flow magically appears here */
-- restore_processor_state();
- if (!in_suspend)
- events_check_enabled = false;
-
-diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
-index 3a97060..f155c62 100644
---- a/kernel/power/snapshot.c
-+++ b/kernel/power/snapshot.c
-@@ -765,9 +765,9 @@ static bool memory_bm_pfn_present(struct memory_bitmap *bm, unsigned long pfn)
- */
- static bool rtree_next_node(struct memory_bitmap *bm)
- {
-- bm->cur.node = list_entry(bm->cur.node->list.next,
-- struct rtree_node, list);
-- if (&bm->cur.node->list != &bm->cur.zone->leaves) {
-+ if (!list_is_last(&bm->cur.node->list, &bm->cur.zone->leaves)) {
-+ bm->cur.node = list_entry(bm->cur.node->list.next,
-+ struct rtree_node, list);
- bm->cur.node_pfn += BM_BITS_PER_BLOCK;
- bm->cur.node_bit = 0;
- touch_softlockup_watchdog();
-@@ -775,9 +775,9 @@ static bool rtree_next_node(struct memory_bitmap *bm)
- }
-
- /* No more nodes, goto next zone */
-- bm->cur.zone = list_entry(bm->cur.zone->list.next,
-+ if (!list_is_last(&bm->cur.zone->list, &bm->zones)) {
-+ bm->cur.zone = list_entry(bm->cur.zone->list.next,
- struct mem_zone_bm_rtree, list);
-- if (&bm->cur.zone->list != &bm->zones) {
- bm->cur.node = list_entry(bm->cur.zone->leaves.next,
- struct rtree_node, list);
- bm->cur.node_pfn = 0;
-diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
-index 979e7bf..d0a1617 100644
---- a/kernel/trace/Makefile
-+++ b/kernel/trace/Makefile
-@@ -1,4 +1,8 @@
-
-+# We are fully aware of the dangers of __builtin_return_address()
-+FRAME_CFLAGS := $(call cc-disable-warning,frame-address)
-+KBUILD_CFLAGS += $(FRAME_CFLAGS)
-+
- # Do not instrument the tracer itself:
-
- ifdef CONFIG_FUNCTION_TRACER
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 8a4bd6b..77eeab2 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -4890,19 +4890,20 @@ tracing_read_pipe(struct file *filp, char __user *ubuf,
- struct trace_iterator *iter = filp->private_data;
- ssize_t sret;
-
-- /* return any leftover data */
-- sret = trace_seq_to_user(&iter->seq, ubuf, cnt);
-- if (sret != -EBUSY)
-- return sret;
--
-- trace_seq_init(&iter->seq);
--
- /*
- * Avoid more than one consumer on a single file descriptor
- * This is just a matter of traces coherency, the ring buffer itself
- * is protected.
- */
- mutex_lock(&iter->mutex);
-+
-+ /* return any leftover data */
-+ sret = trace_seq_to_user(&iter->seq, ubuf, cnt);
-+ if (sret != -EBUSY)
-+ goto out;
-+
-+ trace_seq_init(&iter->seq);
-+
- if (iter->trace->read) {
- sret = iter->trace->read(iter, filp, ubuf, cnt, ppos);
- if (sret)
-@@ -5929,9 +5930,6 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
- return -EBUSY;
- #endif
-
-- if (splice_grow_spd(pipe, &spd))
-- return -ENOMEM;
--
- if (*ppos & (PAGE_SIZE - 1))
- return -EINVAL;
-
-@@ -5941,6 +5939,9 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
- len &= PAGE_MASK;
- }
-
-+ if (splice_grow_spd(pipe, &spd))
-+ return -ENOMEM;
-+
- again:
- trace_access_lock(iter->cpu_file);
- entries = ring_buffer_entries_cpu(iter->trace_buffer->buffer, iter->cpu_file);
-@@ -5998,19 +5999,21 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
- /* did we read anything? */
- if (!spd.nr_pages) {
- if (ret)
-- return ret;
-+ goto out;
-
-+ ret = -EAGAIN;
- if ((file->f_flags & O_NONBLOCK) || (flags & SPLICE_F_NONBLOCK))
-- return -EAGAIN;
-+ goto out;
-
- ret = wait_on_pipe(iter, true);
- if (ret)
-- return ret;
-+ goto out;
-
- goto again;
- }
-
- ret = splice_to_pipe(pipe, &spd);
-+out:
- splice_shrink_spd(&spd);
-
- return ret;
-diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c
-index 6845f92..50e92c5 100644
---- a/mm/kasan/kasan.c
-+++ b/mm/kasan/kasan.c
-@@ -562,7 +562,7 @@ void kasan_kmalloc(struct kmem_cache *cache, const void *object, size_t size,
- unsigned long redzone_start;
- unsigned long redzone_end;
-
-- if (flags & __GFP_RECLAIM)
-+ if (gfpflags_allow_blocking(flags))
- quarantine_reduce();
-
- if (unlikely(object == NULL))
-@@ -595,7 +595,7 @@ void kasan_kmalloc_large(const void *ptr, size_t size, gfp_t flags)
- unsigned long redzone_start;
- unsigned long redzone_end;
-
-- if (flags & __GFP_RECLAIM)
-+ if (gfpflags_allow_blocking(flags))
- quarantine_reduce();
-
- if (unlikely(ptr == NULL))
-diff --git a/mm/kasan/quarantine.c b/mm/kasan/quarantine.c
-index 65793f1..a04887c 100644
---- a/mm/kasan/quarantine.c
-+++ b/mm/kasan/quarantine.c
-@@ -196,7 +196,7 @@ void quarantine_put(struct kasan_free_meta *info, struct kmem_cache *cache)
-
- void quarantine_reduce(void)
- {
-- size_t new_quarantine_size;
-+ size_t new_quarantine_size, percpu_quarantines;
- unsigned long flags;
- struct qlist_head to_free = QLIST_INIT;
- size_t size_to_free = 0;
-@@ -214,7 +214,12 @@ void quarantine_reduce(void)
- */
- new_quarantine_size = (READ_ONCE(totalram_pages) << PAGE_SHIFT) /
- QUARANTINE_FRACTION;
-- new_quarantine_size -= QUARANTINE_PERCPU_SIZE * num_online_cpus();
-+ percpu_quarantines = QUARANTINE_PERCPU_SIZE * num_online_cpus();
-+ if (WARN_ONCE(new_quarantine_size < percpu_quarantines,
-+ "Too little memory, disabling global KASAN quarantine.\n"))
-+ new_quarantine_size = 0;
-+ else
-+ new_quarantine_size -= percpu_quarantines;
- WRITE_ONCE(quarantine_size, new_quarantine_size);
-
- last = global_quarantine.head;
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index ca847d9..fcb5b8c 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -1797,17 +1797,22 @@ static DEFINE_MUTEX(percpu_charge_mutex);
- static bool consume_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
- {
- struct memcg_stock_pcp *stock;
-+ unsigned long flags;
- bool ret = false;
-
- if (nr_pages > CHARGE_BATCH)
- return ret;
-
-- stock = &get_cpu_var(memcg_stock);
-+ local_irq_save(flags);
-+
-+ stock = this_cpu_ptr(&memcg_stock);
- if (memcg == stock->cached && stock->nr_pages >= nr_pages) {
- stock->nr_pages -= nr_pages;
- ret = true;
- }
-- put_cpu_var(memcg_stock);
-+
-+ local_irq_restore(flags);
-+
- return ret;
- }
-
-@@ -1828,15 +1833,18 @@ static void drain_stock(struct memcg_stock_pcp *stock)
- stock->cached = NULL;
- }
-
--/*
-- * This must be called under preempt disabled or must be called by
-- * a thread which is pinned to local cpu.
-- */
- static void drain_local_stock(struct work_struct *dummy)
- {
-- struct memcg_stock_pcp *stock = this_cpu_ptr(&memcg_stock);
-+ struct memcg_stock_pcp *stock;
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
-+ stock = this_cpu_ptr(&memcg_stock);
- drain_stock(stock);
- clear_bit(FLUSHING_CACHED_CHARGE, &stock->flags);
-+
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -1845,14 +1853,19 @@ static void drain_local_stock(struct work_struct *dummy)
- */
- static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
- {
-- struct memcg_stock_pcp *stock = &get_cpu_var(memcg_stock);
-+ struct memcg_stock_pcp *stock;
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-
-+ stock = this_cpu_ptr(&memcg_stock);
- if (stock->cached != memcg) { /* reset if necessary */
- drain_stock(stock);
- stock->cached = memcg;
- }
- stock->nr_pages += nr_pages;
-- put_cpu_var(memcg_stock);
-+
-+ local_irq_restore(flags);
- }
-
- /*
-diff --git a/mm/page_io.c b/mm/page_io.c
-index 242dba0..dc1af1e 100644
---- a/mm/page_io.c
-+++ b/mm/page_io.c
-@@ -262,6 +262,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
- int ret, rw = WRITE;
- struct swap_info_struct *sis = page_swap_info(page);
-
-+ BUG_ON(!PageSwapCache(page));
- if (sis->flags & SWP_FILE) {
- struct kiocb kiocb;
- struct file *swap_file = sis->swap_file;
-@@ -333,6 +334,7 @@ int swap_readpage(struct page *page)
- int ret = 0;
- struct swap_info_struct *sis = page_swap_info(page);
-
-+ BUG_ON(!PageSwapCache(page));
- VM_BUG_ON_PAGE(!PageLocked(page), page);
- VM_BUG_ON_PAGE(PageUptodate(page), page);
- if (frontswap_load(page) == 0) {
-@@ -381,6 +383,7 @@ int swap_set_page_dirty(struct page *page)
-
- if (sis->flags & SWP_FILE) {
- struct address_space *mapping = sis->swap_file->f_mapping;
-+ BUG_ON(!PageSwapCache(page));
- return mapping->a_ops->set_page_dirty(page);
- } else {
- return __set_page_dirty_no_writeback(page);
-diff --git a/mm/swapfile.c b/mm/swapfile.c
-index 031713ab..46502f5 100644
---- a/mm/swapfile.c
-+++ b/mm/swapfile.c
-@@ -2724,7 +2724,6 @@ int swapcache_prepare(swp_entry_t entry)
- struct swap_info_struct *page_swap_info(struct page *page)
- {
- swp_entry_t swap = { .val = page_private(page) };
-- BUG_ON(!PageSwapCache(page));
- return swap_info[swp_type(swap)];
- }
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index c4a2f45..38a2691 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2150,23 +2150,6 @@ out:
- }
- }
-
--#ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
--static void init_tlb_ubc(void)
--{
-- /*
-- * This deliberately does not clear the cpumask as it's expensive
-- * and unnecessary. If there happens to be data in there then the
-- * first SWAP_CLUSTER_MAX pages will send an unnecessary IPI and
-- * then will be cleared.
-- */
-- current->tlb_ubc.flush_required = false;
--}
--#else
--static inline void init_tlb_ubc(void)
--{
--}
--#endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */
--
- /*
- * This is a basic per-zone page freer. Used by both kswapd and direct reclaim.
- */
-@@ -2202,8 +2185,6 @@ static void shrink_zone_memcg(struct zone *zone, struct mem_cgroup *memcg,
- scan_adjusted = (global_reclaim(sc) && !current_is_kswapd() &&
- sc->priority == DEF_PRIORITY);
-
-- init_tlb_ubc();
--
- blk_start_plug(&plug);
- while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] ||
- nr[LRU_INACTIVE_FILE]) {
-diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
-index 8946959..aee117f 100644
---- a/net/ceph/osd_client.c
-+++ b/net/ceph/osd_client.c
-@@ -4187,7 +4187,7 @@ static struct ceph_msg *alloc_msg_with_page_vector(struct ceph_msg_header *hdr)
-
- pages = ceph_alloc_page_vector(calc_pages_for(0, data_len),
- GFP_NOIO);
-- if (!pages) {
-+ if (IS_ERR(pages)) {
- ceph_msg_put(m);
- return NULL;
- }
-diff --git a/net/core/sock.c b/net/core/sock.c
-index 25dab8b..fd7b41e 100644
---- a/net/core/sock.c
-+++ b/net/core/sock.c
-@@ -1362,7 +1362,6 @@ static struct sock *sk_prot_alloc(struct proto *prot, gfp_t priority,
- if (!try_module_get(prot->owner))
- goto out_free_sec;
- sk_tx_queue_clear(sk);
-- cgroup_sk_alloc(&sk->sk_cgrp_data);
- }
-
- return sk;
-@@ -1422,6 +1421,7 @@ struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
- sock_net_set(sk, net);
- atomic_set(&sk->sk_wmem_alloc, 1);
-
-+ cgroup_sk_alloc(&sk->sk_cgrp_data);
- sock_update_classid(&sk->sk_cgrp_data);
- sock_update_netprioidx(&sk->sk_cgrp_data);
- }
-@@ -1566,6 +1566,9 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
- newsk->sk_priority = 0;
- newsk->sk_incoming_cpu = raw_smp_processor_id();
- atomic64_set(&newsk->sk_cookie, 0);
-+
-+ cgroup_sk_alloc(&newsk->sk_cgrp_data);
-+
- /*
- * Before updating sk_refcnt, we must commit prior changes to memory
- * (Documentation/RCU/rculist_nulls.txt for details)
-diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
-index 3a8f881..0a7305a 100644
---- a/net/mac80211/agg-rx.c
-+++ b/net/mac80211/agg-rx.c
-@@ -261,10 +261,16 @@ void __ieee80211_start_rx_ba_session(struct sta_info *sta,
- .timeout = timeout,
- .ssn = start_seq_num,
- };
--
- int i, ret = -EOPNOTSUPP;
- u16 status = WLAN_STATUS_REQUEST_DECLINED;
-
-+ if (tid >= IEEE80211_FIRST_TSPEC_TSID) {
-+ ht_dbg(sta->sdata,
-+ "STA %pM requests BA session on unsupported tid %d\n",
-+ sta->sta.addr, tid);
-+ goto end_no_lock;
-+ }
-+
- if (!sta->sta.ht_cap.ht_supported) {
- ht_dbg(sta->sdata,
- "STA %pM erroneously requests BA session on tid %d w/o QoS\n",
-diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
-index 42fa810..744ad1c 100644
---- a/net/mac80211/agg-tx.c
-+++ b/net/mac80211/agg-tx.c
-@@ -580,6 +580,9 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid,
- ieee80211_hw_check(&local->hw, TX_AMPDU_SETUP_IN_HW))
- return -EINVAL;
-
-+ if (WARN_ON(tid >= IEEE80211_FIRST_TSPEC_TSID))
-+ return -EINVAL;
-+
- ht_dbg(sdata, "Open BA session requested for %pM tid %u\n",
- pubsta->addr, tid);
-
-diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
-index 7d72283..7d38dd6 100644
---- a/net/wireless/nl80211.c
-+++ b/net/wireless/nl80211.c
-@@ -6811,7 +6811,7 @@ static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info)
-
- params.n_counter_offsets_presp = len / sizeof(u16);
- if (rdev->wiphy.max_num_csa_counters &&
-- (params.n_counter_offsets_beacon >
-+ (params.n_counter_offsets_presp >
- rdev->wiphy.max_num_csa_counters))
- return -EINVAL;
-
-diff --git a/scripts/Makefile.ubsan b/scripts/Makefile.ubsan
-index 77ce538..8ab6867 100644
---- a/scripts/Makefile.ubsan
-+++ b/scripts/Makefile.ubsan
-@@ -14,8 +14,4 @@ ifdef CONFIG_UBSAN
- ifdef CONFIG_UBSAN_ALIGNMENT
- CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment)
- endif
--
-- # -fsanitize=* options makes GCC less smart than usual and
-- # increase number of 'maybe-uninitialized false-positives
-- CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized)
- endif
-diff --git a/scripts/package/builddeb b/scripts/package/builddeb
-index 86e56fe..202d6e7 100755
---- a/scripts/package/builddeb
-+++ b/scripts/package/builddeb
-@@ -322,12 +322,12 @@ fi
-
- # Build kernel header package
- (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
--if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then
-- (cd $srctree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrsrcfiles"
--fi
- (cd $srctree; find arch/*/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles"
- (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
- (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
-+if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then
-+ (cd $objtree; find tools/objtool -type f -executable) >> "$objtree/debian/hdrobjfiles"
-+fi
- (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
- destdir=$kernel_headers_dir/usr/src/linux-headers-$version
- mkdir -p "$destdir"
-diff --git a/security/keys/encrypted-keys/encrypted.c b/security/keys/encrypted-keys/encrypted.c
-index 5adbfc3..17a0610 100644
---- a/security/keys/encrypted-keys/encrypted.c
-+++ b/security/keys/encrypted-keys/encrypted.c
-@@ -29,6 +29,7 @@
- #include <linux/rcupdate.h>
- #include <linux/scatterlist.h>
- #include <linux/ctype.h>
-+#include <crypto/aes.h>
- #include <crypto/hash.h>
- #include <crypto/sha.h>
- #include <crypto/skcipher.h>
-@@ -478,6 +479,7 @@ static int derived_key_encrypt(struct encrypted_key_payload *epayload,
- struct crypto_skcipher *tfm;
- struct skcipher_request *req;
- unsigned int encrypted_datalen;
-+ u8 iv[AES_BLOCK_SIZE];
- unsigned int padlen;
- char pad[16];
- int ret;
-@@ -500,8 +502,8 @@ static int derived_key_encrypt(struct encrypted_key_payload *epayload,
- sg_init_table(sg_out, 1);
- sg_set_buf(sg_out, epayload->encrypted_data, encrypted_datalen);
-
-- skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen,
-- epayload->iv);
-+ memcpy(iv, epayload->iv, sizeof(iv));
-+ skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen, iv);
- ret = crypto_skcipher_encrypt(req);
- tfm = crypto_skcipher_reqtfm(req);
- skcipher_request_free(req);
-@@ -581,6 +583,7 @@ static int derived_key_decrypt(struct encrypted_key_payload *epayload,
- struct crypto_skcipher *tfm;
- struct skcipher_request *req;
- unsigned int encrypted_datalen;
-+ u8 iv[AES_BLOCK_SIZE];
- char pad[16];
- int ret;
-
-@@ -599,8 +602,8 @@ static int derived_key_decrypt(struct encrypted_key_payload *epayload,
- epayload->decrypted_datalen);
- sg_set_buf(&sg_out[1], pad, sizeof pad);
-
-- skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen,
-- epayload->iv);
-+ memcpy(iv, epayload->iv, sizeof(iv));
-+ skcipher_request_set_crypt(req, sg_in, sg_out, encrypted_datalen, iv);
- ret = crypto_skcipher_decrypt(req);
- tfm = crypto_skcipher_reqtfm(req);
- skcipher_request_free(req);
diff --git a/4.7.6/0000_README b/4.7.7/0000_README
index 65ecad7..4e38593 100644
--- a/4.7.6/0000_README
+++ b/4.7.7/0000_README
@@ -2,11 +2,11 @@ README
-----------------------------------------------------------------------------
Individual Patch Descriptions:
-----------------------------------------------------------------------------
-Patch: 1005_linux-4.7.6.patch
+Patch: 1006_linux-4.7.7.patch
From: http://www.kernel.org
-Desc: Linux 4.7.6
+Desc: Linux 4.7.7
-Patch: 4420_grsecurity-3.1-4.7.6-201609301918.patch
+Patch: 4420_grsecurity-3.1-4.7.7-201610101902.patch
From: http://www.grsecurity.net
Desc: hardened-sources base patch from upstream grsecurity
diff --git a/4.7.7/1006_linux-4.7.7.patch b/4.7.7/1006_linux-4.7.7.patch
new file mode 100644
index 0000000..07e2684
--- /dev/null
+++ b/4.7.7/1006_linux-4.7.7.patch
@@ -0,0 +1,3811 @@
+diff --git a/Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt b/Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt
+index 46c6f3e..0fa3b0f 100644
+--- a/Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt
++++ b/Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.txt
+@@ -113,9 +113,9 @@ pm8916:
+ l14, l15, l16, l17, l18
+
+ pm8941:
+- s1, s2, s3, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14,
+- l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, lvs3,
+- mvs1, mvs2
++ s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
++ l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, lvs3,
++ 5vs1, 5vs2
+
+ pm8994:
+ s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3, l4, l5,
+diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt
+index 4976389e..dd15a69 100644
+--- a/Documentation/pinctrl.txt
++++ b/Documentation/pinctrl.txt
+@@ -831,7 +831,7 @@ separate memory range only intended for GPIO driving, and the register
+ range dealing with pin config and pin multiplexing get placed into a
+ different memory range and a separate section of the data sheet.
+
+-A flag "strict" in struct pinctrl_desc is available to check and deny
++A flag "strict" in struct pinmux_ops is available to check and deny
+ simultaneous access to the same pin from GPIO and pin multiplexing
+ consumers on hardware of this type. The pinctrl driver should set this flag
+ accordingly.
+diff --git a/Makefile b/Makefile
+index 48b0120..320a930 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ VERSION = 4
+ PATCHLEVEL = 7
+-SUBLEVEL = 6
++SUBLEVEL = 7
+ EXTRAVERSION =
+ NAME = Psychotic Stoned Sheep
+
+diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
+index af11c2f..fc6d541 100644
+--- a/arch/arm/boot/compressed/head.S
++++ b/arch/arm/boot/compressed/head.S
+@@ -779,7 +779,7 @@ __armv7_mmu_cache_on:
+ orrne r0, r0, #1 @ MMU enabled
+ movne r1, #0xfffffffd @ domain 0 = client
+ bic r6, r6, #1 << 31 @ 32-bit translation system
+- bic r6, r6, #3 << 0 @ use only ttbr0
++ bic r6, r6, #(7 << 0) | (1 << 4) @ use only ttbr0
+ mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer
+ mcrne p15, 0, r1, c3, c0, 0 @ load domain access control
+ mcrne p15, 0, r6, c2, c0, 2 @ load ttb control
+diff --git a/arch/arm/boot/dts/imx6sx-sabreauto.dts b/arch/arm/boot/dts/imx6sx-sabreauto.dts
+index 96ea936..240a286 100644
+--- a/arch/arm/boot/dts/imx6sx-sabreauto.dts
++++ b/arch/arm/boot/dts/imx6sx-sabreauto.dts
+@@ -64,7 +64,7 @@
+ cd-gpios = <&gpio7 11 GPIO_ACTIVE_LOW>;
+ no-1-8-v;
+ keep-power-in-suspend;
+- enable-sdio-wakup;
++ wakeup-source;
+ status = "okay";
+ };
+
+diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
+index 263d46d..2d78eee 100644
+--- a/arch/arm/boot/dts/sun5i-a13.dtsi
++++ b/arch/arm/boot/dts/sun5i-a13.dtsi
+@@ -84,7 +84,7 @@
+ trips {
+ cpu_alert0: cpu_alert0 {
+ /* milliCelsius */
+- temperature = <850000>;
++ temperature = <85000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
+index fb0a0a4..0e43718 100644
+--- a/arch/arm/common/sa1111.c
++++ b/arch/arm/common/sa1111.c
+@@ -869,9 +869,9 @@ struct sa1111_save_data {
+
+ #ifdef CONFIG_PM
+
+-static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
++static int sa1111_suspend_noirq(struct device *dev)
+ {
+- struct sa1111 *sachip = platform_get_drvdata(dev);
++ struct sa1111 *sachip = dev_get_drvdata(dev);
+ struct sa1111_save_data *save;
+ unsigned long flags;
+ unsigned int val;
+@@ -934,9 +934,9 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
+ * restored by their respective drivers, and must be called
+ * via LDM after this function.
+ */
+-static int sa1111_resume(struct platform_device *dev)
++static int sa1111_resume_noirq(struct device *dev)
+ {
+- struct sa1111 *sachip = platform_get_drvdata(dev);
++ struct sa1111 *sachip = dev_get_drvdata(dev);
+ struct sa1111_save_data *save;
+ unsigned long flags, id;
+ void __iomem *base;
+@@ -952,7 +952,7 @@ static int sa1111_resume(struct platform_device *dev)
+ id = sa1111_readl(sachip->base + SA1111_SKID);
+ if ((id & SKID_ID_MASK) != SKID_SA1111_ID) {
+ __sa1111_remove(sachip);
+- platform_set_drvdata(dev, NULL);
++ dev_set_drvdata(dev, NULL);
+ kfree(save);
+ return 0;
+ }
+@@ -1003,8 +1003,8 @@ static int sa1111_resume(struct platform_device *dev)
+ }
+
+ #else
+-#define sa1111_suspend NULL
+-#define sa1111_resume NULL
++#define sa1111_suspend_noirq NULL
++#define sa1111_resume_noirq NULL
+ #endif
+
+ static int sa1111_probe(struct platform_device *pdev)
+@@ -1038,6 +1038,11 @@ static int sa1111_remove(struct platform_device *pdev)
+ return 0;
+ }
+
++static struct dev_pm_ops sa1111_pm_ops = {
++ .suspend_noirq = sa1111_suspend_noirq,
++ .resume_noirq = sa1111_resume_noirq,
++};
++
+ /*
+ * Not sure if this should be on the system bus or not yet.
+ * We really want some way to register a system device at
+@@ -1050,10 +1055,9 @@ static int sa1111_remove(struct platform_device *pdev)
+ static struct platform_driver sa1111_device_driver = {
+ .probe = sa1111_probe,
+ .remove = sa1111_remove,
+- .suspend = sa1111_suspend,
+- .resume = sa1111_resume,
+ .driver = {
+ .name = "sa1111",
++ .pm = &sa1111_pm_ops,
+ },
+ };
+
+diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h
+index a83570f..8ec98fc 100644
+--- a/arch/arm/include/asm/dma-mapping.h
++++ b/arch/arm/include/asm/dma-mapping.h
+@@ -112,7 +112,7 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr)
+ /* The ARM override for dma_max_pfn() */
+ static inline unsigned long dma_max_pfn(struct device *dev)
+ {
+- return PHYS_PFN_OFFSET + dma_to_pfn(dev, *dev->dma_mask);
++ return dma_to_pfn(dev, *dev->dma_mask);
+ }
+ #define dma_max_pfn(dev) dma_max_pfn(dev)
+
+diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
+index 2e26016..5204978 100644
+--- a/arch/arm/kernel/devtree.c
++++ b/arch/arm/kernel/devtree.c
+@@ -87,6 +87,8 @@ void __init arm_dt_init_cpu_maps(void)
+ return;
+
+ for_each_child_of_node(cpus, cpu) {
++ const __be32 *cell;
++ int prop_bytes;
+ u32 hwid;
+
+ if (of_node_cmp(cpu->type, "cpu"))
+@@ -98,7 +100,8 @@ void __init arm_dt_init_cpu_maps(void)
+ * properties is considered invalid to build the
+ * cpu_logical_map.
+ */
+- if (of_property_read_u32(cpu, "reg", &hwid)) {
++ cell = of_get_property(cpu, "reg", &prop_bytes);
++ if (!cell || prop_bytes < sizeof(*cell)) {
+ pr_debug(" * %s missing reg property\n",
+ cpu->full_name);
+ of_node_put(cpu);
+@@ -106,10 +109,15 @@ void __init arm_dt_init_cpu_maps(void)
+ }
+
+ /*
+- * 8 MSBs must be set to 0 in the DT since the reg property
++ * Bits n:24 must be set to 0 in the DT since the reg property
+ * defines the MPIDR[23:0].
+ */
+- if (hwid & ~MPIDR_HWID_BITMASK) {
++ do {
++ hwid = be32_to_cpu(*cell++);
++ prop_bytes -= sizeof(*cell);
++ } while (!hwid && prop_bytes > 0);
++
++ if (prop_bytes || (hwid & ~MPIDR_HWID_BITMASK)) {
+ of_node_put(cpu);
+ return;
+ }
+diff --git a/arch/arm/mach-sa1100/clock.c b/arch/arm/mach-sa1100/clock.c
+index cbf53bb..0db4689 100644
+--- a/arch/arm/mach-sa1100/clock.c
++++ b/arch/arm/mach-sa1100/clock.c
+@@ -125,6 +125,8 @@ static unsigned long clk_36864_get_rate(struct clk *clk)
+ }
+
+ static struct clkops clk_36864_ops = {
++ .enable = clk_cpu_enable,
++ .disable = clk_cpu_disable,
+ .get_rate = clk_36864_get_rate,
+ };
+
+@@ -140,9 +142,8 @@ static struct clk_lookup sa11xx_clkregs[] = {
+ CLKDEV_INIT(NULL, "OSTIMER0", &clk_36864),
+ };
+
+-static int __init sa11xx_clk_init(void)
++int __init sa11xx_clk_init(void)
+ {
+ clkdev_add_table(sa11xx_clkregs, ARRAY_SIZE(sa11xx_clkregs));
+ return 0;
+ }
+-core_initcall(sa11xx_clk_init);
+diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
+index 345e63f..3e09bed 100644
+--- a/arch/arm/mach-sa1100/generic.c
++++ b/arch/arm/mach-sa1100/generic.c
+@@ -34,6 +34,7 @@
+
+ #include <mach/hardware.h>
+ #include <mach/irqs.h>
++#include <mach/reset.h>
+
+ #include "generic.h"
+ #include <clocksource/pxa.h>
+@@ -95,6 +96,8 @@ static void sa1100_power_off(void)
+
+ void sa11x0_restart(enum reboot_mode mode, const char *cmd)
+ {
++ clear_reset_status(RESET_STATUS_ALL);
++
+ if (mode == REBOOT_SOFT) {
+ /* Jump into ROM at address 0 */
+ soft_restart(0);
+@@ -388,6 +391,7 @@ void __init sa1100_init_irq(void)
+ sa11x0_init_irq_nodt(IRQ_GPIO0_SC, irq_resource.start);
+
+ sa1100_init_gpio();
++ sa11xx_clk_init();
+ }
+
+ /*
+diff --git a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h
+index 0d92e11..68199b603 100644
+--- a/arch/arm/mach-sa1100/generic.h
++++ b/arch/arm/mach-sa1100/generic.h
+@@ -44,3 +44,5 @@ int sa11x0_pm_init(void);
+ #else
+ static inline int sa11x0_pm_init(void) { return 0; }
+ #endif
++
++int sa11xx_clk_init(void);
+diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+index 62437b5..73e3adb 100644
+--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
++++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+@@ -41,39 +41,26 @@
+
+ #define REGULATOR_IRQ_MASK BIT(2) /* IRQ2, active low */
+
+-static void __iomem *irqc;
+-
+-static const u8 da9063_mask_regs[] = {
+- DA9063_REG_IRQ_MASK_A,
+- DA9063_REG_IRQ_MASK_B,
+- DA9063_REG_IRQ_MASK_C,
+- DA9063_REG_IRQ_MASK_D,
+-};
+-
+-/* DA9210 System Control and Event Registers */
++/* start of DA9210 System Control and Event Registers */
+ #define DA9210_REG_MASK_A 0x54
+-#define DA9210_REG_MASK_B 0x55
+-
+-static const u8 da9210_mask_regs[] = {
+- DA9210_REG_MASK_A,
+- DA9210_REG_MASK_B,
+-};
+-
+-static void da9xxx_mask_irqs(struct i2c_client *client, const u8 regs[],
+- unsigned int nregs)
+-{
+- unsigned int i;
+
+- dev_info(&client->dev, "Masking %s interrupt sources\n", client->name);
++static void __iomem *irqc;
+
+- for (i = 0; i < nregs; i++) {
+- int error = i2c_smbus_write_byte_data(client, regs[i], ~0);
+- if (error) {
+- dev_err(&client->dev, "i2c error %d\n", error);
+- return;
+- }
+- }
+-}
++/* first byte sets the memory pointer, following are consecutive reg values */
++static u8 da9063_irq_clr[] = { DA9063_REG_IRQ_MASK_A, 0xff, 0xff, 0xff, 0xff };
++static u8 da9210_irq_clr[] = { DA9210_REG_MASK_A, 0xff, 0xff };
++
++static struct i2c_msg da9xxx_msgs[2] = {
++ {
++ .addr = 0x58,
++ .len = ARRAY_SIZE(da9063_irq_clr),
++ .buf = da9063_irq_clr,
++ }, {
++ .addr = 0x68,
++ .len = ARRAY_SIZE(da9210_irq_clr),
++ .buf = da9210_irq_clr,
++ },
++};
+
+ static int regulator_quirk_notify(struct notifier_block *nb,
+ unsigned long action, void *data)
+@@ -93,12 +80,15 @@ static int regulator_quirk_notify(struct notifier_block *nb,
+ client = to_i2c_client(dev);
+ dev_dbg(dev, "Detected %s\n", client->name);
+
+- if ((client->addr == 0x58 && !strcmp(client->name, "da9063")))
+- da9xxx_mask_irqs(client, da9063_mask_regs,
+- ARRAY_SIZE(da9063_mask_regs));
+- else if (client->addr == 0x68 && !strcmp(client->name, "da9210"))
+- da9xxx_mask_irqs(client, da9210_mask_regs,
+- ARRAY_SIZE(da9210_mask_regs));
++ if ((client->addr == 0x58 && !strcmp(client->name, "da9063")) ||
++ (client->addr == 0x68 && !strcmp(client->name, "da9210"))) {
++ int ret;
++
++ dev_info(&client->dev, "clearing da9063/da9210 interrupts\n");
++ ret = i2c_transfer(client->adapter, da9xxx_msgs, ARRAY_SIZE(da9xxx_msgs));
++ if (ret != ARRAY_SIZE(da9xxx_msgs))
++ dev_err(&client->dev, "i2c error %d\n", ret);
++ }
+
+ mon = ioread32(irqc + IRQC_MONITOR);
+ if (mon & REGULATOR_IRQ_MASK)
+diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
+index 0800d23..b463607 100644
+--- a/arch/arm64/kernel/debug-monitors.c
++++ b/arch/arm64/kernel/debug-monitors.c
+@@ -417,8 +417,10 @@ int kernel_active_single_step(void)
+ /* ptrace API */
+ void user_enable_single_step(struct task_struct *task)
+ {
+- set_ti_thread_flag(task_thread_info(task), TIF_SINGLESTEP);
+- set_regs_spsr_ss(task_pt_regs(task));
++ struct thread_info *ti = task_thread_info(task);
++
++ if (!test_and_set_ti_thread_flag(ti, TIF_SINGLESTEP))
++ set_regs_spsr_ss(task_pt_regs(task));
+ }
+
+ void user_disable_single_step(struct task_struct *task)
+diff --git a/arch/avr32/mach-at32ap/pio.c b/arch/avr32/mach-at32ap/pio.c
+index 83c2a00..13d3fc4 100644
+--- a/arch/avr32/mach-at32ap/pio.c
++++ b/arch/avr32/mach-at32ap/pio.c
+@@ -435,7 +435,7 @@ void __init at32_init_pio(struct platform_device *pdev)
+ struct resource *regs;
+ struct pio_device *pio;
+
+- if (pdev->id > MAX_NR_PIO_DEVICES) {
++ if (pdev->id >= MAX_NR_PIO_DEVICES) {
+ dev_err(&pdev->dev, "only %d PIO devices supported\n",
+ MAX_NR_PIO_DEVICES);
+ return;
+diff --git a/arch/mips/include/asm/uprobes.h b/arch/mips/include/asm/uprobes.h
+index 34c325c..70a4a2f 100644
+--- a/arch/mips/include/asm/uprobes.h
++++ b/arch/mips/include/asm/uprobes.h
+@@ -36,7 +36,6 @@ struct arch_uprobe {
+ unsigned long resume_epc;
+ u32 insn[2];
+ u32 ixol[2];
+- union mips_instruction orig_inst[MAX_UINSN_BYTES / 4];
+ };
+
+ struct arch_uprobe_task {
+diff --git a/arch/mips/kernel/uprobes.c b/arch/mips/kernel/uprobes.c
+index 8452d93..4e7b89f 100644
+--- a/arch/mips/kernel/uprobes.c
++++ b/arch/mips/kernel/uprobes.c
+@@ -157,7 +157,6 @@ bool is_trap_insn(uprobe_opcode_t *insn)
+ int arch_uprobe_pre_xol(struct arch_uprobe *aup, struct pt_regs *regs)
+ {
+ struct uprobe_task *utask = current->utask;
+- union mips_instruction insn;
+
+ /*
+ * Now find the EPC where to resume after the breakpoint has been
+@@ -168,10 +167,10 @@ int arch_uprobe_pre_xol(struct arch_uprobe *aup, struct pt_regs *regs)
+ unsigned long epc;
+
+ epc = regs->cp0_epc;
+- __compute_return_epc_for_insn(regs, insn);
++ __compute_return_epc_for_insn(regs,
++ (union mips_instruction) aup->insn[0]);
+ aup->resume_epc = regs->cp0_epc;
+ }
+-
+ utask->autask.saved_trap_nr = current->thread.trap_nr;
+ current->thread.trap_nr = UPROBE_TRAP_NR;
+ regs->cp0_epc = current->utask->xol_vaddr;
+@@ -257,7 +256,7 @@ unsigned long arch_uretprobe_hijack_return_addr(
+ ra = regs->regs[31];
+
+ /* Replace the return address with the trampoline address */
+- regs->regs[31] = ra;
++ regs->regs[31] = trampoline_vaddr;
+
+ return ra;
+ }
+@@ -280,24 +279,6 @@ int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm,
+ return uprobe_write_opcode(mm, vaddr, UPROBE_SWBP_INSN);
+ }
+
+-/**
+- * set_orig_insn - Restore the original instruction.
+- * @mm: the probed process address space.
+- * @auprobe: arch specific probepoint information.
+- * @vaddr: the virtual address to insert the opcode.
+- *
+- * For mm @mm, restore the original opcode (opcode) at @vaddr.
+- * Return 0 (success) or a negative errno.
+- *
+- * This overrides the weak version in kernel/events/uprobes.c.
+- */
+-int set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm,
+- unsigned long vaddr)
+-{
+- return uprobe_write_opcode(mm, vaddr,
+- *(uprobe_opcode_t *)&auprobe->orig_inst[0].word);
+-}
+-
+ void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr,
+ void *src, unsigned long len)
+ {
+diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c
+index 33d5ff5..18b37a5 100644
+--- a/arch/mips/mti-malta/malta-setup.c
++++ b/arch/mips/mti-malta/malta-setup.c
+@@ -39,6 +39,9 @@
+ #include <linux/console.h>
+ #endif
+
++#define ROCIT_CONFIG_GEN0 0x1f403000
++#define ROCIT_CONFIG_GEN0_PCI_IOCU BIT(7)
++
+ extern void malta_be_init(void);
+ extern int malta_be_handler(struct pt_regs *regs, int is_fixup);
+
+@@ -107,6 +110,8 @@ static void __init fd_activate(void)
+ static int __init plat_enable_iocoherency(void)
+ {
+ int supported = 0;
++ u32 cfg;
++
+ if (mips_revision_sconid == MIPS_REVISION_SCON_BONITO) {
+ if (BONITO_PCICACHECTRL & BONITO_PCICACHECTRL_CPUCOH_PRES) {
+ BONITO_PCICACHECTRL |= BONITO_PCICACHECTRL_CPUCOH_EN;
+@@ -129,7 +134,8 @@ static int __init plat_enable_iocoherency(void)
+ } else if (mips_cm_numiocu() != 0) {
+ /* Nothing special needs to be done to enable coherency */
+ pr_info("CMP IOCU detected\n");
+- if ((*(unsigned int *)0xbf403000 & 0x81) != 0x81) {
++ cfg = __raw_readl((u32 *)CKSEG1ADDR(ROCIT_CONFIG_GEN0));
++ if (!(cfg & ROCIT_CONFIG_GEN0_PCI_IOCU)) {
+ pr_crit("IOCU OPERATION DISABLED BY SWITCH - DEFAULTING TO SW IO COHERENCY\n");
+ return 0;
+ }
+diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
+index 6ee4b72..e97925f 100644
+--- a/arch/powerpc/kernel/prom_init.c
++++ b/arch/powerpc/kernel/prom_init.c
+@@ -695,7 +695,7 @@ unsigned char ibm_architecture_vec[] = {
+ OV4_MIN_ENT_CAP, /* minimum VP entitled capacity */
+
+ /* option vector 5: PAPR/OF options */
+- VECTOR_LENGTH(18), /* length */
++ VECTOR_LENGTH(21), /* length */
+ 0, /* don't ignore, don't halt */
+ OV5_FEAT(OV5_LPAR) | OV5_FEAT(OV5_SPLPAR) | OV5_FEAT(OV5_LARGE_PAGES) |
+ OV5_FEAT(OV5_DRCONF_MEMORY) | OV5_FEAT(OV5_DONATE_DEDICATE_CPU) |
+@@ -726,8 +726,11 @@ unsigned char ibm_architecture_vec[] = {
+ 0,
+ 0,
+ OV5_FEAT(OV5_PFO_HW_RNG) | OV5_FEAT(OV5_PFO_HW_ENCR) |
+- OV5_FEAT(OV5_PFO_HW_842),
+- OV5_FEAT(OV5_SUB_PROCESSORS),
++ OV5_FEAT(OV5_PFO_HW_842), /* Byte 17 */
++ 0, /* Byte 18 */
++ 0, /* Byte 19 */
++ 0, /* Byte 20 */
++ OV5_FEAT(OV5_SUB_PROCESSORS), /* Byte 21 */
+
+ /* option vector 6: IBM PAPR hints */
+ VECTOR_LENGTH(3), /* length */
+diff --git a/arch/tile/include/asm/elf.h b/arch/tile/include/asm/elf.h
+index c505d77..e9d54a0 100644
+--- a/arch/tile/include/asm/elf.h
++++ b/arch/tile/include/asm/elf.h
+@@ -129,6 +129,7 @@ extern int dump_task_regs(struct task_struct *, elf_gregset_t *);
+ struct linux_binprm;
+ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
+ int executable_stack);
++/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
+ #define ARCH_DLINFO \
+ do { \
+ NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \
+diff --git a/arch/tile/include/uapi/asm/auxvec.h b/arch/tile/include/uapi/asm/auxvec.h
+index c93e927..f497123 100644
+--- a/arch/tile/include/uapi/asm/auxvec.h
++++ b/arch/tile/include/uapi/asm/auxvec.h
+@@ -18,4 +18,6 @@
+ /* The vDSO location. */
+ #define AT_SYSINFO_EHDR 33
+
++#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
++
+ #endif /* _ASM_TILE_AUXVEC_H */
+diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
+index 6fa8594..dee8a70 100644
+--- a/arch/x86/include/asm/tlbflush.h
++++ b/arch/x86/include/asm/tlbflush.h
+@@ -81,7 +81,7 @@ DECLARE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate);
+ /* Initialize cr4 shadow for this CPU. */
+ static inline void cr4_init_shadow(void)
+ {
+- this_cpu_write(cpu_tlbstate.cr4, __read_cr4());
++ this_cpu_write(cpu_tlbstate.cr4, __read_cr4_safe());
+ }
+
+ /* Set in this cpu's CR4. */
+diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
+index 0fe6953..41f3f7d 100644
+--- a/arch/x86/kernel/cpu/common.c
++++ b/arch/x86/kernel/cpu/common.c
+@@ -804,21 +804,20 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
+ identify_cpu_without_cpuid(c);
+
+ /* cyrix could have cpuid enabled via c_identify()*/
+- if (!have_cpuid_p())
+- return;
++ if (have_cpuid_p()) {
++ cpu_detect(c);
++ get_cpu_vendor(c);
++ get_cpu_cap(c);
+
+- cpu_detect(c);
+- get_cpu_vendor(c);
+- get_cpu_cap(c);
+-
+- if (this_cpu->c_early_init)
+- this_cpu->c_early_init(c);
++ if (this_cpu->c_early_init)
++ this_cpu->c_early_init(c);
+
+- c->cpu_index = 0;
+- filter_cpuid_features(c, false);
++ c->cpu_index = 0;
++ filter_cpuid_features(c, false);
+
+- if (this_cpu->c_bsp_init)
+- this_cpu->c_bsp_init(c);
++ if (this_cpu->c_bsp_init)
++ this_cpu->c_bsp_init(c);
++ }
+
+ setup_force_cpu_cap(X86_FEATURE_ALWAYS);
+ fpu__init_system(c);
+diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
+index 8326d68..9ed64d2 100644
+--- a/arch/x86/kvm/vmx.c
++++ b/arch/x86/kvm/vmx.c
+@@ -409,6 +409,7 @@ struct nested_vmx {
+ struct list_head vmcs02_pool;
+ int vmcs02_num;
+ u64 vmcs01_tsc_offset;
++ bool change_vmcs01_virtual_x2apic_mode;
+ /* L2 must run next, and mustn't decide to exit to L1. */
+ bool nested_run_pending;
+ /*
+@@ -8284,6 +8285,12 @@ static void vmx_set_virtual_x2apic_mode(struct kvm_vcpu *vcpu, bool set)
+ {
+ u32 sec_exec_control;
+
++ /* Postpone execution until vmcs01 is the current VMCS. */
++ if (is_guest_mode(vcpu)) {
++ to_vmx(vcpu)->nested.change_vmcs01_virtual_x2apic_mode = true;
++ return;
++ }
++
+ /*
+ * There is not point to enable virtualize x2apic without enable
+ * apicv
+@@ -10601,6 +10608,12 @@ static void nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 exit_reason,
+ /* Update TSC_OFFSET if TSC was changed while L2 ran */
+ vmcs_write64(TSC_OFFSET, vmx->nested.vmcs01_tsc_offset);
+
++ if (vmx->nested.change_vmcs01_virtual_x2apic_mode) {
++ vmx->nested.change_vmcs01_virtual_x2apic_mode = false;
++ vmx_set_virtual_x2apic_mode(vcpu,
++ vcpu->arch.apic_base & X2APIC_ENABLE);
++ }
++
+ /* This is needed for same reason as it was needed in prepare_vmcs02 */
+ vmx->host_rsp = 0;
+
+diff --git a/block/blk-mq.c b/block/blk-mq.c
+index f9b9049..27dafb3 100644
+--- a/block/blk-mq.c
++++ b/block/blk-mq.c
+@@ -784,7 +784,7 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx)
+ switch (ret) {
+ case BLK_MQ_RQ_QUEUE_OK:
+ queued++;
+- continue;
++ break;
+ case BLK_MQ_RQ_QUEUE_BUSY:
+ list_add(&rq->queuelist, &rq_list);
+ __blk_mq_requeue_request(rq);
+diff --git a/drivers/base/regmap/regcache-rbtree.c b/drivers/base/regmap/regcache-rbtree.c
+index aa56af8..b11af3f 100644
+--- a/drivers/base/regmap/regcache-rbtree.c
++++ b/drivers/base/regmap/regcache-rbtree.c
+@@ -404,6 +404,7 @@ static int regcache_rbtree_write(struct regmap *map, unsigned int reg,
+ unsigned int new_base_reg, new_top_reg;
+ unsigned int min, max;
+ unsigned int max_dist;
++ unsigned int dist, best_dist = UINT_MAX;
+
+ max_dist = map->reg_stride * sizeof(*rbnode_tmp) /
+ map->cache_word_size;
+@@ -423,24 +424,41 @@ static int regcache_rbtree_write(struct regmap *map, unsigned int reg,
+ &base_reg, &top_reg);
+
+ if (base_reg <= max && top_reg >= min) {
+- new_base_reg = min(reg, base_reg);
+- new_top_reg = max(reg, top_reg);
+- } else {
+- if (max < base_reg)
+- node = node->rb_left;
++ if (reg < base_reg)
++ dist = base_reg - reg;
++ else if (reg > top_reg)
++ dist = reg - top_reg;
+ else
+- node = node->rb_right;
+-
+- continue;
++ dist = 0;
++ if (dist < best_dist) {
++ rbnode = rbnode_tmp;
++ best_dist = dist;
++ new_base_reg = min(reg, base_reg);
++ new_top_reg = max(reg, top_reg);
++ }
+ }
+
+- ret = regcache_rbtree_insert_to_block(map, rbnode_tmp,
++ /*
++ * Keep looking, we want to choose the closest block,
++ * otherwise we might end up creating overlapping
++ * blocks, which breaks the rbtree.
++ */
++ if (reg < base_reg)
++ node = node->rb_left;
++ else if (reg > top_reg)
++ node = node->rb_right;
++ else
++ break;
++ }
++
++ if (rbnode) {
++ ret = regcache_rbtree_insert_to_block(map, rbnode,
+ new_base_reg,
+ new_top_reg, reg,
+ value);
+ if (ret)
+ return ret;
+- rbtree_ctx->cached_rbnode = rbnode_tmp;
++ rbtree_ctx->cached_rbnode = rbnode;
+ return 0;
+ }
+
+diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c
+index 8a1432e..01d4be2 100644
+--- a/drivers/char/hw_random/omap-rng.c
++++ b/drivers/char/hw_random/omap-rng.c
+@@ -384,7 +384,12 @@ static int omap_rng_probe(struct platform_device *pdev)
+ }
+
+ pm_runtime_enable(&pdev->dev);
+- pm_runtime_get_sync(&pdev->dev);
++ ret = pm_runtime_get_sync(&pdev->dev);
++ if (ret) {
++ dev_err(&pdev->dev, "Failed to runtime_get device: %d\n", ret);
++ pm_runtime_put_noidle(&pdev->dev);
++ goto err_ioremap;
++ }
+
+ ret = (dev->of_node) ? of_get_omap_rng_device_details(priv, pdev) :
+ get_omap_rng_device_details(priv);
+@@ -435,8 +440,15 @@ static int __maybe_unused omap_rng_suspend(struct device *dev)
+ static int __maybe_unused omap_rng_resume(struct device *dev)
+ {
+ struct omap_rng_dev *priv = dev_get_drvdata(dev);
++ int ret;
++
++ ret = pm_runtime_get_sync(dev);
++ if (ret) {
++ dev_err(dev, "Failed to runtime_get device: %d\n", ret);
++ pm_runtime_put_noidle(dev);
++ return ret;
++ }
+
+- pm_runtime_get_sync(dev);
+ priv->pdata->init(priv);
+
+ return 0;
+diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
+index b28e4da..ca2d238 100644
+--- a/drivers/char/tpm/tpm2-cmd.c
++++ b/drivers/char/tpm/tpm2-cmd.c
+@@ -703,7 +703,7 @@ ssize_t tpm2_get_tpm_pt(struct tpm_chip *chip, u32 property_id, u32 *value,
+
+ rc = tpm_transmit_cmd(chip, &cmd, sizeof(cmd), desc);
+ if (!rc)
+- *value = cmd.params.get_tpm_pt_out.value;
++ *value = be32_to_cpu(cmd.params.get_tpm_pt_out.value);
+
+ return rc;
+ }
+diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c
+index e9fd1d8..0f7ec0d 100644
+--- a/drivers/char/tpm/tpm_crb.c
++++ b/drivers/char/tpm/tpm_crb.c
+@@ -77,7 +77,6 @@ enum crb_flags {
+
+ struct crb_priv {
+ unsigned int flags;
+- struct resource res;
+ void __iomem *iobase;
+ struct crb_control_area __iomem *cca;
+ u8 __iomem *cmd;
+@@ -224,19 +223,19 @@ static int crb_init(struct acpi_device *device, struct crb_priv *priv)
+
+ static int crb_check_resource(struct acpi_resource *ares, void *data)
+ {
+- struct crb_priv *priv = data;
++ struct resource *io_res = data;
+ struct resource res;
+
+ if (acpi_dev_resource_memory(ares, &res)) {
+- priv->res = res;
+- priv->res.name = NULL;
++ *io_res = res;
++ io_res->name = NULL;
+ }
+
+ return 1;
+ }
+
+ static void __iomem *crb_map_res(struct device *dev, struct crb_priv *priv,
+- u64 start, u32 size)
++ struct resource *io_res, u64 start, u32 size)
+ {
+ struct resource new_res = {
+ .start = start,
+@@ -248,51 +247,72 @@ static void __iomem *crb_map_res(struct device *dev, struct crb_priv *priv,
+ if (start != new_res.start)
+ return (void __iomem *) ERR_PTR(-EINVAL);
+
+- if (!resource_contains(&priv->res, &new_res))
++ if (!resource_contains(io_res, &new_res))
+ return devm_ioremap_resource(dev, &new_res);
+
+- return priv->iobase + (new_res.start - priv->res.start);
++ return priv->iobase + (new_res.start - io_res->start);
+ }
+
+ static int crb_map_io(struct acpi_device *device, struct crb_priv *priv,
+ struct acpi_table_tpm2 *buf)
+ {
+ struct list_head resources;
++ struct resource io_res;
+ struct device *dev = &device->dev;
+- u64 pa;
++ u64 cmd_pa;
++ u32 cmd_size;
++ u64 rsp_pa;
++ u32 rsp_size;
+ int ret;
+
+ INIT_LIST_HEAD(&resources);
+ ret = acpi_dev_get_resources(device, &resources, crb_check_resource,
+- priv);
++ &io_res);
+ if (ret < 0)
+ return ret;
+ acpi_dev_free_resource_list(&resources);
+
+- if (resource_type(&priv->res) != IORESOURCE_MEM) {
++ if (resource_type(&io_res) != IORESOURCE_MEM) {
+ dev_err(dev,
+ FW_BUG "TPM2 ACPI table does not define a memory resource\n");
+ return -EINVAL;
+ }
+
+- priv->iobase = devm_ioremap_resource(dev, &priv->res);
++ priv->iobase = devm_ioremap_resource(dev, &io_res);
+ if (IS_ERR(priv->iobase))
+ return PTR_ERR(priv->iobase);
+
+- priv->cca = crb_map_res(dev, priv, buf->control_address, 0x1000);
++ priv->cca = crb_map_res(dev, priv, &io_res, buf->control_address,
++ sizeof(struct crb_control_area));
+ if (IS_ERR(priv->cca))
+ return PTR_ERR(priv->cca);
+
+- pa = ((u64) ioread32(&priv->cca->cmd_pa_high) << 32) |
+- (u64) ioread32(&priv->cca->cmd_pa_low);
+- priv->cmd = crb_map_res(dev, priv, pa, ioread32(&priv->cca->cmd_size));
++ cmd_pa = ((u64) ioread32(&priv->cca->cmd_pa_high) << 32) |
++ (u64) ioread32(&priv->cca->cmd_pa_low);
++ cmd_size = ioread32(&priv->cca->cmd_size);
++ priv->cmd = crb_map_res(dev, priv, &io_res, cmd_pa, cmd_size);
+ if (IS_ERR(priv->cmd))
+ return PTR_ERR(priv->cmd);
+
+- memcpy_fromio(&pa, &priv->cca->rsp_pa, 8);
+- pa = le64_to_cpu(pa);
+- priv->rsp = crb_map_res(dev, priv, pa, ioread32(&priv->cca->rsp_size));
+- return PTR_ERR_OR_ZERO(priv->rsp);
++ memcpy_fromio(&rsp_pa, &priv->cca->rsp_pa, 8);
++ rsp_pa = le64_to_cpu(rsp_pa);
++ rsp_size = ioread32(&priv->cca->rsp_size);
++
++ if (cmd_pa != rsp_pa) {
++ priv->rsp = crb_map_res(dev, priv, &io_res, rsp_pa, rsp_size);
++ return PTR_ERR_OR_ZERO(priv->rsp);
++ }
++
++ /* According to the PTP specification, overlapping command and response
++ * buffer sizes must be identical.
++ */
++ if (cmd_size != rsp_size) {
++ dev_err(dev, FW_BUG "overlapping command and response buffer sizes are not identical");
++ return -EINVAL;
++ }
++
++ priv->rsp = priv->cmd;
++ return 0;
+ }
+
+ static int crb_acpi_add(struct acpi_device *device)
+diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
+index 75bd662..de9a3d75 100644
+--- a/drivers/dma/at_xdmac.c
++++ b/drivers/dma/at_xdmac.c
+@@ -1195,8 +1195,8 @@ static struct at_xdmac_desc *at_xdmac_memset_create_desc(struct dma_chan *chan,
+ desc->lld.mbr_cfg = chan_cc;
+
+ dev_dbg(chan2dev(chan),
+- "%s: lld: mbr_da=%pad, mbr_ds=%pad, mbr_ubc=0x%08x, mbr_cfg=0x%08x\n",
+- __func__, &desc->lld.mbr_da, &desc->lld.mbr_ds, desc->lld.mbr_ubc,
++ "%s: lld: mbr_da=%pad, mbr_ds=0x%08x, mbr_ubc=0x%08x, mbr_cfg=0x%08x\n",
++ __func__, &desc->lld.mbr_da, desc->lld.mbr_ds, desc->lld.mbr_ubc,
+ desc->lld.mbr_cfg);
+
+ return desc;
+@@ -2067,7 +2067,7 @@ err_dma_unregister:
+ err_clk_disable:
+ clk_disable_unprepare(atxdmac->clk);
+ err_free_irq:
+- free_irq(atxdmac->irq, atxdmac->dma.dev);
++ free_irq(atxdmac->irq, atxdmac);
+ return ret;
+ }
+
+@@ -2081,7 +2081,7 @@ static int at_xdmac_remove(struct platform_device *pdev)
+ dma_async_device_unregister(&atxdmac->dma);
+ clk_disable_unprepare(atxdmac->clk);
+
+- free_irq(atxdmac->irq, atxdmac->dma.dev);
++ free_irq(atxdmac->irq, atxdmac);
+
+ for (i = 0; i < atxdmac->dma.chancnt; i++) {
+ struct at_xdmac_chan *atchan = &atxdmac->chan[i];
+diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c
+index 6149b27..c8dd5b0 100644
+--- a/drivers/dma/bcm2835-dma.c
++++ b/drivers/dma/bcm2835-dma.c
+@@ -393,11 +393,12 @@ static void bcm2835_dma_fill_cb_chain_with_sg(
+ unsigned int sg_len)
+ {
+ struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
+- size_t max_len = bcm2835_dma_max_frame_length(c);
+- unsigned int i, len;
++ size_t len, max_len;
++ unsigned int i;
+ dma_addr_t addr;
+ struct scatterlist *sgent;
+
++ max_len = bcm2835_dma_max_frame_length(c);
+ for_each_sg(sgl, sgent, sg_len, i) {
+ for (addr = sg_dma_address(sgent), len = sg_dma_len(sgent);
+ len > 0;
+diff --git a/drivers/gpio/gpio-sa1100.c b/drivers/gpio/gpio-sa1100.c
+index 0c99e8f..8d8ee0e 100644
+--- a/drivers/gpio/gpio-sa1100.c
++++ b/drivers/gpio/gpio-sa1100.c
+@@ -155,7 +155,7 @@ static int sa1100_gpio_irqdomain_map(struct irq_domain *d,
+ {
+ irq_set_chip_and_handler(irq, &sa1100_gpio_irq_chip,
+ handle_edge_irq);
+- irq_set_noprobe(irq);
++ irq_set_probe(irq);
+
+ return 0;
+ }
+diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c
+index edec30f..0a7b6ed 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c
++++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c
+@@ -37,7 +37,10 @@ nv04_fifo_dma_object_dtor(struct nvkm_fifo_chan *base, int cookie)
+ {
+ struct nv04_fifo_chan *chan = nv04_fifo_chan(base);
+ struct nvkm_instmem *imem = chan->fifo->base.engine.subdev.device->imem;
++
++ mutex_lock(&chan->fifo->base.engine.subdev.mutex);
+ nvkm_ramht_remove(imem->ramht, cookie);
++ mutex_unlock(&chan->fifo->base.engine.subdev.mutex);
+ }
+
+ static int
+diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
+index e6abc09..1f78ec2 100644
+--- a/drivers/gpu/drm/radeon/si_dpm.c
++++ b/drivers/gpu/drm/radeon/si_dpm.c
+@@ -3015,6 +3015,12 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,
+ if (rdev->pdev->device == 0x6811 &&
+ rdev->pdev->revision == 0x81)
+ max_mclk = 120000;
++ /* limit sclk/mclk on Jet parts for stability */
++ if (rdev->pdev->device == 0x6665 &&
++ rdev->pdev->revision == 0xc3) {
++ max_sclk = 75000;
++ max_mclk = 80000;
++ }
+
+ if (rps->vce_active) {
+ rps->evclk = rdev->pm.dpm.vce_states[rdev->pm.dpm.vce_level].evclk;
+diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
+index d5df555..cc2daba 100644
+--- a/drivers/gpu/drm/udl/udl_fb.c
++++ b/drivers/gpu/drm/udl/udl_fb.c
+@@ -122,7 +122,7 @@ int udl_handle_damage(struct udl_framebuffer *fb, int x, int y,
+ return 0;
+ cmd = urb->transfer_buffer;
+
+- for (i = y; i < height ; i++) {
++ for (i = y; i < y + height ; i++) {
+ const int line_offset = fb->base.pitches[0] * i;
+ const int byte_offset = line_offset + (x * bpp);
+ const int dev_byte_offset = (fb->base.width * bpp * i) + (x * bpp);
+diff --git a/drivers/hwmon/adt7411.c b/drivers/hwmon/adt7411.c
+index 827c037..a7f8869 100644
+--- a/drivers/hwmon/adt7411.c
++++ b/drivers/hwmon/adt7411.c
+@@ -30,6 +30,7 @@
+
+ #define ADT7411_REG_CFG1 0x18
+ #define ADT7411_CFG1_START_MONITOR (1 << 0)
++#define ADT7411_CFG1_RESERVED_BIT3 (1 << 3)
+
+ #define ADT7411_REG_CFG2 0x19
+ #define ADT7411_CFG2_DISABLE_AVG (1 << 5)
+@@ -296,8 +297,10 @@ static int adt7411_probe(struct i2c_client *client,
+ mutex_init(&data->device_lock);
+ mutex_init(&data->update_lock);
+
++ /* According to the datasheet, we must only write 1 to bit 3 */
+ ret = adt7411_modify_bit(client, ADT7411_REG_CFG1,
+- ADT7411_CFG1_START_MONITOR, 1);
++ ADT7411_CFG1_RESERVED_BIT3
++ | ADT7411_CFG1_START_MONITOR, 1);
+ if (ret < 0)
+ return ret;
+
+diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c b/drivers/i2c/muxes/i2c-demux-pinctrl.c
+index 215ac87..e999125 100644
+--- a/drivers/i2c/muxes/i2c-demux-pinctrl.c
++++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c
+@@ -37,8 +37,6 @@ struct i2c_demux_pinctrl_priv {
+ struct i2c_demux_pinctrl_chan chan[];
+ };
+
+-static struct property status_okay = { .name = "status", .length = 3, .value = "ok" };
+-
+ static int i2c_demux_master_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
+ {
+ struct i2c_demux_pinctrl_priv *priv = adap->algo_data;
+@@ -192,6 +190,7 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev)
+ {
+ struct device_node *np = pdev->dev.of_node;
+ struct i2c_demux_pinctrl_priv *priv;
++ struct property *props;
+ int num_chan, i, j, err;
+
+ num_chan = of_count_phandle_with_args(np, "i2c-parent", NULL);
+@@ -202,7 +201,10 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev)
+
+ priv = devm_kzalloc(&pdev->dev, sizeof(*priv)
+ + num_chan * sizeof(struct i2c_demux_pinctrl_chan), GFP_KERNEL);
+- if (!priv)
++
++ props = devm_kcalloc(&pdev->dev, num_chan, sizeof(*props), GFP_KERNEL);
++
++ if (!priv || !props)
+ return -ENOMEM;
+
+ err = of_property_read_string(np, "i2c-bus-name", &priv->bus_name);
+@@ -220,8 +222,12 @@ static int i2c_demux_pinctrl_probe(struct platform_device *pdev)
+ }
+ priv->chan[i].parent_np = adap_np;
+
++ props[i].name = devm_kstrdup(&pdev->dev, "status", GFP_KERNEL);
++ props[i].value = devm_kstrdup(&pdev->dev, "ok", GFP_KERNEL);
++ props[i].length = 3;
++
+ of_changeset_init(&priv->chan[i].chgset);
+- of_changeset_update_property(&priv->chan[i].chgset, adap_np, &status_okay);
++ of_changeset_update_property(&priv->chan[i].chgset, adap_np, &props[i]);
+ }
+
+ priv->num_chan = num_chan;
+diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
+index ad1b1ad..8b5abc4 100644
+--- a/drivers/infiniband/core/cma.c
++++ b/drivers/infiniband/core/cma.c
+@@ -2452,18 +2452,24 @@ static int cma_resolve_iboe_route(struct rdma_id_private *id_priv)
+
+ if (addr->dev_addr.bound_dev_if) {
+ ndev = dev_get_by_index(&init_net, addr->dev_addr.bound_dev_if);
+- if (!ndev)
+- return -ENODEV;
++ if (!ndev) {
++ ret = -ENODEV;
++ goto err2;
++ }
+
+ if (ndev->flags & IFF_LOOPBACK) {
+ dev_put(ndev);
+- if (!id_priv->id.device->get_netdev)
+- return -EOPNOTSUPP;
++ if (!id_priv->id.device->get_netdev) {
++ ret = -EOPNOTSUPP;
++ goto err2;
++ }
+
+ ndev = id_priv->id.device->get_netdev(id_priv->id.device,
+ id_priv->id.port_num);
+- if (!ndev)
+- return -ENODEV;
++ if (!ndev) {
++ ret = -ENODEV;
++ goto err2;
++ }
+ }
+
+ route->path_rec->net = &init_net;
+diff --git a/drivers/infiniband/core/multicast.c b/drivers/infiniband/core/multicast.c
+index a83ec28..365cb53 100644
+--- a/drivers/infiniband/core/multicast.c
++++ b/drivers/infiniband/core/multicast.c
+@@ -118,7 +118,6 @@ struct mcast_group {
+ atomic_t refcount;
+ enum mcast_group_state state;
+ struct ib_sa_query *query;
+- int query_id;
+ u16 pkey_index;
+ u8 leave_state;
+ int retries;
+@@ -352,11 +351,7 @@ static int send_join(struct mcast_group *group, struct mcast_member *member)
+ member->multicast.comp_mask,
+ 3000, GFP_KERNEL, join_handler, group,
+ &group->query);
+- if (ret >= 0) {
+- group->query_id = ret;
+- ret = 0;
+- }
+- return ret;
++ return (ret > 0) ? 0 : ret;
+ }
+
+ static int send_leave(struct mcast_group *group, u8 leave_state)
+@@ -376,11 +371,7 @@ static int send_leave(struct mcast_group *group, u8 leave_state)
+ IB_SA_MCMEMBER_REC_JOIN_STATE,
+ 3000, GFP_KERNEL, leave_handler,
+ group, &group->query);
+- if (ret >= 0) {
+- group->query_id = ret;
+- ret = 0;
+- }
+- return ret;
++ return (ret > 0) ? 0 : ret;
+ }
+
+ static void join_group(struct mcast_group *group, struct mcast_member *member,
+diff --git a/drivers/infiniband/hw/i40iw/i40iw.h b/drivers/infiniband/hw/i40iw/i40iw.h
+index b738acd..8ec09e4 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw.h
++++ b/drivers/infiniband/hw/i40iw/i40iw.h
+@@ -232,7 +232,7 @@ struct i40iw_device {
+ struct i40e_client *client;
+ struct i40iw_hw hw;
+ struct i40iw_cm_core cm_core;
+- unsigned long *mem_resources;
++ u8 *mem_resources;
+ unsigned long *allocated_qps;
+ unsigned long *allocated_cqs;
+ unsigned long *allocated_mrs;
+@@ -435,8 +435,8 @@ static inline int i40iw_alloc_resource(struct i40iw_device *iwdev,
+ *next = resource_num + 1;
+ if (*next == max_resources)
+ *next = 0;
+- spin_unlock_irqrestore(&iwdev->resource_lock, flags);
+ *req_resource_num = resource_num;
++ spin_unlock_irqrestore(&iwdev->resource_lock, flags);
+
+ return 0;
+ }
+diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c b/drivers/infiniband/hw/i40iw/i40iw_cm.c
+index d2fa725..406a345 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw_cm.c
++++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c
+@@ -535,8 +535,8 @@ static struct i40iw_puda_buf *i40iw_form_cm_frame(struct i40iw_cm_node *cm_node,
+ buf += hdr_len;
+ }
+
+- if (pd_len)
+- memcpy(buf, pdata->addr, pd_len);
++ if (pdata && pdata->addr)
++ memcpy(buf, pdata->addr, pdata->size);
+
+ atomic_set(&sqbuf->refcount, 1);
+
+@@ -3347,26 +3347,6 @@ int i40iw_cm_disconn(struct i40iw_qp *iwqp)
+ }
+
+ /**
+- * i40iw_loopback_nop - Send a nop
+- * @qp: associated hw qp
+- */
+-static void i40iw_loopback_nop(struct i40iw_sc_qp *qp)
+-{
+- u64 *wqe;
+- u64 header;
+-
+- wqe = qp->qp_uk.sq_base->elem;
+- set_64bit_val(wqe, 0, 0);
+- set_64bit_val(wqe, 8, 0);
+- set_64bit_val(wqe, 16, 0);
+-
+- header = LS_64(I40IWQP_OP_NOP, I40IWQPSQ_OPCODE) |
+- LS_64(0, I40IWQPSQ_SIGCOMPL) |
+- LS_64(qp->qp_uk.swqe_polarity, I40IWQPSQ_VALID);
+- set_64bit_val(wqe, 24, header);
+-}
+-
+-/**
+ * i40iw_qp_disconnect - free qp and close cm
+ * @iwqp: associate qp for the connection
+ */
+@@ -3638,7 +3618,7 @@ int i40iw_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+ } else {
+ if (iwqp->page)
+ iwqp->sc_qp.qp_uk.sq_base = kmap(iwqp->page);
+- i40iw_loopback_nop(&iwqp->sc_qp);
++ dev->iw_priv_qp_ops->qp_send_lsmm(&iwqp->sc_qp, NULL, 0, 0);
+ }
+
+ if (iwqp->page)
+diff --git a/drivers/infiniband/hw/i40iw/i40iw_hw.c b/drivers/infiniband/hw/i40iw/i40iw_hw.c
+index 3ee0cad..0c92a40 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw_hw.c
++++ b/drivers/infiniband/hw/i40iw/i40iw_hw.c
+@@ -265,6 +265,7 @@ void i40iw_next_iw_state(struct i40iw_qp *iwqp,
+ info.dont_send_fin = false;
+ if (iwqp->sc_qp.term_flags && (state == I40IW_QP_STATE_ERROR))
+ info.reset_tcp_conn = true;
++ iwqp->hw_iwarp_state = state;
+ i40iw_hw_modify_qp(iwqp->iwdev, iwqp, &info, 0);
+ }
+
+diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c
+index 6e90813..445e230 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw_main.c
++++ b/drivers/infiniband/hw/i40iw/i40iw_main.c
+@@ -100,7 +100,7 @@ static struct notifier_block i40iw_net_notifier = {
+ .notifier_call = i40iw_net_event
+ };
+
+-static int i40iw_notifiers_registered;
++static atomic_t i40iw_notifiers_registered;
+
+ /**
+ * i40iw_find_i40e_handler - find a handler given a client info
+@@ -1342,12 +1342,11 @@ exit:
+ */
+ static void i40iw_register_notifiers(void)
+ {
+- if (!i40iw_notifiers_registered) {
++ if (atomic_inc_return(&i40iw_notifiers_registered) == 1) {
+ register_inetaddr_notifier(&i40iw_inetaddr_notifier);
+ register_inet6addr_notifier(&i40iw_inetaddr6_notifier);
+ register_netevent_notifier(&i40iw_net_notifier);
+ }
+- i40iw_notifiers_registered++;
+ }
+
+ /**
+@@ -1429,8 +1428,7 @@ static void i40iw_deinit_device(struct i40iw_device *iwdev, bool reset, bool del
+ i40iw_del_macip_entry(iwdev, (u8)iwdev->mac_ip_table_idx);
+ /* fallthrough */
+ case INET_NOTIFIER:
+- if (i40iw_notifiers_registered > 0) {
+- i40iw_notifiers_registered--;
++ if (!atomic_dec_return(&i40iw_notifiers_registered)) {
+ unregister_netevent_notifier(&i40iw_net_notifier);
+ unregister_inetaddr_notifier(&i40iw_inetaddr_notifier);
+ unregister_inet6addr_notifier(&i40iw_inetaddr6_notifier);
+@@ -1558,6 +1556,10 @@ static int i40iw_open(struct i40e_info *ldev, struct i40e_client *client)
+ enum i40iw_status_code status;
+ struct i40iw_handler *hdl;
+
++ hdl = i40iw_find_netdev(ldev->netdev);
++ if (hdl)
++ return 0;
++
+ hdl = kzalloc(sizeof(*hdl), GFP_KERNEL);
+ if (!hdl)
+ return -ENOMEM;
+diff --git a/drivers/infiniband/hw/i40iw/i40iw_utils.c b/drivers/infiniband/hw/i40iw/i40iw_utils.c
+index 0e8db0a..6fd043b 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw_utils.c
++++ b/drivers/infiniband/hw/i40iw/i40iw_utils.c
+@@ -673,8 +673,11 @@ enum i40iw_status_code i40iw_free_virt_mem(struct i40iw_hw *hw,
+ {
+ if (!mem)
+ return I40IW_ERR_PARAM;
++ /*
++ * mem->va points to the parent of mem, so both mem and mem->va
++ * can not be touched once mem->va is freed
++ */
+ kfree(mem->va);
+- mem->va = NULL;
+ return 0;
+ }
+
+diff --git a/drivers/infiniband/hw/i40iw/i40iw_verbs.c b/drivers/infiniband/hw/i40iw/i40iw_verbs.c
+index 283b64c..f24bfbd 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw_verbs.c
++++ b/drivers/infiniband/hw/i40iw/i40iw_verbs.c
+@@ -794,7 +794,6 @@ static struct ib_qp *i40iw_create_qp(struct ib_pd *ibpd,
+ return &iwqp->ibqp;
+ error:
+ i40iw_free_qp_resources(iwdev, iwqp, qp_num);
+- kfree(mem);
+ return ERR_PTR(err_code);
+ }
+
+@@ -1925,8 +1924,7 @@ static int i40iw_dereg_mr(struct ib_mr *ib_mr)
+ }
+ if (iwpbl->pbl_allocated)
+ i40iw_free_pble(iwdev->pble_rsrc, palloc);
+- kfree(iwpbl->iwmr);
+- iwpbl->iwmr = NULL;
++ kfree(iwmr);
+ return 0;
+ }
+
+diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
+index 9c2e53d..0f21c3a 100644
+--- a/drivers/infiniband/hw/mlx4/mad.c
++++ b/drivers/infiniband/hw/mlx4/mad.c
+@@ -1128,6 +1128,27 @@ void handle_port_mgmt_change_event(struct work_struct *work)
+
+ /* Generate GUID changed event */
+ if (changed_attr & MLX4_EQ_PORT_INFO_GID_PFX_CHANGE_MASK) {
++ if (mlx4_is_master(dev->dev)) {
++ union ib_gid gid;
++ int err = 0;
++
++ if (!eqe->event.port_mgmt_change.params.port_info.gid_prefix)
++ err = __mlx4_ib_query_gid(&dev->ib_dev, port, 0, &gid, 1);
++ else
++ gid.global.subnet_prefix =
++ eqe->event.port_mgmt_change.params.port_info.gid_prefix;
++ if (err) {
++ pr_warn("Could not change QP1 subnet prefix for port %d: query_gid error (%d)\n",
++ port, err);
++ } else {
++ pr_debug("Changing QP1 subnet prefix for port %d. old=0x%llx. new=0x%llx\n",
++ port,
++ (u64)atomic64_read(&dev->sriov.demux[port - 1].subnet_prefix),
++ be64_to_cpu(gid.global.subnet_prefix));
++ atomic64_set(&dev->sriov.demux[port - 1].subnet_prefix,
++ be64_to_cpu(gid.global.subnet_prefix));
++ }
++ }
+ mlx4_ib_dispatch_event(dev, port, IB_EVENT_GID_CHANGE);
+ /*if master, notify all slaves*/
+ if (mlx4_is_master(dev->dev))
+@@ -2202,6 +2223,8 @@ int mlx4_ib_init_sriov(struct mlx4_ib_dev *dev)
+ if (err)
+ goto demux_err;
+ dev->sriov.demux[i].guid_cache[0] = gid.global.interface_id;
++ atomic64_set(&dev->sriov.demux[i].subnet_prefix,
++ be64_to_cpu(gid.global.subnet_prefix));
+ err = alloc_pv_object(dev, mlx4_master_func_num(dev->dev), i + 1,
+ &dev->sriov.sqps[i]);
+ if (err)
+diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
+index 8f7ad07..097bfcc 100644
+--- a/drivers/infiniband/hw/mlx4/mcg.c
++++ b/drivers/infiniband/hw/mlx4/mcg.c
+@@ -489,7 +489,7 @@ static u8 get_leave_state(struct mcast_group *group)
+ if (!group->members[i])
+ leave_state |= (1 << i);
+
+- return leave_state & (group->rec.scope_join_state & 7);
++ return leave_state & (group->rec.scope_join_state & 0xf);
+ }
+
+ static int join_group(struct mcast_group *group, int slave, u8 join_mask)
+@@ -564,8 +564,8 @@ static void mlx4_ib_mcg_timeout_handler(struct work_struct *work)
+ } else
+ mcg_warn_group(group, "DRIVER BUG\n");
+ } else if (group->state == MCAST_LEAVE_SENT) {
+- if (group->rec.scope_join_state & 7)
+- group->rec.scope_join_state &= 0xf8;
++ if (group->rec.scope_join_state & 0xf)
++ group->rec.scope_join_state &= 0xf0;
+ group->state = MCAST_IDLE;
+ mutex_unlock(&group->lock);
+ if (release_group(group, 1))
+@@ -605,7 +605,7 @@ static int handle_leave_req(struct mcast_group *group, u8 leave_mask,
+ static int handle_join_req(struct mcast_group *group, u8 join_mask,
+ struct mcast_req *req)
+ {
+- u8 group_join_state = group->rec.scope_join_state & 7;
++ u8 group_join_state = group->rec.scope_join_state & 0xf;
+ int ref = 0;
+ u16 status;
+ struct ib_sa_mcmember_data *sa_data = (struct ib_sa_mcmember_data *)req->sa_mad.data;
+@@ -690,8 +690,8 @@ static void mlx4_ib_mcg_work_handler(struct work_struct *work)
+ u8 cur_join_state;
+
+ resp_join_state = ((struct ib_sa_mcmember_data *)
+- group->response_sa_mad.data)->scope_join_state & 7;
+- cur_join_state = group->rec.scope_join_state & 7;
++ group->response_sa_mad.data)->scope_join_state & 0xf;
++ cur_join_state = group->rec.scope_join_state & 0xf;
+
+ if (method == IB_MGMT_METHOD_GET_RESP) {
+ /* successfull join */
+@@ -710,7 +710,7 @@ process_requests:
+ req = list_first_entry(&group->pending_list, struct mcast_req,
+ group_list);
+ sa_data = (struct ib_sa_mcmember_data *)req->sa_mad.data;
+- req_join_state = sa_data->scope_join_state & 0x7;
++ req_join_state = sa_data->scope_join_state & 0xf;
+
+ /* For a leave request, we will immediately answer the VF, and
+ * update our internal counters. The actual leave will be sent
+diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
+index 29acda2..d4ca381 100644
+--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
++++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
+@@ -448,7 +448,7 @@ struct mlx4_ib_demux_ctx {
+ struct workqueue_struct *wq;
+ struct workqueue_struct *ud_wq;
+ spinlock_t ud_lock;
+- __be64 subnet_prefix;
++ atomic64_t subnet_prefix;
+ __be64 guid_cache[128];
+ struct mlx4_ib_dev *dev;
+ /* the following lock protects both mcg_table and mcg_mgid0_list */
+diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
+index 8db8405..d995222 100644
+--- a/drivers/infiniband/hw/mlx4/qp.c
++++ b/drivers/infiniband/hw/mlx4/qp.c
+@@ -2492,24 +2492,27 @@ static int build_mlx_header(struct mlx4_ib_sqp *sqp, struct ib_ud_wr *wr,
+ sqp->ud_header.grh.flow_label =
+ ah->av.ib.sl_tclass_flowlabel & cpu_to_be32(0xfffff);
+ sqp->ud_header.grh.hop_limit = ah->av.ib.hop_limit;
+- if (is_eth)
++ if (is_eth) {
+ memcpy(sqp->ud_header.grh.source_gid.raw, sgid.raw, 16);
+- else {
+- if (mlx4_is_mfunc(to_mdev(ib_dev)->dev)) {
+- /* When multi-function is enabled, the ib_core gid
+- * indexes don't necessarily match the hw ones, so
+- * we must use our own cache */
+- sqp->ud_header.grh.source_gid.global.subnet_prefix =
+- to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1].
+- subnet_prefix;
+- sqp->ud_header.grh.source_gid.global.interface_id =
+- to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1].
+- guid_cache[ah->av.ib.gid_index];
+- } else
+- ib_get_cached_gid(ib_dev,
+- be32_to_cpu(ah->av.ib.port_pd) >> 24,
+- ah->av.ib.gid_index,
+- &sqp->ud_header.grh.source_gid, NULL);
++ } else {
++ if (mlx4_is_mfunc(to_mdev(ib_dev)->dev)) {
++ /* When multi-function is enabled, the ib_core gid
++ * indexes don't necessarily match the hw ones, so
++ * we must use our own cache
++ */
++ sqp->ud_header.grh.source_gid.global.subnet_prefix =
++ cpu_to_be64(atomic64_read(&(to_mdev(ib_dev)->sriov.
++ demux[sqp->qp.port - 1].
++ subnet_prefix)));
++ sqp->ud_header.grh.source_gid.global.interface_id =
++ to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1].
++ guid_cache[ah->av.ib.gid_index];
++ } else {
++ ib_get_cached_gid(ib_dev,
++ be32_to_cpu(ah->av.ib.port_pd) >> 24,
++ ah->av.ib.gid_index,
++ &sqp->ud_header.grh.source_gid, NULL);
++ }
+ }
+ memcpy(sqp->ud_header.grh.destination_gid.raw,
+ ah->av.ib.dgid, 16);
+diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
+index b48ad85..c90f575 100644
+--- a/drivers/infiniband/hw/mlx5/main.c
++++ b/drivers/infiniband/hw/mlx5/main.c
+@@ -287,7 +287,9 @@ __be16 mlx5_get_roce_udp_sport(struct mlx5_ib_dev *dev, u8 port_num,
+
+ static int mlx5_use_mad_ifc(struct mlx5_ib_dev *dev)
+ {
+- return !MLX5_CAP_GEN(dev->mdev, ib_virt);
++ if (MLX5_CAP_GEN(dev->mdev, port_type) == MLX5_CAP_PORT_TYPE_IB)
++ return !MLX5_CAP_GEN(dev->mdev, ib_virt);
++ return 0;
+ }
+
+ enum {
+@@ -1275,6 +1277,13 @@ static int parse_flow_attr(u32 *match_c, u32 *match_v,
+ dmac_47_16),
+ ib_spec->eth.val.dst_mac);
+
++ ether_addr_copy(MLX5_ADDR_OF(fte_match_set_lyr_2_4, outer_headers_c,
++ smac_47_16),
++ ib_spec->eth.mask.src_mac);
++ ether_addr_copy(MLX5_ADDR_OF(fte_match_set_lyr_2_4, outer_headers_v,
++ smac_47_16),
++ ib_spec->eth.val.src_mac);
++
+ if (ib_spec->eth.mask.vlan_tag) {
+ MLX5_SET(fte_match_set_lyr_2_4, outer_headers_c,
+ vlan_tag, 1);
+diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
+index 4f7d9b4..9dbfcc0 100644
+--- a/drivers/infiniband/ulp/ipoib/ipoib.h
++++ b/drivers/infiniband/ulp/ipoib/ipoib.h
+@@ -478,6 +478,7 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
+ struct ipoib_ah *address, u32 qpn);
+ void ipoib_reap_ah(struct work_struct *work);
+
++struct ipoib_path *__path_find(struct net_device *dev, void *gid);
+ void ipoib_mark_paths_invalid(struct net_device *dev);
+ void ipoib_flush_paths(struct net_device *dev);
+ int ipoib_check_sm_sendonly_fullmember_support(struct ipoib_dev_priv *priv);
+diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+index 951d9ab..4ad297d 100644
+--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
++++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+@@ -1318,6 +1318,8 @@ void ipoib_cm_destroy_tx(struct ipoib_cm_tx *tx)
+ }
+ }
+
++#define QPN_AND_OPTIONS_OFFSET 4
++
+ static void ipoib_cm_tx_start(struct work_struct *work)
+ {
+ struct ipoib_dev_priv *priv = container_of(work, struct ipoib_dev_priv,
+@@ -1326,6 +1328,7 @@ static void ipoib_cm_tx_start(struct work_struct *work)
+ struct ipoib_neigh *neigh;
+ struct ipoib_cm_tx *p;
+ unsigned long flags;
++ struct ipoib_path *path;
+ int ret;
+
+ struct ib_sa_path_rec pathrec;
+@@ -1338,7 +1341,19 @@ static void ipoib_cm_tx_start(struct work_struct *work)
+ p = list_entry(priv->cm.start_list.next, typeof(*p), list);
+ list_del_init(&p->list);
+ neigh = p->neigh;
++
+ qpn = IPOIB_QPN(neigh->daddr);
++ /*
++ * As long as the search is with these 2 locks,
++ * path existence indicates its validity.
++ */
++ path = __path_find(dev, neigh->daddr + QPN_AND_OPTIONS_OFFSET);
++ if (!path) {
++ pr_info("%s ignore not valid path %pI6\n",
++ __func__,
++ neigh->daddr + QPN_AND_OPTIONS_OFFSET);
++ goto free_neigh;
++ }
+ memcpy(&pathrec, &p->path->pathrec, sizeof pathrec);
+
+ spin_unlock_irqrestore(&priv->lock, flags);
+@@ -1350,6 +1365,7 @@ static void ipoib_cm_tx_start(struct work_struct *work)
+ spin_lock_irqsave(&priv->lock, flags);
+
+ if (ret) {
++free_neigh:
+ neigh = p->neigh;
+ if (neigh) {
+ neigh->cm = NULL;
+diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+index dc6d241..be11d5d 100644
+--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
++++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+@@ -1161,8 +1161,17 @@ static void __ipoib_ib_dev_flush(struct ipoib_dev_priv *priv,
+ }
+
+ if (level == IPOIB_FLUSH_LIGHT) {
++ int oper_up;
+ ipoib_mark_paths_invalid(dev);
++ /* Set IPoIB operation as down to prevent races between:
++ * the flush flow which leaves MCG and on the fly joins
++ * which can happen during that time. mcast restart task
++ * should deal with join requests we missed.
++ */
++ oper_up = test_and_clear_bit(IPOIB_FLAG_OPER_UP, &priv->flags);
+ ipoib_mcast_dev_flush(dev);
++ if (oper_up)
++ set_bit(IPOIB_FLAG_OPER_UP, &priv->flags);
+ ipoib_flush_ah(dev);
+ }
+
+diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
+index 5f58c41..ddebda5 100644
+--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
++++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
+@@ -485,7 +485,7 @@ int ipoib_set_mode(struct net_device *dev, const char *buf)
+ return -EINVAL;
+ }
+
+-static struct ipoib_path *__path_find(struct net_device *dev, void *gid)
++struct ipoib_path *__path_find(struct net_device *dev, void *gid)
+ {
+ struct ipoib_dev_priv *priv = netdev_priv(dev);
+ struct rb_node *n = priv->path_tree.rb_node;
+diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
+index 2c5ba0e..53891c3 100644
+--- a/drivers/irqchip/irq-gic-v3.c
++++ b/drivers/irqchip/irq-gic-v3.c
+@@ -558,7 +558,7 @@ static struct notifier_block gic_cpu_notifier = {
+ static u16 gic_compute_target_list(int *base_cpu, const struct cpumask *mask,
+ unsigned long cluster_id)
+ {
+- int cpu = *base_cpu;
++ int next_cpu, cpu = *base_cpu;
+ unsigned long mpidr = cpu_logical_map(cpu);
+ u16 tlist = 0;
+
+@@ -572,9 +572,10 @@ static u16 gic_compute_target_list(int *base_cpu, const struct cpumask *mask,
+
+ tlist |= 1 << (mpidr & 0xf);
+
+- cpu = cpumask_next(cpu, mask);
+- if (cpu >= nr_cpu_ids)
++ next_cpu = cpumask_next(cpu, mask);
++ if (next_cpu >= nr_cpu_ids)
+ goto out;
++ cpu = next_cpu;
+
+ mpidr = cpu_logical_map(cpu);
+
+diff --git a/drivers/mailbox/mailbox-test.c b/drivers/mailbox/mailbox-test.c
+index 58d0472..9ca96e9 100644
+--- a/drivers/mailbox/mailbox-test.c
++++ b/drivers/mailbox/mailbox-test.c
+@@ -133,6 +133,7 @@ static ssize_t mbox_test_message_write(struct file *filp,
+ out:
+ kfree(tdev->signal);
+ kfree(tdev->message);
++ tdev->signal = NULL;
+
+ return ret < 0 ? ret : count;
+ }
+diff --git a/drivers/md/dm-log-writes.c b/drivers/md/dm-log-writes.c
+index d8f8cc8..dd23075 100644
+--- a/drivers/md/dm-log-writes.c
++++ b/drivers/md/dm-log-writes.c
+@@ -259,7 +259,7 @@ static int log_one_block(struct log_writes_c *lc,
+ sector++;
+
+ atomic_inc(&lc->io_blocks);
+- bio = bio_alloc(GFP_KERNEL, block->vec_cnt);
++ bio = bio_alloc(GFP_KERNEL, min(block->vec_cnt, BIO_MAX_PAGES));
+ if (!bio) {
+ DMERR("Couldn't alloc log bio");
+ goto error;
+@@ -280,7 +280,7 @@ static int log_one_block(struct log_writes_c *lc,
+ if (ret != block->vecs[i].bv_len) {
+ atomic_inc(&lc->io_blocks);
+ submit_bio(WRITE, bio);
+- bio = bio_alloc(GFP_KERNEL, block->vec_cnt - i);
++ bio = bio_alloc(GFP_KERNEL, min(block->vec_cnt - i, BIO_MAX_PAGES));
+ if (!bio) {
+ DMERR("Couldn't alloc log bio");
+ goto error;
+diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c b/drivers/media/platform/vsp1/vsp1_pipe.c
+index 4f3b4a1..3c8f40b 100644
+--- a/drivers/media/platform/vsp1/vsp1_pipe.c
++++ b/drivers/media/platform/vsp1/vsp1_pipe.c
+@@ -172,13 +172,17 @@ void vsp1_pipeline_reset(struct vsp1_pipeline *pipe)
+ bru->inputs[i].rpf = NULL;
+ }
+
+- for (i = 0; i < pipe->num_inputs; ++i) {
+- pipe->inputs[i]->pipe = NULL;
+- pipe->inputs[i] = NULL;
++ for (i = 0; i < ARRAY_SIZE(pipe->inputs); ++i) {
++ if (pipe->inputs[i]) {
++ pipe->inputs[i]->pipe = NULL;
++ pipe->inputs[i] = NULL;
++ }
+ }
+
+- pipe->output->pipe = NULL;
+- pipe->output = NULL;
++ if (pipe->output) {
++ pipe->output->pipe = NULL;
++ pipe->output = NULL;
++ }
+
+ INIT_LIST_HEAD(&pipe->entities);
+ pipe->state = VSP1_PIPELINE_STOPPED;
+diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c
+index a19b5c8..1a9e1e5 100644
+--- a/drivers/media/usb/em28xx/em28xx-i2c.c
++++ b/drivers/media/usb/em28xx/em28xx-i2c.c
+@@ -507,9 +507,8 @@ static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap,
+ if (dev->disconnected)
+ return -ENODEV;
+
+- rc = rt_mutex_trylock(&dev->i2c_bus_lock);
+- if (rc < 0)
+- return rc;
++ if (!rt_mutex_trylock(&dev->i2c_bus_lock))
++ return -EAGAIN;
+
+ /* Switch I2C bus if needed */
+ if (bus != dev->cur_i2c_bus &&
+diff --git a/drivers/media/usb/gspca/cpia1.c b/drivers/media/usb/gspca/cpia1.c
+index f23df4a9..52b88e9 100644
+--- a/drivers/media/usb/gspca/cpia1.c
++++ b/drivers/media/usb/gspca/cpia1.c
+@@ -1624,7 +1624,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
+
+ static void sd_stopN(struct gspca_dev *gspca_dev)
+ {
+- struct sd *sd = (struct sd *) gspca_dev;
++ struct sd *sd __maybe_unused = (struct sd *) gspca_dev;
+
+ command_pause(gspca_dev);
+
+diff --git a/drivers/media/usb/gspca/konica.c b/drivers/media/usb/gspca/konica.c
+index 39c96bb..0712b1b 100644
+--- a/drivers/media/usb/gspca/konica.c
++++ b/drivers/media/usb/gspca/konica.c
+@@ -243,7 +243,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
+
+ static void sd_stopN(struct gspca_dev *gspca_dev)
+ {
+- struct sd *sd = (struct sd *) gspca_dev;
++ struct sd *sd __maybe_unused = (struct sd *) gspca_dev;
+
+ konica_stream_off(gspca_dev);
+ #if IS_ENABLED(CONFIG_INPUT)
+diff --git a/drivers/media/usb/gspca/t613.c b/drivers/media/usb/gspca/t613.c
+index e2cc4e5..bb52fc1 100644
+--- a/drivers/media/usb/gspca/t613.c
++++ b/drivers/media/usb/gspca/t613.c
+@@ -837,7 +837,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
+ u8 *data, /* isoc packet */
+ int len) /* iso packet length */
+ {
+- struct sd *sd = (struct sd *) gspca_dev;
++ struct sd *sd __maybe_unused = (struct sd *) gspca_dev;
+ int pkt_type;
+
+ if (data[0] == 0x5a) {
+diff --git a/drivers/misc/cxl/guest.c b/drivers/misc/cxl/guest.c
+index bc8d0b9..df65193 100644
+--- a/drivers/misc/cxl/guest.c
++++ b/drivers/misc/cxl/guest.c
+@@ -1052,16 +1052,18 @@ static void free_adapter(struct cxl *adapter)
+ struct irq_avail *cur;
+ int i;
+
+- if (adapter->guest->irq_avail) {
+- for (i = 0; i < adapter->guest->irq_nranges; i++) {
+- cur = &adapter->guest->irq_avail[i];
+- kfree(cur->bitmap);
++ if (adapter->guest) {
++ if (adapter->guest->irq_avail) {
++ for (i = 0; i < adapter->guest->irq_nranges; i++) {
++ cur = &adapter->guest->irq_avail[i];
++ kfree(cur->bitmap);
++ }
++ kfree(adapter->guest->irq_avail);
+ }
+- kfree(adapter->guest->irq_avail);
++ kfree(adapter->guest->status);
++ kfree(adapter->guest);
+ }
+- kfree(adapter->guest->status);
+ cxl_remove_adapter_nr(adapter);
+- kfree(adapter->guest);
+ kfree(adapter);
+ }
+
+diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
+index bcc0de4..bd11998 100644
+--- a/drivers/mmc/host/sdhci-tegra.c
++++ b/drivers/mmc/host/sdhci-tegra.c
+@@ -148,28 +148,37 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask)
+ return;
+
+ misc_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_MISC_CTRL);
+- /* Erratum: Enable SDHCI spec v3.00 support */
+- if (soc_data->nvquirks & NVQUIRK_ENABLE_SDHCI_SPEC_300)
+- misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDHCI_SPEC_300;
+- /* Advertise UHS modes as supported by host */
+- if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50)
+- misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50;
+- else
+- misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50;
+- if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50)
+- misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50;
+- else
+- misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50;
+- if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104)
+- misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104;
+- else
+- misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104;
+- sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL);
+-
+ clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL);
++
++ misc_ctrl &= ~(SDHCI_MISC_CTRL_ENABLE_SDHCI_SPEC_300 |
++ SDHCI_MISC_CTRL_ENABLE_SDR50 |
++ SDHCI_MISC_CTRL_ENABLE_DDR50 |
++ SDHCI_MISC_CTRL_ENABLE_SDR104);
++
+ clk_ctrl &= ~SDHCI_CLOCK_CTRL_SPI_MODE_CLKEN_OVERRIDE;
+- if (soc_data->nvquirks & SDHCI_MISC_CTRL_ENABLE_SDR50)
+- clk_ctrl |= SDHCI_CLOCK_CTRL_SDR50_TUNING_OVERRIDE;
++
++ /*
++ * If the board does not define a regulator for the SDHCI
++ * IO voltage, then don't advertise support for UHS modes
++ * even if the device supports it because the IO voltage
++ * cannot be configured.
++ */
++ if (!IS_ERR(host->mmc->supply.vqmmc)) {
++ /* Erratum: Enable SDHCI spec v3.00 support */
++ if (soc_data->nvquirks & NVQUIRK_ENABLE_SDHCI_SPEC_300)
++ misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDHCI_SPEC_300;
++ /* Advertise UHS modes as supported by host */
++ if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50)
++ misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50;
++ if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50)
++ misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50;
++ if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104)
++ misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104;
++ if (soc_data->nvquirks & SDHCI_MISC_CTRL_ENABLE_SDR50)
++ clk_ctrl |= SDHCI_CLOCK_CTRL_SDR50_TUNING_OVERRIDE;
++ }
++
++ sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL);
+ sdhci_writel(host, clk_ctrl, SDHCI_TEGRA_VENDOR_CLOCK_CTRL);
+
+ if (soc_data->nvquirks & NVQUIRK_HAS_PADCALIB)
+diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
+index cc07ba0..27fa8b8 100644
+--- a/drivers/mtd/nand/davinci_nand.c
++++ b/drivers/mtd/nand/davinci_nand.c
+@@ -240,6 +240,9 @@ static void nand_davinci_hwctl_4bit(struct mtd_info *mtd, int mode)
+ unsigned long flags;
+ u32 val;
+
++ /* Reset ECC hardware */
++ davinci_nand_readl(info, NAND_4BIT_ECC1_OFFSET);
++
+ spin_lock_irqsave(&davinci_nand_lock, flags);
+
+ /* Start 4-bit ECC calculation for read/write */
+diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
+index ad535a8..eab1327 100644
+--- a/drivers/net/can/dev.c
++++ b/drivers/net/can/dev.c
+@@ -21,6 +21,7 @@
+ #include <linux/slab.h>
+ #include <linux/netdevice.h>
+ #include <linux/if_arp.h>
++#include <linux/workqueue.h>
+ #include <linux/can.h>
+ #include <linux/can/dev.h>
+ #include <linux/can/skb.h>
+@@ -471,9 +472,8 @@ EXPORT_SYMBOL_GPL(can_free_echo_skb);
+ /*
+ * CAN device restart for bus-off recovery
+ */
+-static void can_restart(unsigned long data)
++static void can_restart(struct net_device *dev)
+ {
+- struct net_device *dev = (struct net_device *)data;
+ struct can_priv *priv = netdev_priv(dev);
+ struct net_device_stats *stats = &dev->stats;
+ struct sk_buff *skb;
+@@ -513,6 +513,14 @@ restart:
+ netdev_err(dev, "Error %d during restart", err);
+ }
+
++static void can_restart_work(struct work_struct *work)
++{
++ struct delayed_work *dwork = to_delayed_work(work);
++ struct can_priv *priv = container_of(dwork, struct can_priv, restart_work);
++
++ can_restart(priv->dev);
++}
++
+ int can_restart_now(struct net_device *dev)
+ {
+ struct can_priv *priv = netdev_priv(dev);
+@@ -526,8 +534,8 @@ int can_restart_now(struct net_device *dev)
+ if (priv->state != CAN_STATE_BUS_OFF)
+ return -EBUSY;
+
+- /* Runs as soon as possible in the timer context */
+- mod_timer(&priv->restart_timer, jiffies);
++ cancel_delayed_work_sync(&priv->restart_work);
++ can_restart(dev);
+
+ return 0;
+ }
+@@ -548,8 +556,8 @@ void can_bus_off(struct net_device *dev)
+ netif_carrier_off(dev);
+
+ if (priv->restart_ms)
+- mod_timer(&priv->restart_timer,
+- jiffies + (priv->restart_ms * HZ) / 1000);
++ schedule_delayed_work(&priv->restart_work,
++ msecs_to_jiffies(priv->restart_ms));
+ }
+ EXPORT_SYMBOL_GPL(can_bus_off);
+
+@@ -658,6 +666,7 @@ struct net_device *alloc_candev(int sizeof_priv, unsigned int echo_skb_max)
+ return NULL;
+
+ priv = netdev_priv(dev);
++ priv->dev = dev;
+
+ if (echo_skb_max) {
+ priv->echo_skb_max = echo_skb_max;
+@@ -667,7 +676,7 @@ struct net_device *alloc_candev(int sizeof_priv, unsigned int echo_skb_max)
+
+ priv->state = CAN_STATE_STOPPED;
+
+- init_timer(&priv->restart_timer);
++ INIT_DELAYED_WORK(&priv->restart_work, can_restart_work);
+
+ return dev;
+ }
+@@ -748,8 +757,6 @@ int open_candev(struct net_device *dev)
+ if (!netif_carrier_ok(dev))
+ netif_carrier_on(dev);
+
+- setup_timer(&priv->restart_timer, can_restart, (unsigned long)dev);
+-
+ return 0;
+ }
+ EXPORT_SYMBOL_GPL(open_candev);
+@@ -764,7 +771,7 @@ void close_candev(struct net_device *dev)
+ {
+ struct can_priv *priv = netdev_priv(dev);
+
+- del_timer_sync(&priv->restart_timer);
++ cancel_delayed_work_sync(&priv->restart_work);
+ can_flush_echo_skb(dev);
+ }
+ EXPORT_SYMBOL_GPL(close_candev);
+diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
+index 9c0d875..9b51954 100644
+--- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
++++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
+@@ -983,9 +983,10 @@ void fm10k_write_reta(struct fm10k_intfc *interface, const u32 *indir)
+ /* generate a new table if we weren't given one */
+ for (j = 0; j < 4; j++) {
+ if (indir)
+- n = indir[i + j];
++ n = indir[4 * i + j];
+ else
+- n = ethtool_rxfh_indir_default(i + j, rss_i);
++ n = ethtool_rxfh_indir_default(4 * i + j,
++ rss_i);
+
+ table[j] = n;
+ }
+diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
+index 422b41d..d5cb570 100644
+--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
++++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
+@@ -297,13 +297,15 @@ void i40e_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask, void *desc,
+ void *buffer, u16 buf_len)
+ {
+ struct i40e_aq_desc *aq_desc = (struct i40e_aq_desc *)desc;
+- u16 len = le16_to_cpu(aq_desc->datalen);
++ u16 len;
+ u8 *buf = (u8 *)buffer;
+ u16 i = 0;
+
+ if ((!(mask & hw->debug_mask)) || (desc == NULL))
+ return;
+
++ len = le16_to_cpu(aq_desc->datalen);
++
+ i40e_debug(hw, mask,
+ "AQ CMD: opcode 0x%04X, flags 0x%04X, datalen 0x%04X, retval 0x%04X\n",
+ le16_to_cpu(aq_desc->opcode),
+diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
+index 813cdd2..d3f8b9f 100644
+--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
++++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
+@@ -1524,7 +1524,7 @@ static void ath10k_htt_rx_h_filter(struct ath10k *ar,
+ static int ath10k_htt_rx_handle_amsdu(struct ath10k_htt *htt)
+ {
+ struct ath10k *ar = htt->ar;
+- static struct ieee80211_rx_status rx_status;
++ struct ieee80211_rx_status *rx_status = &htt->rx_status;
+ struct sk_buff_head amsdu;
+ int ret;
+
+@@ -1548,11 +1548,11 @@ static int ath10k_htt_rx_handle_amsdu(struct ath10k_htt *htt)
+ return ret;
+ }
+
+- ath10k_htt_rx_h_ppdu(ar, &amsdu, &rx_status, 0xffff);
++ ath10k_htt_rx_h_ppdu(ar, &amsdu, rx_status, 0xffff);
+ ath10k_htt_rx_h_unchain(ar, &amsdu, ret > 0);
+- ath10k_htt_rx_h_filter(ar, &amsdu, &rx_status);
+- ath10k_htt_rx_h_mpdu(ar, &amsdu, &rx_status);
+- ath10k_htt_rx_h_deliver(ar, &amsdu, &rx_status);
++ ath10k_htt_rx_h_filter(ar, &amsdu, rx_status);
++ ath10k_htt_rx_h_mpdu(ar, &amsdu, rx_status);
++ ath10k_htt_rx_h_deliver(ar, &amsdu, rx_status);
+
+ return 0;
+ }
+diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+index dec1a31..e2083f4 100644
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -4176,7 +4176,7 @@ static void ath9k_hw_ar9300_set_board_values(struct ath_hw *ah,
+ if (!AR_SREV_9330(ah) && !AR_SREV_9340(ah) && !AR_SREV_9531(ah))
+ ar9003_hw_internal_regulator_apply(ah);
+ ar9003_hw_apply_tuning_caps(ah);
+- ar9003_hw_apply_minccapwr_thresh(ah, chan);
++ ar9003_hw_apply_minccapwr_thresh(ah, is2ghz);
+ ar9003_hw_txend_to_xpa_off_apply(ah, is2ghz);
+ ar9003_hw_thermometer_apply(ah);
+ ar9003_hw_thermo_cal_apply(ah);
+diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+index c7550da..570c80a 100644
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+@@ -722,8 +722,10 @@ int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev,
+ return -ENOMEM;
+ err = brcmf_sdiod_buffrw(sdiodev, SDIO_FUNC_2, false, addr,
+ glom_skb);
+- if (err)
++ if (err) {
++ brcmu_pkt_buf_free_skb(glom_skb);
+ goto done;
++ }
+
+ skb_queue_walk(pktq, skb) {
+ memcpy(skb->data, glom_skb->data, skb->len);
+diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
+index 796f5f9..b7df576 100644
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c
+@@ -1079,8 +1079,10 @@ bool dma_rxfill(struct dma_pub *pub)
+
+ pa = dma_map_single(di->dmadev, p->data, di->rxbufsize,
+ DMA_FROM_DEVICE);
+- if (dma_mapping_error(di->dmadev, pa))
++ if (dma_mapping_error(di->dmadev, pa)) {
++ brcmu_pkt_buf_free_skb(p);
+ return false;
++ }
+
+ /* save the free packet pointer */
+ di->rxp[rxout] = p;
+diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c
+index dd91627..0ab865d 100644
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c
+@@ -87,7 +87,7 @@ void
+ brcms_c_stf_ss_algo_channel_get(struct brcms_c_info *wlc, u16 *ss_algo_channel,
+ u16 chanspec)
+ {
+- struct tx_power power;
++ struct tx_power power = { };
+ u8 siso_mcs_id, cdd_mcs_id, stbc_mcs_id;
+
+ /* Clear previous settings */
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c
+index e1b6b2c..46b52bf 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c
+@@ -288,7 +288,8 @@ static void iwl_mvm_dump_fifos(struct iwl_mvm *mvm,
+ fifo_hdr->fifo_num = cpu_to_le32(i);
+
+ /* Mark the number of TXF we're pulling now */
+- iwl_trans_write_prph(mvm->trans, TXF_CPU2_NUM, i);
++ iwl_trans_write_prph(mvm->trans, TXF_CPU2_NUM, i +
++ ARRAY_SIZE(mvm->shared_mem_cfg.txfifo_size));
+
+ fifo_hdr->available_bytes =
+ cpu_to_le32(iwl_trans_read_prph(mvm->trans,
+@@ -959,5 +960,6 @@ int iwl_mvm_start_fw_dbg_conf(struct iwl_mvm *mvm, u8 conf_id)
+ }
+
+ mvm->fw_dbg_conf = conf_id;
+- return ret;
++
++ return 0;
+ }
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+index 7057f35..fb71cf6 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+@@ -139,17 +139,21 @@ void iwl_free_fw_paging(struct iwl_mvm *mvm)
+ return;
+
+ for (i = 0; i < NUM_OF_FW_PAGING_BLOCKS; i++) {
+- if (!mvm->fw_paging_db[i].fw_paging_block) {
++ struct iwl_fw_paging *paging = &mvm->fw_paging_db[i];
++
++ if (!paging->fw_paging_block) {
+ IWL_DEBUG_FW(mvm,
+ "Paging: block %d already freed, continue to next page\n",
+ i);
+
+ continue;
+ }
++ dma_unmap_page(mvm->trans->dev, paging->fw_paging_phys,
++ paging->fw_paging_size, DMA_BIDIRECTIONAL);
+
+- __free_pages(mvm->fw_paging_db[i].fw_paging_block,
+- get_order(mvm->fw_paging_db[i].fw_paging_size));
+- mvm->fw_paging_db[i].fw_paging_block = NULL;
++ __free_pages(paging->fw_paging_block,
++ get_order(paging->fw_paging_size));
++ paging->fw_paging_block = NULL;
+ }
+ kfree(mvm->trans->paging_download_buf);
+ mvm->trans->paging_download_buf = NULL;
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
+index 25a9840..0551a4b 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
+@@ -667,8 +667,7 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
+ .mcc = cpu_to_le16(alpha2[0] << 8 | alpha2[1]),
+ .source_id = (u8)src_id,
+ };
+- struct iwl_mcc_update_resp *mcc_resp, *resp_cp = NULL;
+- struct iwl_mcc_update_resp_v1 *mcc_resp_v1 = NULL;
++ struct iwl_mcc_update_resp *resp_cp;
+ struct iwl_rx_packet *pkt;
+ struct iwl_host_cmd cmd = {
+ .id = MCC_UPDATE_CMD,
+@@ -701,34 +700,36 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
+
+ /* Extract MCC response */
+ if (resp_v2) {
+- mcc_resp = (void *)pkt->data;
++ struct iwl_mcc_update_resp *mcc_resp = (void *)pkt->data;
++
+ n_channels = __le32_to_cpu(mcc_resp->n_channels);
++ resp_len = sizeof(struct iwl_mcc_update_resp) +
++ n_channels * sizeof(__le32);
++ resp_cp = kmemdup(mcc_resp, resp_len, GFP_KERNEL);
+ } else {
+- mcc_resp_v1 = (void *)pkt->data;
++ struct iwl_mcc_update_resp_v1 *mcc_resp_v1 = (void *)pkt->data;
++
+ n_channels = __le32_to_cpu(mcc_resp_v1->n_channels);
++ resp_len = sizeof(struct iwl_mcc_update_resp) +
++ n_channels * sizeof(__le32);
++ resp_cp = kzalloc(resp_len, GFP_KERNEL);
++
++ if (resp_cp) {
++ resp_cp->status = mcc_resp_v1->status;
++ resp_cp->mcc = mcc_resp_v1->mcc;
++ resp_cp->cap = mcc_resp_v1->cap;
++ resp_cp->source_id = mcc_resp_v1->source_id;
++ resp_cp->n_channels = mcc_resp_v1->n_channels;
++ memcpy(resp_cp->channels, mcc_resp_v1->channels,
++ n_channels * sizeof(__le32));
++ }
+ }
+
+- resp_len = sizeof(struct iwl_mcc_update_resp) + n_channels *
+- sizeof(__le32);
+-
+- resp_cp = kzalloc(resp_len, GFP_KERNEL);
+ if (!resp_cp) {
+ ret = -ENOMEM;
+ goto exit;
+ }
+
+- if (resp_v2) {
+- memcpy(resp_cp, mcc_resp, resp_len);
+- } else {
+- resp_cp->status = mcc_resp_v1->status;
+- resp_cp->mcc = mcc_resp_v1->mcc;
+- resp_cp->cap = mcc_resp_v1->cap;
+- resp_cp->source_id = mcc_resp_v1->source_id;
+- resp_cp->n_channels = mcc_resp_v1->n_channels;
+- memcpy(resp_cp->channels, mcc_resp_v1->channels,
+- n_channels * sizeof(__le32));
+- }
+-
+ status = le32_to_cpu(resp_cp->status);
+
+ mcc = le16_to_cpu(resp_cp->mcc);
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sf.c b/drivers/net/wireless/intel/iwlwifi/mvm/sf.c
+index 443a428..101fb04 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/sf.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/sf.c
+@@ -215,7 +215,7 @@ static int iwl_mvm_sf_config(struct iwl_mvm *mvm, u8 sta_id,
+ enum iwl_sf_state new_state)
+ {
+ struct iwl_sf_cfg_cmd sf_cmd = {
+- .state = cpu_to_le32(SF_FULL_ON),
++ .state = cpu_to_le32(new_state),
+ };
+ struct ieee80211_sta *sta;
+ int ret = 0;
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+index b23ab4a..1822ad3 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+@@ -1374,11 +1374,12 @@ int iwl_mvm_sta_rx_agg(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
+ */
+ WARN_ON(rcu_access_pointer(mvm->baid_map[baid]));
+ rcu_assign_pointer(mvm->baid_map[baid], baid_data);
+- } else if (mvm->rx_ba_sessions > 0) {
++ } else {
+ u8 baid = mvm_sta->tid_to_baid[tid];
+
+- /* check that restart flow didn't zero the counter */
+- mvm->rx_ba_sessions--;
++ if (mvm->rx_ba_sessions > 0)
++ /* check that restart flow didn't zero the counter */
++ mvm->rx_ba_sessions--;
+ if (!iwl_mvm_has_new_rx_api(mvm))
+ return 0;
+
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+index b92b75f..6b8d9a5 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+@@ -138,28 +138,19 @@ static void iwl_mvm_tx_csum(struct iwl_mvm *mvm, struct sk_buff *skb,
+
+ protocol = ipv6h->nexthdr;
+ while (protocol != NEXTHDR_NONE && ipv6_ext_hdr(protocol)) {
++ struct ipv6_opt_hdr *hp;
++
+ /* only supported extension headers */
+ if (protocol != NEXTHDR_ROUTING &&
+ protocol != NEXTHDR_HOP &&
+- protocol != NEXTHDR_DEST &&
+- protocol != NEXTHDR_FRAGMENT) {
++ protocol != NEXTHDR_DEST) {
+ skb_checksum_help(skb);
+ return;
+ }
+
+- if (protocol == NEXTHDR_FRAGMENT) {
+- struct frag_hdr *hp =
+- OPT_HDR(struct frag_hdr, skb, off);
+-
+- protocol = hp->nexthdr;
+- off += sizeof(struct frag_hdr);
+- } else {
+- struct ipv6_opt_hdr *hp =
+- OPT_HDR(struct ipv6_opt_hdr, skb, off);
+-
+- protocol = hp->nexthdr;
+- off += ipv6_optlen(hp);
+- }
++ hp = OPT_HDR(struct ipv6_opt_hdr, skb, off);
++ protocol = hp->nexthdr;
++ off += ipv6_optlen(hp);
+ }
+ /* if we get here - protocol now should be TCP/UDP */
+ #endif
+@@ -1312,7 +1303,15 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
+ bool send_eosp_ndp = false;
+
+ spin_lock_bh(&mvmsta->lock);
+- txq_agg = (mvmsta->tid_data[tid].state == IWL_AGG_ON);
++ if (iwl_mvm_is_dqa_supported(mvm)) {
++ enum iwl_mvm_agg_state state;
++
++ state = mvmsta->tid_data[tid].state;
++ txq_agg = (state == IWL_AGG_ON ||
++ state == IWL_EMPTYING_HW_QUEUE_DELBA);
++ } else {
++ txq_agg = txq_id >= mvm->first_agg_queue;
++ }
+
+ if (!is_ndp) {
+ tid_data->next_reclaimed = next_reclaimed;
+diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+index d6beac9..dec63a0 100644
+--- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
++++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+@@ -1595,9 +1595,9 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
+
+ /* start the TFD with the scratchbuf */
+ scratch_size = min_t(int, copy_size, IWL_HCMD_SCRATCHBUF_SIZE);
+- memcpy(&txq->scratchbufs[q->write_ptr], &out_cmd->hdr, scratch_size);
++ memcpy(&txq->scratchbufs[idx], &out_cmd->hdr, scratch_size);
+ iwl_pcie_txq_build_tfd(trans, txq,
+- iwl_pcie_get_scratchbuf_dma(txq, q->write_ptr),
++ iwl_pcie_get_scratchbuf_dma(txq, idx),
+ scratch_size, true);
+
+ /* map first command fragment, if any remains */
+diff --git a/drivers/net/wireless/marvell/mwifiex/uap_txrx.c b/drivers/net/wireless/marvell/mwifiex/uap_txrx.c
+index 666e91a..bf5660e 100644
+--- a/drivers/net/wireless/marvell/mwifiex/uap_txrx.c
++++ b/drivers/net/wireless/marvell/mwifiex/uap_txrx.c
+@@ -272,7 +272,7 @@ int mwifiex_handle_uap_rx_forward(struct mwifiex_private *priv,
+ int mwifiex_uap_recv_packet(struct mwifiex_private *priv,
+ struct sk_buff *skb)
+ {
+- struct mwifiex_adapter *adapter = adapter;
++ struct mwifiex_adapter *adapter = priv->adapter;
+ struct mwifiex_sta_node *src_node;
+ struct ethhdr *p_ethhdr;
+ struct sk_buff *skb_uap;
+diff --git a/drivers/nfc/fdp/fdp.c b/drivers/nfc/fdp/fdp.c
+index e44a7a2..1642742 100644
+--- a/drivers/nfc/fdp/fdp.c
++++ b/drivers/nfc/fdp/fdp.c
+@@ -353,7 +353,7 @@ static int fdp_nci_patch_otp(struct nci_dev *ndev)
+ {
+ struct fdp_nci_info *info = nci_get_drvdata(ndev);
+ struct device *dev = &info->phy->i2c_dev->dev;
+- u8 conn_id;
++ int conn_id;
+ int r = 0;
+
+ if (info->otp_version >= info->otp_patch_version)
+@@ -424,7 +424,7 @@ static int fdp_nci_patch_ram(struct nci_dev *ndev)
+ {
+ struct fdp_nci_info *info = nci_get_drvdata(ndev);
+ struct device *dev = &info->phy->i2c_dev->dev;
+- u8 conn_id;
++ int conn_id;
+ int r = 0;
+
+ if (info->ram_version >= info->ram_patch_version)
+diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
+index 489ea10..69b5e81 100644
+--- a/drivers/pcmcia/ds.c
++++ b/drivers/pcmcia/ds.c
+@@ -977,7 +977,7 @@ static int pcmcia_bus_uevent(struct device *dev, struct kobj_uevent_env *env)
+
+ /************************ runtime PM support ***************************/
+
+-static int pcmcia_dev_suspend(struct device *dev, pm_message_t state);
++static int pcmcia_dev_suspend(struct device *dev);
+ static int pcmcia_dev_resume(struct device *dev);
+
+ static int runtime_suspend(struct device *dev)
+@@ -985,7 +985,7 @@ static int runtime_suspend(struct device *dev)
+ int rc;
+
+ device_lock(dev);
+- rc = pcmcia_dev_suspend(dev, PMSG_SUSPEND);
++ rc = pcmcia_dev_suspend(dev);
+ device_unlock(dev);
+ return rc;
+ }
+@@ -1135,7 +1135,7 @@ ATTRIBUTE_GROUPS(pcmcia_dev);
+
+ /* PM support, also needed for reset */
+
+-static int pcmcia_dev_suspend(struct device *dev, pm_message_t state)
++static int pcmcia_dev_suspend(struct device *dev)
+ {
+ struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
+ struct pcmcia_driver *p_drv = NULL;
+@@ -1410,6 +1410,9 @@ static struct class_interface pcmcia_bus_interface __refdata = {
+ .remove_dev = &pcmcia_bus_remove_socket,
+ };
+
++static const struct dev_pm_ops pcmcia_bus_pm_ops = {
++ SET_SYSTEM_SLEEP_PM_OPS(pcmcia_dev_suspend, pcmcia_dev_resume)
++};
+
+ struct bus_type pcmcia_bus_type = {
+ .name = "pcmcia",
+@@ -1418,8 +1421,7 @@ struct bus_type pcmcia_bus_type = {
+ .dev_groups = pcmcia_dev_groups,
+ .probe = pcmcia_device_probe,
+ .remove = pcmcia_device_remove,
+- .suspend = pcmcia_dev_suspend,
+- .resume = pcmcia_dev_resume,
++ .pm = &pcmcia_bus_pm_ops,
+ };
+
+
+diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
+index 140436a..5824045 100644
+--- a/drivers/perf/arm_pmu.c
++++ b/drivers/perf/arm_pmu.c
+@@ -921,6 +921,7 @@ static int of_pmu_irq_cfg(struct arm_pmu *pmu)
+ if (i > 0 && spi != using_spi) {
+ pr_err("PPI/SPI IRQ type mismatch for %s!\n",
+ dn->name);
++ of_node_put(dn);
+ kfree(irqs);
+ return -EINVAL;
+ }
+diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
+index 9674009..5d08de0 100644
+--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
++++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
+@@ -73,6 +73,12 @@ static void uniphier_pctl_pin_dbg_show(struct pinctrl_dev *pctldev,
+ case UNIPHIER_PIN_PULL_DOWN:
+ pull_dir = "DOWN";
+ break;
++ case UNIPHIER_PIN_PULL_UP_FIXED:
++ pull_dir = "UP(FIXED)";
++ break;
++ case UNIPHIER_PIN_PULL_DOWN_FIXED:
++ pull_dir = "DOWN(FIXED)";
++ break;
+ case UNIPHIER_PIN_PULL_NONE:
+ pull_dir = "NONE";
+ break;
+diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c
+index fafa348..36e0c93 100644
+--- a/drivers/regulator/pwm-regulator.c
++++ b/drivers/regulator/pwm-regulator.c
+@@ -132,6 +132,7 @@ static int pwm_regulator_set_voltage(struct regulator_dev *rdev,
+ unsigned int duty_pulse;
+ u64 req_period;
+ u32 rem;
++ int old_uV = pwm_regulator_get_voltage(rdev);
+ int ret;
+
+ pwm_get_args(drvdata->pwm, &pargs);
+@@ -166,8 +167,12 @@ static int pwm_regulator_set_voltage(struct regulator_dev *rdev,
+ }
+ drvdata->volt_uV = min_uV;
+
+- /* Delay required by PWM regulator to settle to the new voltage */
+- usleep_range(ramp_delay, ramp_delay + 1000);
++ if ((ramp_delay == 0) || !pwm_regulator_is_enabled(rdev))
++ return 0;
++
++ /* Ramp delay is in uV/uS. Adjust to uS and delay */
++ ramp_delay = DIV_ROUND_UP(abs(min_uV - old_uV), ramp_delay);
++ usleep_range(ramp_delay, ramp_delay + DIV_ROUND_UP(ramp_delay, 10));
+
+ return 0;
+ }
+diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
+index 6c7fe477..891ae44 100644
+--- a/drivers/regulator/qcom_smd-regulator.c
++++ b/drivers/regulator/qcom_smd-regulator.c
+@@ -178,20 +178,21 @@ static const struct regulator_desc pma8084_hfsmps = {
+ static const struct regulator_desc pma8084_ftsmps = {
+ .linear_ranges = (struct regulator_linear_range[]) {
+ REGULATOR_LINEAR_RANGE(350000, 0, 184, 5000),
+- REGULATOR_LINEAR_RANGE(700000, 185, 339, 10000),
++ REGULATOR_LINEAR_RANGE(1280000, 185, 261, 10000),
+ },
+ .n_linear_ranges = 2,
+- .n_voltages = 340,
++ .n_voltages = 262,
+ .ops = &rpm_smps_ldo_ops,
+ };
+
+ static const struct regulator_desc pma8084_pldo = {
+ .linear_ranges = (struct regulator_linear_range[]) {
+- REGULATOR_LINEAR_RANGE(750000, 0, 30, 25000),
+- REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
++ REGULATOR_LINEAR_RANGE( 750000, 0, 63, 12500),
++ REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000),
++ REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000),
+ },
+- .n_linear_ranges = 2,
+- .n_voltages = 100,
++ .n_linear_ranges = 3,
++ .n_voltages = 164,
+ .ops = &rpm_smps_ldo_ops,
+ };
+
+@@ -221,29 +222,30 @@ static const struct regulator_desc pm8x41_hfsmps = {
+ static const struct regulator_desc pm8841_ftsmps = {
+ .linear_ranges = (struct regulator_linear_range[]) {
+ REGULATOR_LINEAR_RANGE(350000, 0, 184, 5000),
+- REGULATOR_LINEAR_RANGE(700000, 185, 339, 10000),
++ REGULATOR_LINEAR_RANGE(1280000, 185, 261, 10000),
+ },
+ .n_linear_ranges = 2,
+- .n_voltages = 340,
++ .n_voltages = 262,
+ .ops = &rpm_smps_ldo_ops,
+ };
+
+ static const struct regulator_desc pm8941_boost = {
+ .linear_ranges = (struct regulator_linear_range[]) {
+- REGULATOR_LINEAR_RANGE(4000000, 0, 15, 100000),
++ REGULATOR_LINEAR_RANGE(4000000, 0, 30, 50000),
+ },
+ .n_linear_ranges = 1,
+- .n_voltages = 16,
++ .n_voltages = 31,
+ .ops = &rpm_smps_ldo_ops,
+ };
+
+ static const struct regulator_desc pm8941_pldo = {
+ .linear_ranges = (struct regulator_linear_range[]) {
+- REGULATOR_LINEAR_RANGE( 750000, 0, 30, 25000),
+- REGULATOR_LINEAR_RANGE(1500000, 31, 99, 50000),
++ REGULATOR_LINEAR_RANGE( 750000, 0, 63, 12500),
++ REGULATOR_LINEAR_RANGE(1550000, 64, 126, 25000),
++ REGULATOR_LINEAR_RANGE(3100000, 127, 163, 50000),
+ },
+- .n_linear_ranges = 2,
+- .n_voltages = 100,
++ .n_linear_ranges = 3,
++ .n_voltages = 164,
+ .ops = &rpm_smps_ldo_ops,
+ };
+
+diff --git a/drivers/regulator/qcom_spmi-regulator.c b/drivers/regulator/qcom_spmi-regulator.c
+index 84cce21..16c5f84 100644
+--- a/drivers/regulator/qcom_spmi-regulator.c
++++ b/drivers/regulator/qcom_spmi-regulator.c
+@@ -1085,6 +1085,8 @@ static struct regulator_ops spmi_vs_ops = {
+ .set_pull_down = spmi_regulator_common_set_pull_down,
+ .set_soft_start = spmi_regulator_common_set_soft_start,
+ .set_over_current_protection = spmi_regulator_vs_ocp,
++ .set_mode = spmi_regulator_common_set_mode,
++ .get_mode = spmi_regulator_common_get_mode,
+ };
+
+ static struct regulator_ops spmi_boost_ops = {
+@@ -1496,6 +1498,7 @@ static const struct spmi_regulator_data pm8941_regulators[] = {
+ { "s1", 0x1400, "vdd_s1", },
+ { "s2", 0x1700, "vdd_s2", },
+ { "s3", 0x1a00, "vdd_s3", },
++ { "s4", 0xa000, },
+ { "l1", 0x4000, "vdd_l1_l3", },
+ { "l2", 0x4100, "vdd_l2_lvs_1_2_3", },
+ { "l3", 0x4200, "vdd_l1_l3", },
+@@ -1523,8 +1526,8 @@ static const struct spmi_regulator_data pm8941_regulators[] = {
+ { "lvs1", 0x8000, "vdd_l2_lvs_1_2_3", },
+ { "lvs2", 0x8100, "vdd_l2_lvs_1_2_3", },
+ { "lvs3", 0x8200, "vdd_l2_lvs_1_2_3", },
+- { "mvs1", 0x8300, "vin_5vs", },
+- { "mvs2", 0x8400, "vin_5vs", },
++ { "5vs1", 0x8300, "vin_5vs", "ocp-5vs1", },
++ { "5vs2", 0x8400, "vin_5vs", "ocp-5vs2", },
+ { }
+ };
+
+diff --git a/drivers/scsi/fnic/fnic_fcs.c b/drivers/scsi/fnic/fnic_fcs.c
+index 67669a9..f3a3331 100644
+--- a/drivers/scsi/fnic/fnic_fcs.c
++++ b/drivers/scsi/fnic/fnic_fcs.c
+@@ -954,8 +954,8 @@ int fnic_alloc_rq_frame(struct vnic_rq *rq)
+ skb_put(skb, len);
+ pa = pci_map_single(fnic->pdev, skb->data, len, PCI_DMA_FROMDEVICE);
+
+- r = pci_dma_mapping_error(fnic->pdev, pa);
+- if (r) {
++ if (pci_dma_mapping_error(fnic->pdev, pa)) {
++ r = -ENOMEM;
+ printk(KERN_ERR "PCI mapping failed with error %d\n", r);
+ goto free_skb;
+ }
+@@ -1093,8 +1093,8 @@ static int fnic_send_frame(struct fnic *fnic, struct fc_frame *fp)
+
+ pa = pci_map_single(fnic->pdev, eth_hdr, tot_len, PCI_DMA_TODEVICE);
+
+- ret = pci_dma_mapping_error(fnic->pdev, pa);
+- if (ret) {
++ if (pci_dma_mapping_error(fnic->pdev, pa)) {
++ ret = -ENOMEM;
+ printk(KERN_ERR "DMA map failed with error %d\n", ret);
+ goto free_skb_on_err;
+ }
+diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
+index 4c0f3a7..8a2368b 100644
+--- a/drivers/scsi/qla2xxx/qla_fw.h
++++ b/drivers/scsi/qla2xxx/qla_fw.h
+@@ -1288,7 +1288,7 @@ struct vp_rpt_id_entry_24xx {
+
+ uint8_t vp_idx_map[16];
+
+- uint8_t reserved_4[28];
++ uint8_t reserved_4[24];
+ uint16_t bbcr;
+ uint8_t reserved_5[6];
+ };
+diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
+index 53ef1cb..1d82053 100644
+--- a/drivers/scsi/ses.c
++++ b/drivers/scsi/ses.c
+@@ -587,7 +587,7 @@ static void ses_match_to_enclosure(struct enclosure_device *edev,
+
+ ses_enclosure_data_process(edev, to_scsi_device(edev->edev.parent), 0);
+
+- if (is_sas_attached(sdev))
++ if (scsi_is_sas_rphy(&sdev->sdev_gendev))
+ efd.addr = sas_get_address(sdev);
+
+ if (efd.addr) {
+diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c
+index a7934ab..d22de4c 100644
+--- a/drivers/spi/spi-sh-msiof.c
++++ b/drivers/spi/spi-sh-msiof.c
+@@ -263,6 +263,9 @@ static void sh_msiof_spi_set_clk_regs(struct sh_msiof_spi_priv *p,
+
+ for (k = 0; k < ARRAY_SIZE(sh_msiof_spi_div_table); k++) {
+ brps = DIV_ROUND_UP(div, sh_msiof_spi_div_table[k].div);
++ /* SCR_BRDV_DIV_1 is valid only if BRPS is x 1/1 or x 1/2 */
++ if (sh_msiof_spi_div_table[k].div == 1 && brps > 2)
++ continue;
+ if (brps <= 32) /* max of brdv is 32 */
+ break;
+ }
+diff --git a/drivers/staging/comedi/drivers/adv_pci1760.c b/drivers/staging/comedi/drivers/adv_pci1760.c
+index d7dd1e5..9f525ff 100644
+--- a/drivers/staging/comedi/drivers/adv_pci1760.c
++++ b/drivers/staging/comedi/drivers/adv_pci1760.c
+@@ -196,6 +196,7 @@ static int pci1760_pwm_ns_to_div(unsigned int flags, unsigned int ns)
+ break;
+ case CMDF_ROUND_DOWN:
+ divisor = ns / PCI1760_PWM_TIMEBASE;
++ break;
+ default:
+ return -EINVAL;
+ }
+diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
+index 0c1a77c..4c281df 100644
+--- a/drivers/staging/fbtft/fbtft-core.c
++++ b/drivers/staging/fbtft/fbtft-core.c
+@@ -391,11 +391,11 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned start_line,
+
+ if (unlikely(timeit)) {
+ ts_end = ktime_get();
+- if (ktime_to_ns(par->update_time))
++ if (!ktime_to_ns(par->update_time))
+ par->update_time = ts_start;
+
+- par->update_time = ts_start;
+ fps = ktime_us_delta(ts_start, par->update_time);
++ par->update_time = ts_start;
+ fps = fps ? 1000000 / fps : 0;
+
+ throughput = ktime_us_delta(ts_end, ts_start);
+diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
+index 917a55c..ffe9f88 100644
+--- a/drivers/usb/class/usbtmc.c
++++ b/drivers/usb/class/usbtmc.c
+@@ -141,6 +141,7 @@ static void usbtmc_delete(struct kref *kref)
+ struct usbtmc_device_data *data = to_usbtmc_data(kref);
+
+ usb_put_dev(data->usb_dev);
++ kfree(data);
+ }
+
+ static int usbtmc_open(struct inode *inode, struct file *filp)
+@@ -1379,7 +1380,7 @@ static int usbtmc_probe(struct usb_interface *intf,
+
+ dev_dbg(&intf->dev, "%s called\n", __func__);
+
+- data = devm_kzalloc(&intf->dev, sizeof(*data), GFP_KERNEL);
++ data = kmalloc(sizeof(*data), GFP_KERNEL);
+ if (!data)
+ return -ENOMEM;
+
+diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c
+index cf8819a..8bb011e 100644
+--- a/drivers/usb/gadget/udc/fsl_qe_udc.c
++++ b/drivers/usb/gadget/udc/fsl_qe_udc.c
+@@ -1878,11 +1878,8 @@ static int qe_get_frame(struct usb_gadget *gadget)
+
+ tmp = in_be16(&udc->usb_param->frame_n);
+ if (tmp & 0x8000)
+- tmp = tmp & 0x07ff;
+- else
+- tmp = -EINVAL;
+-
+- return (int)tmp;
++ return tmp & 0x07ff;
++ return -EINVAL;
+ }
+
+ static int fsl_qe_start(struct usb_gadget *gadget,
+diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
+index 7771be3..4dd531a 100644
+--- a/drivers/usb/misc/legousbtower.c
++++ b/drivers/usb/misc/legousbtower.c
+@@ -898,24 +898,6 @@ static int tower_probe (struct usb_interface *interface, const struct usb_device
+ dev->interrupt_in_interval = interrupt_in_interval ? interrupt_in_interval : dev->interrupt_in_endpoint->bInterval;
+ dev->interrupt_out_interval = interrupt_out_interval ? interrupt_out_interval : dev->interrupt_out_endpoint->bInterval;
+
+- /* we can register the device now, as it is ready */
+- usb_set_intfdata (interface, dev);
+-
+- retval = usb_register_dev (interface, &tower_class);
+-
+- if (retval) {
+- /* something prevented us from registering this driver */
+- dev_err(idev, "Not able to get a minor for this device.\n");
+- usb_set_intfdata (interface, NULL);
+- goto error;
+- }
+- dev->minor = interface->minor;
+-
+- /* let the user know what node this device is now attached to */
+- dev_info(&interface->dev, "LEGO USB Tower #%d now attached to major "
+- "%d minor %d\n", (dev->minor - LEGO_USB_TOWER_MINOR_BASE),
+- USB_MAJOR, dev->minor);
+-
+ /* get the firmware version and log it */
+ result = usb_control_msg (udev,
+ usb_rcvctrlpipe(udev, 0),
+@@ -936,6 +918,23 @@ static int tower_probe (struct usb_interface *interface, const struct usb_device
+ get_version_reply.minor,
+ le16_to_cpu(get_version_reply.build_no));
+
++ /* we can register the device now, as it is ready */
++ usb_set_intfdata (interface, dev);
++
++ retval = usb_register_dev (interface, &tower_class);
++
++ if (retval) {
++ /* something prevented us from registering this driver */
++ dev_err(idev, "Not able to get a minor for this device.\n");
++ usb_set_intfdata (interface, NULL);
++ goto error;
++ }
++ dev->minor = interface->minor;
++
++ /* let the user know what node this device is now attached to */
++ dev_info(&interface->dev, "LEGO USB Tower #%d now attached to major "
++ "%d minor %d\n", (dev->minor - LEGO_USB_TOWER_MINOR_BASE),
++ USB_MAJOR, dev->minor);
+
+ exit:
+ return retval;
+diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
+index 96a7078..7e91ee2 100644
+--- a/drivers/usb/serial/cp210x.c
++++ b/drivers/usb/serial/cp210x.c
+@@ -118,6 +118,7 @@ static const struct usb_device_id id_table[] = {
+ { USB_DEVICE(0x10C4, 0x8411) }, /* Kyocera GPS Module */
+ { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */
+ { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */
++ { USB_DEVICE(0x10C4, 0x8470) }, /* Juniper Networks BX Series System Console */
+ { USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */
+ { USB_DEVICE(0x10C4, 0x84B6) }, /* Starizona Hyperion */
+ { USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */
+diff --git a/drivers/usb/usbip/vudc_rx.c b/drivers/usb/usbip/vudc_rx.c
+index 344bd94..e429b59 100644
+--- a/drivers/usb/usbip/vudc_rx.c
++++ b/drivers/usb/usbip/vudc_rx.c
+@@ -142,7 +142,7 @@ static int v_recv_cmd_submit(struct vudc *udc,
+ urb_p->urb->status = -EINPROGRESS;
+
+ /* FIXME: more pipe setup to please usbip_common */
+- urb_p->urb->pipe &= ~(11 << 30);
++ urb_p->urb->pipe &= ~(3 << 30);
+ switch (urb_p->ep->type) {
+ case USB_ENDPOINT_XFER_BULK:
+ urb_p->urb->pipe |= (PIPE_BULK << 30);
+diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
+index 3595cff..cff8a65 100644
+--- a/drivers/watchdog/watchdog_dev.c
++++ b/drivers/watchdog/watchdog_dev.c
+@@ -258,10 +258,12 @@ static int watchdog_stop(struct watchdog_device *wdd)
+ return -EBUSY;
+ }
+
+- if (wdd->ops->stop)
++ if (wdd->ops->stop) {
++ clear_bit(WDOG_HW_RUNNING, &wdd->status);
+ err = wdd->ops->stop(wdd);
+- else
++ } else {
+ set_bit(WDOG_HW_RUNNING, &wdd->status);
++ }
+
+ if (err == 0) {
+ clear_bit(WDOG_ACTIVE, &wdd->status);
+diff --git a/fs/aio.c b/fs/aio.c
+index fb8e45b..4fe81d1 100644
+--- a/fs/aio.c
++++ b/fs/aio.c
+@@ -239,7 +239,12 @@ static struct dentry *aio_mount(struct file_system_type *fs_type,
+ static const struct dentry_operations ops = {
+ .d_dname = simple_dname,
+ };
+- return mount_pseudo(fs_type, "aio:", NULL, &ops, AIO_RING_MAGIC);
++ struct dentry *root = mount_pseudo(fs_type, "aio:", NULL, &ops,
++ AIO_RING_MAGIC);
++
++ if (!IS_ERR(root))
++ root->d_sb->s_iflags |= SB_I_NOEXEC;
++ return root;
+ }
+
+ /* aio_setup
+diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
+index 6e0fedf..cf22f1e 100644
+--- a/fs/ceph/dir.c
++++ b/fs/ceph/dir.c
+@@ -597,7 +597,7 @@ static bool need_reset_readdir(struct ceph_file_info *fi, loff_t new_pos)
+ if (is_hash_order(new_pos)) {
+ /* no need to reset last_name for a forward seek when
+ * dentries are sotred in hash order */
+- } else if (fi->frag |= fpos_frag(new_pos)) {
++ } else if (fi->frag != fpos_frag(new_pos)) {
+ return true;
+ }
+ rinfo = fi->last_readdir ? &fi->last_readdir->r_reply_info : NULL;
+diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
+index d81f96a..656f68f 100644
+--- a/fs/nfs/callback_xdr.c
++++ b/fs/nfs/callback_xdr.c
+@@ -925,7 +925,7 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
+ if (hdr_arg.minorversion == 0) {
+ cps.clp = nfs4_find_client_ident(SVC_NET(rqstp), hdr_arg.cb_ident);
+ if (!cps.clp || !check_gss_callback_principal(cps.clp, rqstp))
+- return rpc_drop_reply;
++ goto out_invalidcred;
+ }
+
+ cps.minorversion = hdr_arg.minorversion;
+@@ -953,6 +953,10 @@ static __be32 nfs4_callback_compound(struct svc_rqst *rqstp, void *argp, void *r
+ nfs_put_client(cps.clp);
+ dprintk("%s: done, status = %u\n", __func__, ntohl(status));
+ return rpc_success;
++
++out_invalidcred:
++ pr_warn_ratelimited("NFS: NFSv4 callback contains invalid cred\n");
++ return rpc_autherr_badcred;
+ }
+
+ /*
+diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c
+index aa59757..b4c1407 100644
+--- a/fs/nfs/filelayout/filelayout.c
++++ b/fs/nfs/filelayout/filelayout.c
+@@ -375,8 +375,7 @@ static int filelayout_commit_done_cb(struct rpc_task *task,
+ return -EAGAIN;
+ }
+
+- if (data->verf.committed == NFS_UNSTABLE)
+- pnfs_set_layoutcommit(data->inode, data->lseg, data->lwb);
++ pnfs_set_layoutcommit(data->inode, data->lseg, data->lwb);
+
+ return 0;
+ }
+diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
+index 6da14ae..1c15966 100644
+--- a/fs/nfs/flexfilelayout/flexfilelayout.c
++++ b/fs/nfs/flexfilelayout/flexfilelayout.c
+@@ -37,6 +37,7 @@ ff_layout_alloc_layout_hdr(struct inode *inode, gfp_t gfp_flags)
+ if (ffl) {
+ INIT_LIST_HEAD(&ffl->error_list);
+ INIT_LIST_HEAD(&ffl->mirrors);
++ ffl->last_report_time = ktime_get();
+ return &ffl->generic_hdr;
+ } else
+ return NULL;
+@@ -640,19 +641,18 @@ nfs4_ff_layoutstat_start_io(struct nfs4_ff_layout_mirror *mirror,
+ {
+ static const ktime_t notime = {0};
+ s64 report_interval = FF_LAYOUTSTATS_REPORT_INTERVAL;
++ struct nfs4_flexfile_layout *ffl = FF_LAYOUT_FROM_HDR(mirror->layout);
+
+ nfs4_ff_start_busy_timer(&layoutstat->busy_timer, now);
+ if (ktime_equal(mirror->start_time, notime))
+ mirror->start_time = now;
+- if (ktime_equal(mirror->last_report_time, notime))
+- mirror->last_report_time = now;
+ if (mirror->report_interval != 0)
+ report_interval = (s64)mirror->report_interval * 1000LL;
+ else if (layoutstats_timer != 0)
+ report_interval = (s64)layoutstats_timer * 1000LL;
+- if (ktime_to_ms(ktime_sub(now, mirror->last_report_time)) >=
++ if (ktime_to_ms(ktime_sub(now, ffl->last_report_time)) >=
+ report_interval) {
+- mirror->last_report_time = now;
++ ffl->last_report_time = now;
+ return true;
+ }
+
+@@ -1529,8 +1529,7 @@ static int ff_layout_commit_done_cb(struct rpc_task *task,
+ return -EAGAIN;
+ }
+
+- if (data->verf.committed == NFS_UNSTABLE
+- && ff_layout_need_layoutcommit(data->lseg))
++ if (ff_layout_need_layoutcommit(data->lseg))
+ pnfs_set_layoutcommit(data->inode, data->lseg, data->lwb);
+
+ return 0;
+diff --git a/fs/nfs/flexfilelayout/flexfilelayout.h b/fs/nfs/flexfilelayout/flexfilelayout.h
+index 1bcdb15..3ee0c9f 100644
+--- a/fs/nfs/flexfilelayout/flexfilelayout.h
++++ b/fs/nfs/flexfilelayout/flexfilelayout.h
+@@ -84,7 +84,6 @@ struct nfs4_ff_layout_mirror {
+ struct nfs4_ff_layoutstat read_stat;
+ struct nfs4_ff_layoutstat write_stat;
+ ktime_t start_time;
+- ktime_t last_report_time;
+ u32 report_interval;
+ };
+
+@@ -101,6 +100,7 @@ struct nfs4_flexfile_layout {
+ struct pnfs_ds_commit_info commit_info;
+ struct list_head mirrors;
+ struct list_head error_list; /* nfs4_ff_layout_ds_err */
++ ktime_t last_report_time; /* Layoutstat report times */
+ };
+
+ static inline struct nfs4_flexfile_layout *
+diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
+index e2320c6..00fd0c7 100644
+--- a/fs/nfs/nfs4proc.c
++++ b/fs/nfs/nfs4proc.c
+@@ -4393,7 +4393,8 @@ static void nfs4_proc_read_setup(struct nfs_pgio_header *hdr,
+ struct rpc_message *msg)
+ {
+ hdr->timestamp = jiffies;
+- hdr->pgio_done_cb = nfs4_read_done_cb;
++ if (!hdr->pgio_done_cb)
++ hdr->pgio_done_cb = nfs4_read_done_cb;
+ msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_READ];
+ nfs4_init_sequence(&hdr->args.seq_args, &hdr->res.seq_res, 0);
+ }
+diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
+index 45d6110..ec9ddef 100644
+--- a/fs/pstore/inode.c
++++ b/fs/pstore/inode.c
+@@ -178,7 +178,6 @@ static loff_t pstore_file_llseek(struct file *file, loff_t off, int whence)
+ }
+
+ static const struct file_operations pstore_file_operations = {
+- .owner = THIS_MODULE,
+ .open = pstore_file_open,
+ .read = pstore_file_read,
+ .llseek = pstore_file_llseek,
+diff --git a/include/linux/can/dev.h b/include/linux/can/dev.h
+index 5261751..5f527094 100644
+--- a/include/linux/can/dev.h
++++ b/include/linux/can/dev.h
+@@ -32,6 +32,7 @@ enum can_mode {
+ * CAN common private data
+ */
+ struct can_priv {
++ struct net_device *dev;
+ struct can_device_stats can_stats;
+
+ struct can_bittiming bittiming, data_bittiming;
+@@ -47,7 +48,7 @@ struct can_priv {
+ u32 ctrlmode_static; /* static enabled options for driver/hardware */
+
+ int restart_ms;
+- struct timer_list restart_timer;
++ struct delayed_work restart_work;
+
+ int (*do_set_bittiming)(struct net_device *dev);
+ int (*do_set_data_bittiming)(struct net_device *dev);
+diff --git a/include/linux/nvmem-consumer.h b/include/linux/nvmem-consumer.h
+index 9bb77d3..c2256d7 100644
+--- a/include/linux/nvmem-consumer.h
++++ b/include/linux/nvmem-consumer.h
+@@ -74,7 +74,7 @@ static inline void nvmem_cell_put(struct nvmem_cell *cell)
+ {
+ }
+
+-static inline char *nvmem_cell_read(struct nvmem_cell *cell, size_t *len)
++static inline void *nvmem_cell_read(struct nvmem_cell *cell, size_t *len)
+ {
+ return ERR_PTR(-ENOSYS);
+ }
+diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
+index d1faa01..b71b258 100644
+--- a/include/linux/slub_def.h
++++ b/include/linux/slub_def.h
+@@ -114,15 +114,17 @@ static inline void sysfs_slab_remove(struct kmem_cache *s)
+ void object_err(struct kmem_cache *s, struct page *page,
+ u8 *object, char *reason);
+
++void *fixup_red_left(struct kmem_cache *s, void *p);
++
+ static inline void *nearest_obj(struct kmem_cache *cache, struct page *page,
+ void *x) {
+ void *object = x - (x - page_address(page)) % cache->size;
+ void *last_object = page_address(page) +
+ (page->objects - 1) * cache->size;
+- if (unlikely(object > last_object))
+- return last_object;
+- else
+- return object;
++ void *result = (unlikely(object > last_object)) ? last_object : object;
++
++ result = fixup_red_left(cache, result);
++ return result;
+ }
+
+ #endif /* _LINUX_SLUB_DEF_H */
+diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
+index fa7bc29..ef17db6c 100644
+--- a/include/linux/sysctl.h
++++ b/include/linux/sysctl.h
+@@ -41,6 +41,8 @@ extern int proc_dostring(struct ctl_table *, int,
+ void __user *, size_t *, loff_t *);
+ extern int proc_dointvec(struct ctl_table *, int,
+ void __user *, size_t *, loff_t *);
++extern int proc_douintvec(struct ctl_table *, int,
++ void __user *, size_t *, loff_t *);
+ extern int proc_dointvec_minmax(struct ctl_table *, int,
+ void __user *, size_t *, loff_t *);
+ extern int proc_dointvec_jiffies(struct ctl_table *, int,
+diff --git a/include/scsi/scsi_transport_sas.h b/include/scsi/scsi_transport_sas.h
+index 13c0b2b..31ae074 100644
+--- a/include/scsi/scsi_transport_sas.h
++++ b/include/scsi/scsi_transport_sas.h
+@@ -15,8 +15,14 @@ static inline int is_sas_attached(struct scsi_device *sdev)
+ {
+ return 0;
+ }
++
++static inline int scsi_is_sas_rphy(const struct device *sdev)
++{
++ return 0;
++}
+ #else
+ extern int is_sas_attached(struct scsi_device *sdev);
++extern int scsi_is_sas_rphy(const struct device *);
+ #endif
+
+ static inline int sas_protocol_ata(enum sas_protocol proto)
+@@ -202,7 +208,6 @@ extern int sas_rphy_add(struct sas_rphy *);
+ extern void sas_rphy_remove(struct sas_rphy *);
+ extern void sas_rphy_delete(struct sas_rphy *);
+ extern void sas_rphy_unlink(struct sas_rphy *);
+-extern int scsi_is_sas_rphy(const struct device *);
+
+ struct sas_port *sas_port_alloc(struct device *, int);
+ struct sas_port *sas_port_alloc_num(struct device *);
+diff --git a/kernel/cgroup.c b/kernel/cgroup.c
+index 129a7ca..b1e0cbb 100644
+--- a/kernel/cgroup.c
++++ b/kernel/cgroup.c
+@@ -3452,9 +3452,28 @@ static ssize_t cgroup_subtree_control_write(struct kernfs_open_file *of,
+ * Except for the root, subtree_control must be zero for a cgroup
+ * with tasks so that child cgroups don't compete against tasks.
+ */
+- if (enable && cgroup_parent(cgrp) && !list_empty(&cgrp->cset_links)) {
+- ret = -EBUSY;
+- goto out_unlock;
++ if (enable && cgroup_parent(cgrp)) {
++ struct cgrp_cset_link *link;
++
++ /*
++ * Because namespaces pin csets too, @cgrp->cset_links
++ * might not be empty even when @cgrp is empty. Walk and
++ * verify each cset.
++ */
++ spin_lock_irq(&css_set_lock);
++
++ ret = 0;
++ list_for_each_entry(link, &cgrp->cset_links, cset_link) {
++ if (css_set_populated(link->cset)) {
++ ret = -EBUSY;
++ break;
++ }
++ }
++
++ spin_unlock_irq(&css_set_lock);
++
++ if (ret)
++ goto out_unlock;
+ }
+
+ /* save and update control masks and prepare csses */
+@@ -3905,7 +3924,9 @@ void cgroup_file_notify(struct cgroup_file *cfile)
+ * cgroup_task_count - count the number of tasks in a cgroup.
+ * @cgrp: the cgroup in question
+ *
+- * Return the number of tasks in the cgroup.
++ * Return the number of tasks in the cgroup. The returned number can be
++ * higher than the actual number of tasks due to css_set references from
++ * namespace roots and temporary usages.
+ */
+ static int cgroup_task_count(const struct cgroup *cgrp)
+ {
+diff --git a/kernel/cpuset.c b/kernel/cpuset.c
+index 40b6ed5..8cee962 100644
+--- a/kernel/cpuset.c
++++ b/kernel/cpuset.c
+@@ -325,8 +325,7 @@ static struct file_system_type cpuset_fs_type = {
+ /*
+ * Return in pmask the portion of a cpusets's cpus_allowed that
+ * are online. If none are online, walk up the cpuset hierarchy
+- * until we find one that does have some online cpus. The top
+- * cpuset always has some cpus online.
++ * until we find one that does have some online cpus.
+ *
+ * One way or another, we guarantee to return some non-empty subset
+ * of cpu_online_mask.
+@@ -335,8 +334,20 @@ static struct file_system_type cpuset_fs_type = {
+ */
+ static void guarantee_online_cpus(struct cpuset *cs, struct cpumask *pmask)
+ {
+- while (!cpumask_intersects(cs->effective_cpus, cpu_online_mask))
++ while (!cpumask_intersects(cs->effective_cpus, cpu_online_mask)) {
+ cs = parent_cs(cs);
++ if (unlikely(!cs)) {
++ /*
++ * The top cpuset doesn't have any online cpu as a
++ * consequence of a race between cpuset_hotplug_work
++ * and cpu hotplug notifier. But we know the top
++ * cpuset's effective_cpus is on its way to to be
++ * identical to cpu_online_mask.
++ */
++ cpumask_copy(pmask, cpu_online_mask);
++ return;
++ }
++ }
+ cpumask_and(pmask, cs->effective_cpus, cpu_online_mask);
+ }
+
+diff --git a/kernel/events/core.c b/kernel/events/core.c
+index e68c0a7..31c1520 100644
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -6064,7 +6064,7 @@ static int __perf_pmu_output_stop(void *info)
+ {
+ struct perf_event *event = info;
+ struct pmu *pmu = event->pmu;
+- struct perf_cpu_context *cpuctx = get_cpu_ptr(pmu->pmu_cpu_context);
++ struct perf_cpu_context *cpuctx = this_cpu_ptr(pmu->pmu_cpu_context);
+ struct remote_output ro = {
+ .rb = event->rb,
+ };
+diff --git a/kernel/fork.c b/kernel/fork.c
+index 74fd390..d6404ed 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -938,14 +938,12 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm)
+ deactivate_mm(tsk, mm);
+
+ /*
+- * If we're exiting normally, clear a user-space tid field if
+- * requested. We leave this alone when dying by signal, to leave
+- * the value intact in a core dump, and to save the unnecessary
+- * trouble, say, a killed vfork parent shouldn't touch this mm.
+- * Userland only wants this done for a sys_exit.
++ * Signal userspace if we're not exiting with a core dump
++ * because we want to leave the value intact for debugging
++ * purposes.
+ */
+ if (tsk->clear_child_tid) {
+- if (!(tsk->flags & PF_SIGNALED) &&
++ if (!(tsk->signal->flags & SIGNAL_GROUP_COREDUMP) &&
+ atomic_read(&mm->mm_users) > 1) {
+ /*
+ * We don't check the error code - if userspace has
+diff --git a/kernel/printk/braille.c b/kernel/printk/braille.c
+index 276762f..d5760c4 100644
+--- a/kernel/printk/braille.c
++++ b/kernel/printk/braille.c
+@@ -9,10 +9,10 @@
+
+ char *_braille_console_setup(char **str, char **brl_options)
+ {
+- if (!memcmp(*str, "brl,", 4)) {
++ if (!strncmp(*str, "brl,", 4)) {
+ *brl_options = "";
+ *str += 4;
+- } else if (!memcmp(str, "brl=", 4)) {
++ } else if (!strncmp(*str, "brl=", 4)) {
+ *brl_options = *str + 4;
+ *str = strchr(*brl_options, ',');
+ if (!*str)
+diff --git a/kernel/rcu/rcuperf.c b/kernel/rcu/rcuperf.c
+index 3cee0d8..8ce4eec 100644
+--- a/kernel/rcu/rcuperf.c
++++ b/kernel/rcu/rcuperf.c
+@@ -58,7 +58,7 @@ MODULE_AUTHOR("Paul E. McKenney <paulmck@linux.vnet.ibm.com>");
+ #define VERBOSE_PERFOUT_ERRSTRING(s) \
+ do { if (verbose) pr_alert("%s" PERF_FLAG "!!! %s\n", perf_type, s); } while (0)
+
+-torture_param(bool, gp_exp, true, "Use expedited GP wait primitives");
++torture_param(bool, gp_exp, false, "Use expedited GP wait primitives");
+ torture_param(int, holdoff, 10, "Holdoff time before test start (s)");
+ torture_param(int, nreaders, -1, "Number of RCU reader threads");
+ torture_param(int, nwriters, -1, "Number of RCU updater threads");
+@@ -363,8 +363,6 @@ rcu_perf_writer(void *arg)
+ u64 *wdpp = writer_durations[me];
+
+ VERBOSE_PERFOUT_STRING("rcu_perf_writer task started");
+- WARN_ON(rcu_gp_is_expedited() && !rcu_gp_is_normal() && !gp_exp);
+- WARN_ON(rcu_gp_is_normal() && gp_exp);
+ WARN_ON(!wdpp);
+ set_cpus_allowed_ptr(current, cpumask_of(me % nr_cpu_ids));
+ sp.sched_priority = 1;
+@@ -631,6 +629,16 @@ rcu_perf_init(void)
+ firsterr = -ENOMEM;
+ goto unwind;
+ }
++ if (rcu_gp_is_expedited() && !rcu_gp_is_normal() && !gp_exp) {
++ VERBOSE_PERFOUT_ERRSTRING("All grace periods expedited, no normal ones to measure!");
++ firsterr = -EINVAL;
++ goto unwind;
++ }
++ if (rcu_gp_is_normal() && gp_exp) {
++ VERBOSE_PERFOUT_ERRSTRING("All grace periods normal, no expedited ones to measure!");
++ firsterr = -EINVAL;
++ goto unwind;
++ }
+ for (i = 0; i < nrealwriters; i++) {
+ writer_durations[i] =
+ kcalloc(MAX_MEAS, sizeof(*writer_durations[i]),
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 38eacc3..e1422c1 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -7255,7 +7255,6 @@ static void sched_rq_cpu_starting(unsigned int cpu)
+ struct rq *rq = cpu_rq(cpu);
+
+ rq->calc_load_update = calc_load_update;
+- account_reset_rq(rq);
+ update_max_interval();
+ }
+
+diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
+index 898c0d2..b4f3edf 100644
+--- a/kernel/sched/sched.h
++++ b/kernel/sched/sched.h
+@@ -1809,16 +1809,3 @@ static inline void cpufreq_trigger_update(u64 time) {}
+ #else /* arch_scale_freq_capacity */
+ #define arch_scale_freq_invariant() (false)
+ #endif
+-
+-static inline void account_reset_rq(struct rq *rq)
+-{
+-#ifdef CONFIG_IRQ_TIME_ACCOUNTING
+- rq->prev_irq_time = 0;
+-#endif
+-#ifdef CONFIG_PARAVIRT
+- rq->prev_steal_time = 0;
+-#endif
+-#ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
+- rq->prev_steal_time_rq = 0;
+-#endif
+-}
+diff --git a/kernel/sysctl.c b/kernel/sysctl.c
+index 87b2fc3..b58e447 100644
+--- a/kernel/sysctl.c
++++ b/kernel/sysctl.c
+@@ -2122,6 +2122,21 @@ static int do_proc_dointvec_conv(bool *negp, unsigned long *lvalp,
+ return 0;
+ }
+
++static int do_proc_douintvec_conv(bool *negp, unsigned long *lvalp,
++ int *valp,
++ int write, void *data)
++{
++ if (write) {
++ if (*negp)
++ return -EINVAL;
++ *valp = *lvalp;
++ } else {
++ unsigned int val = *valp;
++ *lvalp = (unsigned long)val;
++ }
++ return 0;
++}
++
+ static const char proc_wspace_sep[] = { ' ', '\t', '\n' };
+
+ static int __do_proc_dointvec(void *tbl_data, struct ctl_table *table,
+@@ -2241,8 +2256,27 @@ static int do_proc_dointvec(struct ctl_table *table, int write,
+ int proc_dointvec(struct ctl_table *table, int write,
+ void __user *buffer, size_t *lenp, loff_t *ppos)
+ {
+- return do_proc_dointvec(table,write,buffer,lenp,ppos,
+- NULL,NULL);
++ return do_proc_dointvec(table, write, buffer, lenp, ppos, NULL, NULL);
++}
++
++/**
++ * proc_douintvec - read a vector of unsigned integers
++ * @table: the sysctl table
++ * @write: %TRUE if this is a write to the sysctl file
++ * @buffer: the user buffer
++ * @lenp: the size of the user buffer
++ * @ppos: file position
++ *
++ * Reads/writes up to table->maxlen/sizeof(unsigned int) unsigned integer
++ * values from/to the user buffer, treated as an ASCII string.
++ *
++ * Returns 0 on success.
++ */
++int proc_douintvec(struct ctl_table *table, int write,
++ void __user *buffer, size_t *lenp, loff_t *ppos)
++{
++ return do_proc_dointvec(table, write, buffer, lenp, ppos,
++ do_proc_douintvec_conv, NULL);
+ }
+
+ /*
+@@ -2840,6 +2874,12 @@ int proc_dointvec(struct ctl_table *table, int write,
+ return -ENOSYS;
+ }
+
++int proc_douintvec(struct ctl_table *table, int write,
++ void __user *buffer, size_t *lenp, loff_t *ppos)
++{
++ return -ENOSYS;
++}
++
+ int proc_dointvec_minmax(struct ctl_table *table, int write,
+ void __user *buffer, size_t *lenp, loff_t *ppos)
+ {
+@@ -2885,6 +2925,7 @@ int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int write,
+ * exception granted :-)
+ */
+ EXPORT_SYMBOL(proc_dointvec);
++EXPORT_SYMBOL(proc_douintvec);
+ EXPORT_SYMBOL(proc_dointvec_jiffies);
+ EXPORT_SYMBOL(proc_dointvec_minmax);
+ EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
+diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
+index fafeaf8..f4b86e8 100644
+--- a/kernel/trace/Kconfig
++++ b/kernel/trace/Kconfig
+@@ -542,6 +542,7 @@ config HIST_TRIGGERS
+ bool "Histogram triggers"
+ depends on ARCH_HAVE_NMI_SAFE_CMPXCHG
+ select TRACING_MAP
++ select TRACING
+ default n
+ help
+ Hist triggers allow one or more arbitrary trace event fields
+diff --git a/lib/test_hash.c b/lib/test_hash.c
+index c9549c8..a06ac37 100644
+--- a/lib/test_hash.c
++++ b/lib/test_hash.c
+@@ -143,7 +143,7 @@ static int __init
+ test_hash_init(void)
+ {
+ char buf[SIZE+1];
+- u32 string_or = 0, hash_or[2][33] = { 0 };
++ u32 string_or = 0, hash_or[2][33] = { { 0, } };
+ unsigned tests = 0;
+ unsigned long long h64 = 0;
+ int i, j;
+@@ -219,21 +219,27 @@ test_hash_init(void)
+ }
+
+ /* Issue notices about skipped tests. */
+-#ifndef HAVE_ARCH__HASH_32
+- pr_info("__hash_32() has no arch implementation to test.");
+-#elif HAVE_ARCH__HASH_32 != 1
++#ifdef HAVE_ARCH__HASH_32
++#if HAVE_ARCH__HASH_32 != 1
+ pr_info("__hash_32() is arch-specific; not compared to generic.");
+ #endif
+-#ifndef HAVE_ARCH_HASH_32
+- pr_info("hash_32() has no arch implementation to test.");
+-#elif HAVE_ARCH_HASH_32 != 1
++#else
++ pr_info("__hash_32() has no arch implementation to test.");
++#endif
++#ifdef HAVE_ARCH_HASH_32
++#if HAVE_ARCH_HASH_32 != 1
+ pr_info("hash_32() is arch-specific; not compared to generic.");
+ #endif
+-#ifndef HAVE_ARCH_HASH_64
+- pr_info("hash_64() has no arch implementation to test.");
+-#elif HAVE_ARCH_HASH_64 != 1
++#else
++ pr_info("hash_32() has no arch implementation to test.");
++#endif
++#ifdef HAVE_ARCH_HASH_64
++#if HAVE_ARCH_HASH_64 != 1
+ pr_info("hash_64() is arch-specific; not compared to generic.");
+ #endif
++#else
++ pr_info("hash_64() has no arch implementation to test.");
++#endif
+
+ pr_notice("%u tests passed.", tests);
+
+diff --git a/mm/ksm.c b/mm/ksm.c
+index 4786b41..443bac3 100644
+--- a/mm/ksm.c
++++ b/mm/ksm.c
+@@ -283,7 +283,8 @@ static inline struct rmap_item *alloc_rmap_item(void)
+ {
+ struct rmap_item *rmap_item;
+
+- rmap_item = kmem_cache_zalloc(rmap_item_cache, GFP_KERNEL);
++ rmap_item = kmem_cache_zalloc(rmap_item_cache, GFP_KERNEL |
++ __GFP_NORETRY | __GFP_NOWARN);
+ if (rmap_item)
+ ksm_rmap_items++;
+ return rmap_item;
+diff --git a/mm/slub.c b/mm/slub.c
+index 7a6d268..b94fb36 100644
+--- a/mm/slub.c
++++ b/mm/slub.c
+@@ -124,7 +124,7 @@ static inline int kmem_cache_debug(struct kmem_cache *s)
+ #endif
+ }
+
+-static inline void *fixup_red_left(struct kmem_cache *s, void *p)
++inline void *fixup_red_left(struct kmem_cache *s, void *p)
+ {
+ if (kmem_cache_debug(s) && s->flags & SLAB_RED_ZONE)
+ p += s->red_left_pad;
+diff --git a/net/batman-adv/bat_v_elp.c b/net/batman-adv/bat_v_elp.c
+index df42eb1..63762b3 100644
+--- a/net/batman-adv/bat_v_elp.c
++++ b/net/batman-adv/bat_v_elp.c
+@@ -334,7 +334,7 @@ int batadv_v_elp_iface_enable(struct batadv_hard_iface *hard_iface)
+ goto out;
+
+ skb_reserve(hard_iface->bat_v.elp_skb, ETH_HLEN + NET_IP_ALIGN);
+- elp_buff = skb_push(hard_iface->bat_v.elp_skb, BATADV_ELP_HLEN);
++ elp_buff = skb_put(hard_iface->bat_v.elp_skb, BATADV_ELP_HLEN);
+ elp_packet = (struct batadv_elp_packet *)elp_buff;
+ memset(elp_packet, 0, BATADV_ELP_HLEN);
+
+diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
+index ab8c4f9..1da7bfc 100644
+--- a/net/batman-adv/originator.c
++++ b/net/batman-adv/originator.c
+@@ -251,10 +251,8 @@ static void batadv_neigh_node_release(struct kref *ref)
+ struct hlist_node *node_tmp;
+ struct batadv_neigh_node *neigh_node;
+ struct batadv_neigh_ifinfo *neigh_ifinfo;
+- struct batadv_algo_ops *bao;
+
+ neigh_node = container_of(ref, struct batadv_neigh_node, refcount);
+- bao = neigh_node->orig_node->bat_priv->bat_algo_ops;
+
+ hlist_for_each_entry_safe(neigh_ifinfo, node_tmp,
+ &neigh_node->ifinfo_list, list) {
+@@ -263,9 +261,6 @@ static void batadv_neigh_node_release(struct kref *ref)
+
+ batadv_hardif_neigh_put(neigh_node->hardif_neigh);
+
+- if (bao->bat_neigh_free)
+- bao->bat_neigh_free(neigh_node);
+-
+ batadv_hardif_put(neigh_node->if_incoming);
+
+ kfree_rcu(neigh_node, rcu);
+diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
+index bfac086..69d425d 100644
+--- a/net/batman-adv/routing.c
++++ b/net/batman-adv/routing.c
+@@ -456,6 +456,29 @@ static int batadv_check_unicast_packet(struct batadv_priv *bat_priv,
+ }
+
+ /**
++ * batadv_last_bonding_get - Get last_bonding_candidate of orig_node
++ * @orig_node: originator node whose last bonding candidate should be retrieved
++ *
++ * Return: last bonding candidate of router or NULL if not found
++ *
++ * The object is returned with refcounter increased by 1.
++ */
++static struct batadv_orig_ifinfo *
++batadv_last_bonding_get(struct batadv_orig_node *orig_node)
++{
++ struct batadv_orig_ifinfo *last_bonding_candidate;
++
++ spin_lock_bh(&orig_node->neigh_list_lock);
++ last_bonding_candidate = orig_node->last_bonding_candidate;
++
++ if (last_bonding_candidate)
++ kref_get(&last_bonding_candidate->refcount);
++ spin_unlock_bh(&orig_node->neigh_list_lock);
++
++ return last_bonding_candidate;
++}
++
++/**
+ * batadv_last_bonding_replace - Replace last_bonding_candidate of orig_node
+ * @orig_node: originator node whose bonding candidates should be replaced
+ * @new_candidate: new bonding candidate or NULL
+@@ -525,7 +548,7 @@ batadv_find_router(struct batadv_priv *bat_priv,
+ * router - obviously there are no other candidates.
+ */
+ rcu_read_lock();
+- last_candidate = orig_node->last_bonding_candidate;
++ last_candidate = batadv_last_bonding_get(orig_node);
+ if (last_candidate)
+ last_cand_router = rcu_dereference(last_candidate->router);
+
+@@ -617,6 +640,9 @@ next:
+ batadv_orig_ifinfo_put(next_candidate);
+ }
+
++ if (last_candidate)
++ batadv_orig_ifinfo_put(last_candidate);
++
+ return router;
+ }
+
+diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
+index 74d865a..40aed16 100644
+--- a/net/batman-adv/types.h
++++ b/net/batman-adv/types.h
+@@ -1284,8 +1284,6 @@ struct batadv_forw_packet {
+ * better than neigh2 for their respective outgoing interface from the metric
+ * prospective
+ * @bat_neigh_print: print the single hop neighbor list (optional)
+- * @bat_neigh_free: free the resources allocated by the routing algorithm for a
+- * neigh_node object
+ * @bat_orig_print: print the originator table (optional)
+ * @bat_orig_free: free the resources allocated by the routing algorithm for an
+ * orig_node object
+@@ -1316,7 +1314,6 @@ struct batadv_algo_ops {
+ struct batadv_neigh_node *neigh2,
+ struct batadv_hard_iface *if_outgoing2);
+ void (*bat_neigh_print)(struct batadv_priv *priv, struct seq_file *seq);
+- void (*bat_neigh_free)(struct batadv_neigh_node *neigh);
+ /* orig_node handling API */
+ void (*bat_orig_print)(struct batadv_priv *priv, struct seq_file *seq,
+ struct batadv_hard_iface *hard_iface);
+diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
+index eb4f5f2..106643e 100644
+--- a/net/bluetooth/l2cap_core.c
++++ b/net/bluetooth/l2cap_core.c
+@@ -32,6 +32,7 @@
+
+ #include <linux/debugfs.h>
+ #include <linux/crc16.h>
++#include <linux/filter.h>
+
+ #include <net/bluetooth/bluetooth.h>
+ #include <net/bluetooth/hci_core.h>
+@@ -5835,6 +5836,9 @@ static int l2cap_reassemble_sdu(struct l2cap_chan *chan, struct sk_buff *skb,
+ if (chan->sdu)
+ break;
+
++ if (!pskb_may_pull(skb, L2CAP_SDULEN_SIZE))
++ break;
++
+ chan->sdu_len = get_unaligned_le16(skb->data);
+ skb_pull(skb, L2CAP_SDULEN_SIZE);
+
+@@ -6610,6 +6614,10 @@ static int l2cap_data_rcv(struct l2cap_chan *chan, struct sk_buff *skb)
+ goto drop;
+ }
+
++ if ((chan->mode == L2CAP_MODE_ERTM ||
++ chan->mode == L2CAP_MODE_STREAMING) && sk_filter(chan->data, skb))
++ goto drop;
++
+ if (!control->sframe) {
+ int err;
+
+diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
+index 1842141..a8ba752 100644
+--- a/net/bluetooth/l2cap_sock.c
++++ b/net/bluetooth/l2cap_sock.c
+@@ -1019,7 +1019,7 @@ static int l2cap_sock_recvmsg(struct socket *sock, struct msghdr *msg,
+ goto done;
+
+ if (pi->rx_busy_skb) {
+- if (!sock_queue_rcv_skb(sk, pi->rx_busy_skb))
++ if (!__sock_queue_rcv_skb(sk, pi->rx_busy_skb))
+ pi->rx_busy_skb = NULL;
+ else
+ goto done;
+@@ -1270,7 +1270,17 @@ static int l2cap_sock_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
+ goto done;
+ }
+
+- err = sock_queue_rcv_skb(sk, skb);
++ if (chan->mode != L2CAP_MODE_ERTM &&
++ chan->mode != L2CAP_MODE_STREAMING) {
++ /* Even if no filter is attached, we could potentially
++ * get errors from security modules, etc.
++ */
++ err = sk_filter(sk, skb);
++ if (err)
++ goto done;
++ }
++
++ err = __sock_queue_rcv_skb(sk, skb);
+
+ /* For ERTM, handle one skb that doesn't fit into the recv
+ * buffer. This is important to do because the data frames
+diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
+index 8bad2ad..5f0ed8c 100644
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -1330,8 +1330,12 @@ out:
+ spin_unlock_bh(&txqi->queue.lock);
+
+ if (skb && skb_has_frag_list(skb) &&
+- !ieee80211_hw_check(&local->hw, TX_FRAG_LIST))
+- skb_linearize(skb);
++ !ieee80211_hw_check(&local->hw, TX_FRAG_LIST)) {
++ if (skb_linearize(skb)) {
++ ieee80211_free_txskb(&local->hw, skb);
++ return NULL;
++ }
++ }
+
+ return skb;
+ }
+diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
+index 2808d55..0294ada 100644
+--- a/net/sunrpc/clnt.c
++++ b/net/sunrpc/clnt.c
+@@ -453,7 +453,7 @@ static struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args,
+ struct rpc_xprt_switch *xps;
+
+ if (args->bc_xprt && args->bc_xprt->xpt_bc_xps) {
+- WARN_ON(args->protocol != XPRT_TRANSPORT_BC_TCP);
++ WARN_ON_ONCE(!(args->protocol & XPRT_TRANSPORT_BC));
+ xps = args->bc_xprt->xpt_bc_xps;
+ xprt_switch_get(xps);
+ } else {
+@@ -520,7 +520,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
+ char servername[48];
+
+ if (args->bc_xprt) {
+- WARN_ON(args->protocol != XPRT_TRANSPORT_BC_TCP);
++ WARN_ON_ONCE(!(args->protocol & XPRT_TRANSPORT_BC));
+ xprt = args->bc_xprt->xpt_bc_xprt;
+ if (xprt) {
+ xprt_get(xprt);
+diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
+index cc98528..c5b0cb4 100644
+--- a/net/sunrpc/svc.c
++++ b/net/sunrpc/svc.c
+@@ -1188,11 +1188,17 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
+ *statp = procp->pc_func(rqstp, rqstp->rq_argp, rqstp->rq_resp);
+
+ /* Encode reply */
+- if (test_bit(RQ_DROPME, &rqstp->rq_flags)) {
++ if (*statp == rpc_drop_reply ||
++ test_bit(RQ_DROPME, &rqstp->rq_flags)) {
+ if (procp->pc_release)
+ procp->pc_release(rqstp, NULL, rqstp->rq_resp);
+ goto dropit;
+ }
++ if (*statp == rpc_autherr_badcred) {
++ if (procp->pc_release)
++ procp->pc_release(rqstp, NULL, rqstp->rq_resp);
++ goto err_bad_auth;
++ }
+ if (*statp == rpc_success &&
+ (xdr = procp->pc_encode) &&
+ !xdr(rqstp, resv->iov_base+resv->iov_len, rqstp->rq_resp)) {
+diff --git a/net/sunrpc/xprtrdma/fmr_ops.c b/net/sunrpc/xprtrdma/fmr_ops.c
+index 6326ebe..c748ff6 100644
+--- a/net/sunrpc/xprtrdma/fmr_ops.c
++++ b/net/sunrpc/xprtrdma/fmr_ops.c
+@@ -63,9 +63,12 @@ static int
+ __fmr_unmap(struct rpcrdma_mw *mw)
+ {
+ LIST_HEAD(l);
++ int rc;
+
+ list_add(&mw->fmr.fmr->list, &l);
+- return ib_unmap_fmr(&l);
++ rc = ib_unmap_fmr(&l);
++ list_del_init(&mw->fmr.fmr->list);
++ return rc;
+ }
+
+ /* Deferred reset of a single FMR. Generate a fresh rkey by
+@@ -267,7 +270,7 @@ fmr_op_unmap_sync(struct rpcrdma_xprt *r_xprt, struct rpcrdma_req *req)
+ seg = &req->rl_segments[i];
+ mw = seg->rl_mw;
+
+- list_add(&mw->fmr.fmr->list, &unmap_list);
++ list_add_tail(&mw->fmr.fmr->list, &unmap_list);
+
+ i += seg->mr_nsegs;
+ }
+@@ -280,7 +283,9 @@ fmr_op_unmap_sync(struct rpcrdma_xprt *r_xprt, struct rpcrdma_req *req)
+ */
+ for (i = 0, nchunks = req->rl_nchunks; nchunks; nchunks--) {
+ seg = &req->rl_segments[i];
++ mw = seg->rl_mw;
+
++ list_del_init(&mw->fmr.fmr->list);
+ __fmr_dma_unmap(r_xprt, seg);
+ rpcrdma_put_mw(r_xprt, seg->rl_mw);
+
+diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c
+index 42396a7..a68f031 100644
+--- a/scripts/recordmcount.c
++++ b/scripts/recordmcount.c
+@@ -363,6 +363,7 @@ is_mcounted_section_name(char const *const txtname)
+ strcmp(".sched.text", txtname) == 0 ||
+ strcmp(".spinlock.text", txtname) == 0 ||
+ strcmp(".irqentry.text", txtname) == 0 ||
++ strcmp(".softirqentry.text", txtname) == 0 ||
+ strcmp(".kprobes.text", txtname) == 0 ||
+ strcmp(".text.unlikely", txtname) == 0;
+ }
+diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
+index 96e2486..2d48011 100755
+--- a/scripts/recordmcount.pl
++++ b/scripts/recordmcount.pl
+@@ -134,6 +134,7 @@ my %text_sections = (
+ ".sched.text" => 1,
+ ".spinlock.text" => 1,
+ ".irqentry.text" => 1,
++ ".softirqentry.text" => 1,
+ ".kprobes.text" => 1,
+ ".text.unlikely" => 1,
+ );
+diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
+index 56fefbd..ed62748 100644
+--- a/sound/pci/hda/patch_conexant.c
++++ b/sound/pci/hda/patch_conexant.c
+@@ -261,6 +261,7 @@ enum {
+ CXT_FIXUP_HP_530,
+ CXT_FIXUP_CAP_MIX_AMP_5047,
+ CXT_FIXUP_MUTE_LED_EAPD,
++ CXT_FIXUP_HP_SPECTRE,
+ };
+
+ /* for hda_fixup_thinkpad_acpi() */
+@@ -765,6 +766,14 @@ static const struct hda_fixup cxt_fixups[] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = cxt_fixup_mute_led_eapd,
+ },
++ [CXT_FIXUP_HP_SPECTRE] = {
++ .type = HDA_FIXUP_PINS,
++ .v.pins = (const struct hda_pintbl[]) {
++ /* enable NID 0x1d for the speaker on top */
++ { 0x1d, 0x91170111 },
++ { }
++ }
++ },
+ };
+
+ static const struct snd_pci_quirk cxt5045_fixups[] = {
+@@ -814,6 +823,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
+ SND_PCI_QUIRK(0x1025, 0x0543, "Acer Aspire One 522", CXT_FIXUP_STEREO_DMIC),
+ SND_PCI_QUIRK(0x1025, 0x054c, "Acer Aspire 3830TG", CXT_FIXUP_ASPIRE_DMIC),
+ SND_PCI_QUIRK(0x1025, 0x054f, "Acer Aspire 4830T", CXT_FIXUP_ASPIRE_DMIC),
++ SND_PCI_QUIRK(0x103c, 0x8174, "HP Spectre x360", CXT_FIXUP_HP_SPECTRE),
+ SND_PCI_QUIRK(0x1043, 0x138d, "Asus", CXT_FIXUP_HEADPHONE_MIC_PIN),
+ SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT_FIXUP_OLPC_XO),
+ SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410),
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index eaee626..b1fa50a 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5790,6 +5790,13 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
+ {0x14, 0x90170110}, \
+ {0x15, 0x0221401f}
+
++#define ALC295_STANDARD_PINS \
++ {0x12, 0xb7a60130}, \
++ {0x14, 0x90170110}, \
++ {0x17, 0x21014020}, \
++ {0x18, 0x21a19030}, \
++ {0x21, 0x04211020}
++
+ #define ALC298_STANDARD_PINS \
+ {0x12, 0x90a60130}, \
+ {0x21, 0x03211020}
+@@ -5830,6 +5837,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ {0x14, 0x90170120},
+ {0x21, 0x02211030}),
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++ {0x14, 0x90170110},
++ {0x1b, 0x02011020},
++ {0x21, 0x0221101f}),
++ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+ {0x14, 0x90170130},
+ {0x1b, 0x01014020},
+ {0x21, 0x0221103f}),
+@@ -5895,6 +5906,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ {0x14, 0x90170120},
+ {0x21, 0x02211030}),
+ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++ {0x12, 0xb7a60130},
++ {0x14, 0x90170110},
++ {0x21, 0x02211020}),
++ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC256_STANDARD_PINS),
+ SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4,
+ {0x12, 0x90a60130},
+@@ -6005,6 +6020,8 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC292_STANDARD_PINS,
+ {0x13, 0x90a60140}),
++ SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
++ ALC295_STANDARD_PINS),
+ SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC298_STANDARD_PINS,
+ {0x17, 0x90170110}),
+diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
+index 06d8c26..d5a0327 100644
+--- a/sound/soc/intel/skylake/skl.c
++++ b/sound/soc/intel/skylake/skl.c
+@@ -659,8 +659,10 @@ static int skl_probe(struct pci_dev *pci,
+
+ skl->nhlt = skl_nhlt_init(bus->dev);
+
+- if (skl->nhlt == NULL)
++ if (skl->nhlt == NULL) {
++ err = -ENODEV;
+ goto out_free;
++ }
+
+ skl_nhlt_update_topology_bin(skl);
+
+diff --git a/sound/soc/omap/omap-mcpdm.c b/sound/soc/omap/omap-mcpdm.c
+index b837265..8d0d45d 100644
+--- a/sound/soc/omap/omap-mcpdm.c
++++ b/sound/soc/omap/omap-mcpdm.c
+@@ -390,8 +390,8 @@ static int omap_mcpdm_probe(struct snd_soc_dai *dai)
+ pm_runtime_get_sync(mcpdm->dev);
+ omap_mcpdm_write(mcpdm, MCPDM_REG_CTRL, 0x00);
+
+- ret = devm_request_irq(mcpdm->dev, mcpdm->irq, omap_mcpdm_irq_handler,
+- 0, "McPDM", (void *)mcpdm);
++ ret = request_irq(mcpdm->irq, omap_mcpdm_irq_handler, 0, "McPDM",
++ (void *)mcpdm);
+
+ pm_runtime_put_sync(mcpdm->dev);
+
+@@ -416,6 +416,7 @@ static int omap_mcpdm_remove(struct snd_soc_dai *dai)
+ {
+ struct omap_mcpdm *mcpdm = snd_soc_dai_get_drvdata(dai);
+
++ free_irq(mcpdm->irq, (void *)mcpdm);
+ pm_runtime_disable(mcpdm->dev);
+
+ return 0;
diff --git a/4.7.6/4420_grsecurity-3.1-4.7.6-201609301918.patch b/4.7.7/4420_grsecurity-3.1-4.7.7-201610101902.patch
index c2732fa..a850d0e 100644
--- a/4.7.6/4420_grsecurity-3.1-4.7.6-201609301918.patch
+++ b/4.7.7/4420_grsecurity-3.1-4.7.7-201610101902.patch
@@ -11,7 +11,7 @@ index 0c320bf..2be25f7 100644
#
# Top-level generic files
diff --git a/Documentation/dontdiff b/Documentation/dontdiff
-index 8ea834f..1462492 100644
+index 8ea834f..1855a02 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
@@ -3,9 +3,11 @@
@@ -192,12 +192,17 @@ index 8ea834f..1462492 100644
relocs
rlim_names.h
rn50_reg_safe.h
-@@ -215,8 +245,12 @@ series
+@@ -215,8 +245,17 @@ series
setup
setup.bin
setup.elf
+signing_key*
-+size_overflow_hash.h
++aux.h
++disable.h
++e_fields.h
++e_fns.h
++e_fptrs.h
++e_vars.h
sImage
+slabinfo
sm_tbl*
@@ -205,7 +210,7 @@ index 8ea834f..1462492 100644
split-include
syscalltab.h
tables.c
-@@ -226,6 +260,7 @@ tftpboot.img
+@@ -226,6 +265,7 @@ tftpboot.img
timeconst.h
times.h*
trix_boot.h
@@ -213,7 +218,7 @@ index 8ea834f..1462492 100644
utsrelease.h*
vdso-syms.lds
vdso.lds
-@@ -237,13 +272,17 @@ vdso32.lds
+@@ -237,13 +277,17 @@ vdso32.lds
vdso32.so.dbg
vdso64.lds
vdso64.so.dbg
@@ -231,7 +236,7 @@ index 8ea834f..1462492 100644
vmlinuz
voffset.h
vsyscall.lds
-@@ -251,9 +290,12 @@ vsyscall_32.lds
+@@ -251,9 +295,12 @@ vsyscall_32.lds
wanxlfw.inc
uImage
unifdef
@@ -420,7 +425,7 @@ index a3683ce..5ec8bf4 100644
A toggle value indicating if modules are allowed to be loaded
diff --git a/Makefile b/Makefile
-index 48b0120..b7cbcd2 100644
+index 320a930..a552059 100644
--- a/Makefile
+++ b/Makefile
@@ -302,7 +302,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -479,20 +484,19 @@ index 48b0120..b7cbcd2 100644
$(Q)$(MAKE) $(build)=.
# All the preparing..
-@@ -1248,7 +1252,11 @@ MRPROPER_FILES += .config .config.old .version .old_version \
+@@ -1248,7 +1252,10 @@ MRPROPER_FILES += .config .config.old .version .old_version \
Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
signing_key.pem signing_key.priv signing_key.x509 \
x509.genkey extra_certificates signing_key.x509.keyid \
- signing_key.x509.signer vmlinux-gdb.py
+ signing_key.x509.signer vmlinux-gdb.py \
-+ tools/gcc/size_overflow_plugin/size_overflow_hash_aux.h \
-+ tools/gcc/size_overflow_plugin/size_overflow_hash.h \
-+ tools/gcc/size_overflow_plugin/disable_size_overflow_hash.h \
-+ tools/gcc/randomize_layout_seed.h
++ scripts/gcc-plugins/size_overflow_plugin/e_*.h \
++ scripts/gcc-plugins/size_overflow_plugin/disable.h \
++ scripts/gcc-plugins/randomize_layout_seed.h
# clean - Delete most, but leave enough to build external modules
#
-@@ -1287,7 +1295,7 @@ distclean: mrproper
+@@ -1287,7 +1294,7 @@ distclean: mrproper
@find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
@@ -501,7 +505,7 @@ index 48b0120..b7cbcd2 100644
-type f -print | xargs rm -f
-@@ -1510,6 +1518,7 @@ clean: $(clean-dirs)
+@@ -1510,6 +1517,7 @@ clean: $(clean-dirs)
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name modules.builtin -o -name '.tmp_*.o.*' \
@@ -956,7 +960,7 @@ index d50430c..01cc53b 100644
# but it is being used too early to link to meaningful stack_chk logic.
nossp_flags := $(call cc-option, -fno-stack-protector)
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
-index 9e10c45..285d152 100644
+index 9e10c45..b412d02 100644
--- a/arch/arm/include/asm/atomic.h
+++ b/arch/arm/include/asm/atomic.h
@@ -18,17 +18,41 @@
@@ -1404,22 +1408,21 @@ index 9e10c45..285d152 100644
static inline long long
atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
-@@ -360,7 +554,14 @@ atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
-
- return oldval;
+@@ -362,6 +556,13 @@ atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
}
-+
+ #define atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
+
+static inline long long
+atomic64_cmpxchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long long old, long long new)
+{
+ return atomic64_cmpxchg_relaxed((atomic64_t *)ptr, old, new);
+}
- #define atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
+#define atomic64_cmpxchg_unchecked_relaxed atomic64_cmpxchg_unchecked_relaxed
-
++
static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
{
-@@ -380,26 +581,46 @@ static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
+ long long result;
+@@ -380,26 +581,52 @@ static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
return result;
}
@@ -1430,6 +1433,12 @@ index 9e10c45..285d152 100644
+}
#define atomic64_xchg_relaxed atomic64_xchg_relaxed
+#define atomic64_xchg_unchecked_relaxed atomic64_xchg_unchecked_relaxed
++
++static inline long long atomic64_xchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long long new)
++{
++ return atomic64_xchg_relaxed((atomic64_t *)ptr, new);
++}
++#define atomic64_xchg_unchecked_relaxed atomic64_xchg_unchecked_relaxed
static inline long long atomic64_dec_if_positive(atomic64_t *v)
{
@@ -1472,7 +1481,7 @@ index 9e10c45..285d152 100644
: "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
: "r" (&v->counter)
: "cc");
-@@ -423,13 +644,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
+@@ -423,13 +650,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
" teq %0, %5\n"
" teqeq %H0, %H5\n"
" moveq %1, #0\n"
@@ -1501,7 +1510,7 @@ index 9e10c45..285d152 100644
: "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
: "r" (&v->counter), "r" (u), "r" (a)
: "cc");
-@@ -442,10 +675,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
+@@ -442,10 +681,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
#define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
#define atomic64_inc(v) atomic64_add(1LL, (v))
@@ -2050,7 +2059,7 @@ index 3d6dc8b..1262ad3 100644
struct of_cpu_method {
const char *method;
diff --git a/arch/arm/include/asm/string.h b/arch/arm/include/asm/string.h
-index cf4f3aa..3f68273 100644
+index cf4f3aa..8f2f2d9 100644
--- a/arch/arm/include/asm/string.h
+++ b/arch/arm/include/asm/string.h
@@ -7,19 +7,19 @@
@@ -2058,11 +2067,11 @@ index cf4f3aa..3f68273 100644
#define __HAVE_ARCH_STRRCHR
-extern char * strrchr(const char * s, int c);
-+extern char * strrchr(const char * s, int c) __nocapture(1);
++extern char * strrchr(const char * s, int c) __nocapture(-1);
#define __HAVE_ARCH_STRCHR
-extern char * strchr(const char * s, int c);
-+extern char * strchr(const char * s, int c) __nocapture(1);
++extern char * strchr(const char * s, int c) __nocapture(-1);
#define __HAVE_ARCH_MEMCPY
-extern void * memcpy(void *, const void *, __kernel_size_t);
@@ -2074,7 +2083,7 @@ index cf4f3aa..3f68273 100644
#define __HAVE_ARCH_MEMCHR
-extern void * memchr(const void *, int, __kernel_size_t);
-+extern void * memchr(const void *, int, __kernel_size_t) __nocapture(1);
++extern void * memchr(const void *, int, __kernel_size_t) __nocapture(-1);
#define __HAVE_ARCH_MEMSET
extern void * memset(void *, int, __kernel_size_t);
@@ -2378,6 +2387,22 @@ index a44b268e..eea8f58 100644
/**
* arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
+diff --git a/arch/arm/kernel/efi.c b/arch/arm/kernel/efi.c
+index 9f43ba0..1cee475 100644
+--- a/arch/arm/kernel/efi.c
++++ b/arch/arm/kernel/efi.c
+@@ -60,9 +60,9 @@ int __init efi_create_mapping(struct mm_struct *mm, efi_memory_desc_t *md)
+ * preference.
+ */
+ if (md->attribute & EFI_MEMORY_WB)
+- desc.type = MT_MEMORY_RWX;
++ desc.type = __MT_MEMORY_RWX;
+ else if (md->attribute & EFI_MEMORY_WT)
+- desc.type = MT_MEMORY_RWX_NONCACHED;
++ desc.type = MT_MEMORY_RW_NONCACHED;
+ else if (md->attribute & EFI_MEMORY_WC)
+ desc.type = MT_DEVICE_WC;
+ else
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index e255050..51e1b59 100644
--- a/arch/arm/kernel/entry-armv.S
@@ -4752,7 +4777,7 @@ index a5bc92d..0bb4730 100644
+ pax_close_kernel();
}
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
-index 2038492..b81b162 100644
+index 2038492..a6adfda 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -76,6 +76,7 @@ config ARM64
@@ -4763,6 +4788,14 @@ index 2038492..b81b162 100644
select HAVE_GENERIC_DMA_COHERENT
select HAVE_HW_BREAKPOINT if PERF_EVENTS
select HAVE_IRQ_TIME_ACCOUNTING
+@@ -872,6 +873,7 @@ config RELOCATABLE
+
+ config RANDOMIZE_BASE
+ bool "Randomize the address of the kernel image"
++ depends on BROKEN_SECURITY
+ select ARM64_MODULE_PLTS if MODULES
+ select RELOCATABLE
+ help
diff --git a/arch/arm64/Kconfig.debug b/arch/arm64/Kconfig.debug
index 0cc758c..de67415 100644
--- a/arch/arm64/Kconfig.debug
@@ -4776,10 +4809,24 @@ index 0cc758c..de67415 100644
Say Y here if you want to show the kernel pagetable layout in a
debugfs file. This information is only useful for kernel developers
diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
-index f3a3586..5763299 100644
+index f3a3586..9b37018 100644
--- a/arch/arm64/include/asm/atomic.h
+++ b/arch/arm64/include/asm/atomic.h
-@@ -98,6 +98,8 @@
+@@ -57,11 +57,13 @@
+ #define atomic_set(v, i) WRITE_ONCE(((v)->counter), (i))
+
+ #define atomic_add_return_relaxed atomic_add_return_relaxed
++#define atomic_add_return_unchecked_relaxed atomic_add_return_relaxed
+ #define atomic_add_return_acquire atomic_add_return_acquire
+ #define atomic_add_return_release atomic_add_return_release
+ #define atomic_add_return atomic_add_return
+
+ #define atomic_inc_return_relaxed(v) atomic_add_return_relaxed(1, (v))
++#define atomic_inc_return_unchecked_relaxed(v) atomic_add_return_relaxed(1, (v))
+ #define atomic_inc_return_acquire(v) atomic_add_return_acquire(1, (v))
+ #define atomic_inc_return_release(v) atomic_add_return_release(1, (v))
+ #define atomic_inc_return(v) atomic_add_return(1, (v))
+@@ -98,6 +100,8 @@
#define __atomic_add_unless(v, a, u) ___atomic_add_unless(v, a, u,)
#define atomic_andnot atomic_andnot
@@ -4788,7 +4835,7 @@ index f3a3586..5763299 100644
/*
* 64-bit atomic operations.
*/
-@@ -146,5 +148,16 @@
+@@ -146,5 +150,16 @@
#define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
@@ -4806,11 +4853,15 @@ index f3a3586..5763299 100644
#endif
#endif
diff --git a/arch/arm64/include/asm/cache.h b/arch/arm64/include/asm/cache.h
-index 5082b30..79247453 100644
+index 5082b30..9ef38c2 100644
--- a/arch/arm64/include/asm/cache.h
+++ b/arch/arm64/include/asm/cache.h
-@@ -18,8 +18,10 @@
+@@ -16,10 +16,14 @@
+ #ifndef __ASM_CACHE_H
+ #define __ASM_CACHE_H
++#include <linux/const.h>
++
#include <asm/cachetype.h>
+#include <linux/const.h>
@@ -4847,7 +4898,7 @@ index 0a456be..7799ff5 100644
default:
BUILD_BUG();
diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
-index d25f4f1..0bd8842 100644
+index d25f4f1..61d52da 100644
--- a/arch/arm64/include/asm/pgalloc.h
+++ b/arch/arm64/include/asm/pgalloc.h
@@ -51,6 +51,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
@@ -4862,8 +4913,20 @@ index d25f4f1..0bd8842 100644
#else
static inline void __pud_populate(pud_t *pud, phys_addr_t pmd, pudval_t prot)
{
+@@ -80,6 +85,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
+ {
+ __pgd_populate(pgd, __pa(pud), PUD_TYPE_TABLE);
+ }
++
++static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
++{
++ pgd_populate(mm, pgd, pud);
++}
+ #else
+ static inline void __pgd_populate(pgd_t *pgdp, phys_addr_t pud, pgdval_t prot)
+ {
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
-index 46472a9..9f2efc0 100644
+index 46472a9..83dc517 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -23,6 +23,9 @@
@@ -4876,8 +4939,18 @@ index 46472a9..9f2efc0 100644
/*
* VMALLOC range.
*
+@@ -701,6 +704,9 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
+ #define kc_vaddr_to_offset(v) ((v) & ~VA_START)
+ #define kc_offset_to_vaddr(o) ((o) | VA_START)
+
++#define ktla_ktva(addr) (addr)
++#define ktva_ktla(addr) (addr)
++
+ #endif /* !__ASSEMBLY__ */
+
+ #endif /* __ASM_PGTABLE_H */
diff --git a/arch/arm64/include/asm/string.h b/arch/arm64/include/asm/string.h
-index 2eb714c..6c0fdb7 100644
+index 2eb714c..3a10471 100644
--- a/arch/arm64/include/asm/string.h
+++ b/arch/arm64/include/asm/string.h
@@ -17,40 +17,40 @@
@@ -4885,22 +4958,23 @@ index 2eb714c..6c0fdb7 100644
#define __HAVE_ARCH_STRRCHR
-extern char *strrchr(const char *, int c);
-+extern char *strrchr(const char *, int c) __nocapture(1);
++extern char *strrchr(const char *, int c) __nocapture(-1);
#define __HAVE_ARCH_STRCHR
-extern char *strchr(const char *, int c);
-+extern char *strchr(const char *, int c) __nocapture(1);
++extern char *strchr(const char *, int c) __nocapture(-1);
#define __HAVE_ARCH_STRCMP
-extern int strcmp(const char *, const char *);
-+extern int strcmp(const char *, const char *) __nocapture(1, 2);
++extern int strcmp(const char *, const char *) __nocapture();
#define __HAVE_ARCH_STRNCMP
-extern int strncmp(const char *, const char *, __kernel_size_t);
+extern int strncmp(const char *, const char *, __kernel_size_t) __nocapture(1, 2);
#define __HAVE_ARCH_STRLEN
- extern __kernel_size_t strlen(const char *);
+-extern __kernel_size_t strlen(const char *);
++extern __kernel_size_t strlen(const char *) __nocapture(1);
#define __HAVE_ARCH_STRNLEN
-extern __kernel_size_t strnlen(const char *, __kernel_size_t);
@@ -4920,7 +4994,7 @@ index 2eb714c..6c0fdb7 100644
#define __HAVE_ARCH_MEMCHR
-extern void *memchr(const void *, int, __kernel_size_t);
-+extern void *memchr(const void *, int, __kernel_size_t) __nocapture(1);
++extern void *memchr(const void *, int, __kernel_size_t) __nocapture(-1);
#define __HAVE_ARCH_MEMSET
extern void *memset(void *, int, __kernel_size_t);
@@ -5435,7 +5509,7 @@ index 45698cd..e8e2dbc 100644
static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
diff --git a/arch/ia64/include/asm/uaccess.h b/arch/ia64/include/asm/uaccess.h
-index ebcd8a1..dfa2f7a 100644
+index ebcd8a1..005b284 100644
--- a/arch/ia64/include/asm/uaccess.h
+++ b/arch/ia64/include/asm/uaccess.h
@@ -70,6 +70,7 @@
@@ -5471,7 +5545,7 @@ index ebcd8a1..dfa2f7a 100644
return __copy_user((__force void __user *) to, from, count);
}
-@@ -256,19 +269,22 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
+@@ -256,19 +269,23 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
({ \
void __user *__cu_to = (to); \
const void *__cu_from = (from); \
@@ -5480,7 +5554,8 @@ index ebcd8a1..dfa2f7a 100644
\
- if (__access_ok(__cu_to, __cu_len, get_fs())) \
+ if (__cu_len <= INT_MAX && __access_ok(__cu_to, __cu_len, get_fs())) { \
-+ check_object_size(__cu_from, __cu_len, true); \
++ if (!__builtin_constant_p(n)) \
++ check_object_size(__cu_from, __cu_len, true); \
__cu_len = __copy_user(__cu_to, (__force void __user *) __cu_from, __cu_len); \
+ } \
__cu_len; \
@@ -5499,23 +5574,6 @@ index ebcd8a1..dfa2f7a 100644
memset(to, 0, n);
return n;
}
-@@ -339,11 +355,13 @@ extern unsigned long __strnlen_user (const char __user *, long);
- __su_ret; \
- })
-
--#define ARCH_HAS_RELATIVE_EXTABLE
-+/* Generic code can't deal with the location-relative format that we use for compactness. */
-+#define ARCH_HAS_SORT_EXTABLE
-+#define ARCH_HAS_SEARCH_EXTABLE
-
- struct exception_table_entry {
-- int insn; /* location-relative address of insn this fixup is for */
-- int fixup; /* location-relative continuation addr.; if bit 2 is set, r9 is set to 0 */
-+ int addr; /* location-relative address of insn this fixup is for */
-+ int cont; /* location-relative continuation addr.; if bit 2 is set, r9 is set to 0 */
- };
-
- extern void ia64_handle_exception (struct pt_regs *regs, const struct exception_table_entry *e);
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
index 6ab0ae7..88f1b60 100644
--- a/arch/ia64/kernel/module.c
@@ -5836,7 +5894,7 @@ index 5c3f688..f8cc1b3 100644
# platform specific definitions
include arch/mips/Kbuild.platforms
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index ac91939..a1df96d 100644
+index ac91939..810f609 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -50,6 +50,7 @@ config MIPS
@@ -5847,6 +5905,15 @@ index ac91939..a1df96d 100644
select MODULES_USE_ELF_REL if MODULES
select MODULES_USE_ELF_RELA if MODULES && 64BIT
select CLONE_BACKWARDS
+@@ -2569,7 +2570,7 @@ config RELOCATION_TABLE_SIZE
+
+ config RANDOMIZE_BASE
+ bool "Randomize the address of the kernel image"
+- depends on RELOCATABLE
++ depends on RELOCATABLE && BROKEN_SECURITY
+ ---help---
+ Randomizes the physical and virtual address at which the
+ kernel image is loaded, as a security feature that
@@ -2775,6 +2776,7 @@ source "kernel/Kconfig.preempt"
config KEXEC
bool "Kexec system call"
@@ -7481,200 +7548,10 @@ index 291cee2..2ac33db 100644
#define PAGE_KERNEL_EXEC __pgprot(_PAGE_KERNEL_EXEC)
#define PAGE_KERNEL_RWX __pgprot(_PAGE_KERNEL_RWX)
diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
-index 37a1bee..a3916f9 100644
+index 37a1bee..cfcf0bf 100644
--- a/arch/parisc/include/asm/uaccess.h
+++ b/arch/parisc/include/asm/uaccess.h
-@@ -41,29 +41,34 @@ static inline long access_ok(int type, const void __user * addr,
- #define get_user __get_user
-
- #if !defined(CONFIG_64BIT)
--#define LDD_USER(ptr) __get_user_asm64(ptr)
-+#define LDD_KERNEL(ptr) BUILD_BUG()
-+#define LDD_USER(ptr) BUILD_BUG()
-+#define STD_KERNEL(x, ptr) __put_kernel_asm64(x, ptr)
- #define STD_USER(x, ptr) __put_user_asm64(x, ptr)
-+#define ASM_WORD_INSN ".word\t"
- #else
-+#define LDD_KERNEL(ptr) __get_kernel_asm("ldd", ptr)
- #define LDD_USER(ptr) __get_user_asm("ldd", ptr)
-+#define STD_KERNEL(x, ptr) __put_kernel_asm("std", x, ptr)
- #define STD_USER(x, ptr) __put_user_asm("std", x, ptr)
-+#define ASM_WORD_INSN ".dword\t"
- #endif
-
- /*
-- * The exception table contains two values: the first is the relative offset to
-- * the address of the instruction that is allowed to fault, and the second is
-- * the relative offset to the address of the fixup routine. Since relative
-- * addresses are used, 32bit values are sufficient even on 64bit kernel.
-+ * The exception table contains two values: the first is an address
-+ * for an instruction that is allowed to fault, and the second is
-+ * the address to the fixup routine. Even on a 64bit kernel we could
-+ * use a 32bit (unsigned int) address here.
- */
-
--#define ARCH_HAS_RELATIVE_EXTABLE
- struct exception_table_entry {
-- int insn; /* relative address of insn that is allowed to fault. */
-- int fixup; /* relative address of fixup routine */
-+ unsigned long insn; /* address of insn that is allowed to fault. */
-+ unsigned long fixup; /* fixup routine */
- };
-
- #define ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr )\
- ".section __ex_table,\"aw\"\n" \
-- ".word (" #fault_addr " - .), (" #except_addr " - .)\n\t" \
-+ ASM_WORD_INSN #fault_addr ", " #except_addr "\n\t" \
- ".previous\n"
-
- /*
-@@ -77,70 +82,70 @@ struct exception_data {
- unsigned long fault_addr;
- };
-
--/*
-- * load_sr2() preloads the space register %%sr2 - based on the value of
-- * get_fs() - with either a value of 0 to access kernel space (KERNEL_DS which
-- * is 0), or with the current value of %%sr3 to access user space (USER_DS)
-- * memory. The following __get_user_asm() and __put_user_asm() functions have
-- * %%sr2 hard-coded to access the requested memory.
-- */
--#define load_sr2() \
-- __asm__(" or,= %0,%%r0,%%r0\n\t" \
-- " mfsp %%sr3,%0\n\t" \
-- " mtsp %0,%%sr2\n\t" \
-- : : "r"(get_fs()) : )
--
- #define __get_user(x, ptr) \
- ({ \
- register long __gu_err __asm__ ("r8") = 0; \
- register long __gu_val __asm__ ("r9") = 0; \
- \
-- load_sr2(); \
-- switch (sizeof(*(ptr))) { \
-+ if (segment_eq(get_fs(), KERNEL_DS)) { \
-+ switch (sizeof(*(ptr))) { \
-+ case 1: __get_kernel_asm("ldb", ptr); break; \
-+ case 2: __get_kernel_asm("ldh", ptr); break; \
-+ case 4: __get_kernel_asm("ldw", ptr); break; \
-+ case 8: LDD_KERNEL(ptr); break; \
-+ default: BUILD_BUG(); break; \
-+ } \
-+ } \
-+ else { \
-+ switch (sizeof(*(ptr))) { \
- case 1: __get_user_asm("ldb", ptr); break; \
- case 2: __get_user_asm("ldh", ptr); break; \
- case 4: __get_user_asm("ldw", ptr); break; \
- case 8: LDD_USER(ptr); break; \
- default: BUILD_BUG(); break; \
-+ } \
- } \
- \
- (x) = (__force __typeof__(*(ptr))) __gu_val; \
- __gu_err; \
- })
-
-+#define __get_kernel_asm(ldx, ptr) \
-+ __asm__("\n1:\t" ldx "\t0(%2),%0\n\t" \
-+ ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_get_user_skip_1)\
-+ : "=r"(__gu_val), "=r"(__gu_err) \
-+ : "r"(ptr), "1"(__gu_err) \
-+ : "r1");
-+
- #define __get_user_asm(ldx, ptr) \
-- __asm__("\n1:\t" ldx "\t0(%%sr2,%2),%0\n\t" \
-+ __asm__("\n1:\t" ldx "\t0(%%sr3,%2),%0\n\t" \
- ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_get_user_skip_1)\
- : "=r"(__gu_val), "=r"(__gu_err) \
- : "r"(ptr), "1"(__gu_err) \
- : "r1");
-
--#if !defined(CONFIG_64BIT)
--
--#define __get_user_asm64(ptr) \
-- __asm__("\n1:\tldw 0(%%sr2,%2),%0" \
-- "\n2:\tldw 4(%%sr2,%2),%R0\n\t" \
-- ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_get_user_skip_2)\
-- ASM_EXCEPTIONTABLE_ENTRY(2b, fixup_get_user_skip_1)\
-- : "=r"(__gu_val), "=r"(__gu_err) \
-- : "r"(ptr), "1"(__gu_err) \
-- : "r1");
--
--#endif /* !defined(CONFIG_64BIT) */
--
--
- #define __put_user(x, ptr) \
- ({ \
- register long __pu_err __asm__ ("r8") = 0; \
- __typeof__(*(ptr)) __x = (__typeof__(*(ptr)))(x); \
- \
-- load_sr2(); \
-- switch (sizeof(*(ptr))) { \
-+ if (segment_eq(get_fs(), KERNEL_DS)) { \
-+ switch (sizeof(*(ptr))) { \
-+ case 1: __put_kernel_asm("stb", __x, ptr); break; \
-+ case 2: __put_kernel_asm("sth", __x, ptr); break; \
-+ case 4: __put_kernel_asm("stw", __x, ptr); break; \
-+ case 8: STD_KERNEL(__x, ptr); break; \
-+ default: BUILD_BUG(); break; \
-+ } \
-+ } \
-+ else { \
-+ switch (sizeof(*(ptr))) { \
- case 1: __put_user_asm("stb", __x, ptr); break; \
- case 2: __put_user_asm("sth", __x, ptr); break; \
- case 4: __put_user_asm("stw", __x, ptr); break; \
- case 8: STD_USER(__x, ptr); break; \
- default: BUILD_BUG(); break; \
-+ } \
- } \
- \
- __pu_err; \
-@@ -156,9 +161,17 @@ struct exception_data {
- * r8/r9 are already listed as err/val.
- */
-
-+#define __put_kernel_asm(stx, x, ptr) \
-+ __asm__ __volatile__ ( \
-+ "\n1:\t" stx "\t%2,0(%1)\n\t" \
-+ ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_put_user_skip_1)\
-+ : "=r"(__pu_err) \
-+ : "r"(ptr), "r"(x), "0"(__pu_err) \
-+ : "r1")
-+
- #define __put_user_asm(stx, x, ptr) \
- __asm__ __volatile__ ( \
-- "\n1:\t" stx "\t%2,0(%%sr2,%1)\n\t" \
-+ "\n1:\t" stx "\t%2,0(%%sr3,%1)\n\t" \
- ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_put_user_skip_1)\
- : "=r"(__pu_err) \
- : "r"(ptr), "r"(x), "0"(__pu_err) \
-@@ -167,10 +180,21 @@ struct exception_data {
-
- #if !defined(CONFIG_64BIT)
-
-+#define __put_kernel_asm64(__val, ptr) do { \
-+ __asm__ __volatile__ ( \
-+ "\n1:\tstw %2,0(%1)" \
-+ "\n2:\tstw %R2,4(%1)\n\t" \
-+ ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_put_user_skip_2)\
-+ ASM_EXCEPTIONTABLE_ENTRY(2b, fixup_put_user_skip_1)\
-+ : "=r"(__pu_err) \
-+ : "r"(ptr), "r"(__val), "0"(__pu_err) \
-+ : "r1"); \
-+} while (0)
-+
- #define __put_user_asm64(__val, ptr) do { \
- __asm__ __volatile__ ( \
-- "\n1:\tstw %2,0(%%sr2,%1)" \
-- "\n2:\tstw %R2,4(%%sr2,%1)\n\t" \
-+ "\n1:\tstw %2,0(%%sr3,%1)" \
-+ "\n2:\tstw %R2,4(%%sr3,%1)\n\t" \
- ASM_EXCEPTIONTABLE_ENTRY(1b, fixup_put_user_skip_2)\
- ASM_EXCEPTIONTABLE_ENTRY(2b, fixup_put_user_skip_1)\
- : "=r"(__pu_err) \
-@@ -221,14 +245,14 @@ static inline unsigned long __must_check copy_from_user(void *to,
+@@ -221,14 +221,14 @@ static inline unsigned long __must_check copy_from_user(void *to,
const void __user *from,
unsigned long n)
{
@@ -8050,7 +7927,7 @@ index 0a9d439..2b95815 100644
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h
-index ae0751e..06b108a 100644
+index ae0751e..4f02720 100644
--- a/arch/powerpc/include/asm/atomic.h
+++ b/arch/powerpc/include/asm/atomic.h
@@ -9,9 +9,15 @@
@@ -8102,8 +7979,8 @@ index ae0751e..06b108a 100644
+ " bf 4*cr0+so, 3f\n" \
+ "2: .long 0x00c00b00\n" \
+ "3:\n"
-+#define __OVERFLOW_EXTABLE \
-+ "\n4:\n" \
++#define __OVERFLOW_EXTABLE \
++ "\n4:\n" \
+ _ASM_EXTABLE(2b, 4b)
+#else
+#define __REFCOUNT_OP(op) op
@@ -8165,7 +8042,7 @@ index ae0751e..06b108a 100644
#define ATOMIC_OPS(op, asm_op) \
ATOMIC_OP(op, asm_op) \
ATOMIC_OP_RETURN_RELAXED(op, asm_op)
-@@ -90,44 +140,34 @@ ATOMIC_OP(or, or)
+@@ -90,45 +140,27 @@ ATOMIC_OP(or, or)
ATOMIC_OP(xor, xor)
#define atomic_add_return_relaxed atomic_add_return_relaxed
@@ -8183,15 +8060,7 @@ index ae0751e..06b108a 100644
-static __inline__ void atomic_inc(atomic_t *v)
-{
- int t;
-+/*
-+ * atomic_inc - increment atomic variable
-+ * @v: pointer of type atomic_t
-+ *
-+ * Automatically increments @v by 1
-+ */
-+#define atomic_inc(v) atomic_add(1, (v))
-+#define atomic_inc_return_relaxed(v) atomic_add_return_relaxed(1, (v))
-
+-
- __asm__ __volatile__(
-"1: lwarx %0,0,%2 # atomic_inc\n\
- addic %0,%0,1\n"
@@ -8201,14 +8070,10 @@ index ae0751e..06b108a 100644
- : "=&r" (t), "+m" (v->counter)
- : "r" (&v->counter)
- : "cc", "xer");
-+static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
-+{
-+ atomic_add_unchecked(1, v);
- }
-
+-}
+-
-static __inline__ int atomic_inc_return_relaxed(atomic_t *v)
-+static inline int atomic_inc_return_unchecked_relaxed(atomic_unchecked_t *v)
- {
+-{
- int t;
-
- __asm__ __volatile__(
@@ -8222,11 +8087,21 @@ index ae0751e..06b108a 100644
- : "cc", "xer");
-
- return t;
-+ return atomic_add_return_unchecked_relaxed(1, v);
- }
+-}
++/*
++ * atomic_inc - increment atomic variable
++ * @v: pointer of type atomic_t
++ *
++ * Automatically increments @v by 1
++ */
++#define atomic_inc(v) atomic_add(1, (v))
++#define atomic_inc_unchecked(v) atomic_add_unchecked(1, (v))
++#define atomic_inc_return_relaxed(v) atomic_add_return_relaxed(1, (v))
++#define atomic_inc_return_unchecked_relaxed(v) atomic_add_return_unchecked_relaxed(1, (v))
/*
-@@ -139,42 +179,22 @@ static __inline__ int atomic_inc_return_relaxed(atomic_t *v)
+ * atomic_inc_and_test - increment and test
+@@ -139,42 +171,22 @@ static __inline__ int atomic_inc_return_relaxed(atomic_t *v)
* other cases.
*/
#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
@@ -8247,7 +8122,7 @@ index ae0751e..06b108a 100644
-}
-
-static __inline__ int atomic_dec_return_relaxed(atomic_t *v)
-+#define atomic_inc_and_test_unchecked(v) (atomic_add_return_unchecked(1, v) == 0)
++#define atomic_inc_and_test_unchecked(v) (atomic_inc_return_unchecked(v) == 0)
+
+/*
+ * atomic_dec - decrement atomic variable
@@ -8282,7 +8157,7 @@ index ae0751e..06b108a 100644
#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
#define atomic_cmpxchg_relaxed(v, o, n) \
cmpxchg_relaxed(&((v)->counter), (o), (n))
-@@ -184,6 +204,13 @@ static __inline__ int atomic_dec_return_relaxed(atomic_t *v)
+@@ -184,6 +196,13 @@ static __inline__ int atomic_dec_return_relaxed(atomic_t *v)
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
#define atomic_xchg_relaxed(v, new) xchg_relaxed(&((v)->counter), (new))
@@ -8296,7 +8171,7 @@ index ae0751e..06b108a 100644
/**
* __atomic_add_unless - add unless the number is a given value
* @v: pointer of type atomic_t
-@@ -201,11 +228,27 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
+@@ -201,11 +220,27 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
PPC_ATOMIC_ENTRY_BARRIER
"1: lwarx %0,0,%1 # __atomic_add_unless\n\
cmpw 0,%0,%3 \n\
@@ -8326,7 +8201,7 @@ index ae0751e..06b108a 100644
PPC_ATOMIC_EXIT_BARRIER
" subf %0,%2,%0 \n\
2:"
-@@ -291,37 +334,59 @@ static __inline__ long atomic64_read(const atomic64_t *v)
+@@ -291,37 +326,59 @@ static __inline__ long atomic64_read(const atomic64_t *v)
return t;
}
@@ -8391,7 +8266,7 @@ index ae0751e..06b108a 100644
: "=&r" (t), "+m" (v->counter) \
: "r" (a), "r" (&v->counter) \
: "cc"); \
-@@ -329,6 +394,9 @@ atomic64_##op##_return_relaxed(long a, atomic64_t *v) \
+@@ -329,6 +386,9 @@ atomic64_##op##_return_relaxed(long a, atomic64_t *v) \
return t; \
}
@@ -8401,7 +8276,7 @@ index ae0751e..06b108a 100644
#define ATOMIC64_OPS(op, asm_op) \
ATOMIC64_OP(op, asm_op) \
ATOMIC64_OP_RETURN_RELAXED(op, asm_op)
-@@ -344,38 +412,33 @@ ATOMIC64_OP(xor, xor)
+@@ -344,38 +404,33 @@ ATOMIC64_OP(xor, xor)
#undef ATOPIC64_OPS
#undef ATOMIC64_OP_RETURN_RELAXED
@@ -8459,7 +8334,7 @@ index ae0751e..06b108a 100644
}
/*
-@@ -388,39 +451,20 @@ static __inline__ long atomic64_inc_return_relaxed(atomic64_t *v)
+@@ -388,39 +443,20 @@ static __inline__ long atomic64_inc_return_relaxed(atomic64_t *v)
*/
#define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
@@ -8510,7 +8385,7 @@ index ae0751e..06b108a 100644
#define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
#define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
-@@ -457,6 +501,13 @@ static __inline__ long atomic64_dec_if_positive(atomic64_t *v)
+@@ -457,6 +493,13 @@ static __inline__ long atomic64_dec_if_positive(atomic64_t *v)
#define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
#define atomic64_xchg_relaxed(v, new) xchg_relaxed(&((v)->counter), (new))
@@ -8524,7 +8399,7 @@ index ae0751e..06b108a 100644
/**
* atomic64_add_unless - add unless the number is a given value
* @v: pointer of type atomic64_t
-@@ -472,13 +523,29 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
+@@ -472,13 +515,29 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
__asm__ __volatile__ (
PPC_ATOMIC_ENTRY_BARRIER
@@ -8611,7 +8486,7 @@ index cd5e7aa..7709061 100644
unsigned long address)
{
diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
-index ffbafbf..71d037f 100644
+index ffbafbf..71d037fb 100644
--- a/arch/powerpc/include/asm/cache.h
+++ b/arch/powerpc/include/asm/cache.h
@@ -3,6 +3,8 @@
@@ -9035,7 +8910,7 @@ index 523673d..10dc784 100644
: "r"(&rw->lock)
: "cr0", "xer", "memory");
diff --git a/arch/powerpc/include/asm/string.h b/arch/powerpc/include/asm/string.h
-index e40010a..d3c3d6b 100644
+index e40010a..bd4a57b 100644
--- a/arch/powerpc/include/asm/string.h
+++ b/arch/powerpc/include/asm/string.h
@@ -15,17 +15,17 @@
@@ -9044,13 +8919,14 @@ index e40010a..d3c3d6b 100644
-extern char * strcpy(char *,const char *);
-extern char * strncpy(char *,const char *, __kernel_size_t);
-+extern char * strcpy(char *,const char *) __nocapture(2);
-+extern char * strncpy(char *,const char *, __kernel_size_t) __nocapture(2);
- extern __kernel_size_t strlen(const char *);
+-extern __kernel_size_t strlen(const char *);
-extern int strcmp(const char *,const char *);
-extern int strncmp(const char *, const char *, __kernel_size_t);
-extern char * strcat(char *, const char *);
-+extern int strcmp(const char *,const char *) __nocapture(1, 2);
++extern char * strcpy(char *,const char *) __nocapture(2);
++extern char * strncpy(char *,const char *, __kernel_size_t) __nocapture(2);
++extern __kernel_size_t strlen(const char *) __nocapture(1);
++extern int strcmp(const char *,const char *) __nocapture();
+extern int strncmp(const char *, const char *, __kernel_size_t) __nocapture(1, 2);
+extern char * strcat(char *, const char *) __nocapture(2);
extern void * memset(void *,int,__kernel_size_t);
@@ -9091,7 +8967,7 @@ index 8febc3f..a4614f3 100644
#define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
_TIF_NOTIFY_RESUME | _TIF_UPROBE | \
diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
-index 43888c8..e231600 100644
+index 43888c8..f3dc6bb 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -58,6 +58,7 @@
@@ -9102,29 +8978,7 @@ index 43888c8..e231600 100644
#define access_ok(type, addr, size) \
(__chk_user_ptr(addr), \
__access_ok((__force unsigned long)(addr), (size), get_fs()))
-@@ -274,6 +275,21 @@ do { \
- __gu_err; \
- })
-
-+#ifndef __powerpc64__
-+#define __get_user64_nocheck(x, ptr, size) \
-+({ \
-+ long __gu_err; \
-+ long long __gu_val; \
-+ __typeof__(*(ptr)) __user *__gu_addr = (ptr); \
-+ __chk_user_ptr(ptr); \
-+ if (!is_kernel_addr((unsigned long)__gu_addr)) \
-+ might_fault(); \
-+ __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \
-+ (x) = (__force __typeof__(*(ptr)))__gu_val; \
-+ __gu_err; \
-+})
-+#endif /* __powerpc64__ */
-+
- #define __get_user_check(x, ptr, size) \
- ({ \
- long __gu_err = -EFAULT; \
-@@ -303,39 +319,6 @@ do { \
+@@ -303,39 +304,6 @@ do { \
extern unsigned long __copy_tofrom_user(void __user *to,
const void __user *from, unsigned long size);
@@ -9164,7 +9018,7 @@ index 43888c8..e231600 100644
static inline unsigned long __copy_from_user_inatomic(void *to,
const void __user *from, unsigned long n)
{
-@@ -359,6 +342,9 @@ static inline unsigned long __copy_from_user_inatomic(void *to,
+@@ -359,6 +327,9 @@ static inline unsigned long __copy_from_user_inatomic(void *to,
if (ret == 0)
return 0;
}
@@ -9174,7 +9028,7 @@ index 43888c8..e231600 100644
return __copy_tofrom_user((__force void __user *)to, from, n);
}
-@@ -385,6 +371,9 @@ static inline unsigned long __copy_to_user_inatomic(void __user *to,
+@@ -385,6 +356,9 @@ static inline unsigned long __copy_to_user_inatomic(void __user *to,
if (ret == 0)
return 0;
}
@@ -9184,7 +9038,7 @@ index 43888c8..e231600 100644
return __copy_tofrom_user(to, (__force const void __user *)from, n);
}
-@@ -402,6 +391,70 @@ static inline unsigned long __copy_to_user(void __user *to,
+@@ -402,6 +376,70 @@ static inline unsigned long __copy_to_user(void __user *to,
return __copy_to_user_inatomic(to, from, size);
}
@@ -9498,7 +9352,7 @@ index 2552079..a290dc8a 100644
} else {
err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
-index 9229ba6..ddd4d5e 100644
+index 9229ba6..112b6f9 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -36,6 +36,7 @@
@@ -9538,7 +9392,7 @@ index 9229ba6..ddd4d5e 100644
+
+ if (reason & REASON_ILLEGAL) {
+ /* Check if PaX bad instruction */
-+ if (!probe_kernel_address((void *)regs->nip, bkpt) && bkpt == 0xc00b00) {
++ if (!probe_kernel_address((const void *)regs->nip, bkpt) && bkpt == 0xc00b00) {
+ current->thread.trap_nr = 0;
+ pax_report_refcount_overflow(regs);
+ /* fixup_exception() for PowerPC does not exist, simulate its job */
@@ -10783,7 +10637,7 @@ index bd56c28..4b63d83 100644
#include <asm/uaccess_64.h>
#else
diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
-index 3e8de69..d3d89a0 100644
+index 3e8de69..eb6e4cf 100644
--- a/arch/sparc/include/asm/uaccess_32.h
+++ b/arch/sparc/include/asm/uaccess_32.h
@@ -47,6 +47,7 @@
@@ -10794,92 +10648,7 @@ index 3e8de69..d3d89a0 100644
#define access_ok(type, addr, size) \
({ (void)(type); __access_ok((unsigned long)(addr), size); })
-@@ -205,6 +206,31 @@ int __put_user_bad(void);
- __gu_ret; \
- })
-
-+#define __get_user_check_ret(x, addr, size, type, retval) ({ \
-+ register unsigned long __gu_val __asm__ ("l1"); \
-+ if (__access_ok(addr, size)) { \
-+ switch (size) { \
-+ case 1: \
-+ __get_user_asm_ret(__gu_val, ub, addr, retval); \
-+ break; \
-+ case 2: \
-+ __get_user_asm_ret(__gu_val, uh, addr, retval); \
-+ break; \
-+ case 4: \
-+ __get_user_asm_ret(__gu_val, , addr, retval); \
-+ break; \
-+ case 8: \
-+ __get_user_asm_ret(__gu_val, d, addr, retval); \
-+ break; \
-+ default: \
-+ if (__get_user_bad()) \
-+ return retval; \
-+ } \
-+ x = (__force type) __gu_val; \
-+ } else \
-+ return retval; \
-+})
-+
- #define __get_user_nocheck(x, addr, size, type) ({ \
- register int __gu_ret; \
- register unsigned long __gu_val; \
-@@ -222,6 +248,20 @@ int __put_user_bad(void);
- __gu_ret; \
- })
-
-+#define __get_user_nocheck_ret(x, addr, size, type, retval) ({ \
-+ register unsigned long __gu_val __asm__ ("l1"); \
-+ switch (size) { \
-+ case 1: __get_user_asm_ret(__gu_val, ub, addr, retval); break; \
-+ case 2: __get_user_asm_ret(__gu_val, uh, addr, retval); break; \
-+ case 4: __get_user_asm_ret(__gu_val, , addr, retval); break; \
-+ case 8: __get_user_asm_ret(__gu_val, d, addr, retval); break; \
-+ default: \
-+ if (__get_user_bad()) \
-+ return retval; \
-+ } \
-+ x = (__force type) __gu_val; \
-+})
-+
- #define __get_user_asm(x, size, addr, ret) \
- __asm__ __volatile__( \
- "/* Get user asm, inline. */\n" \
-@@ -242,28 +282,70 @@ __asm__ __volatile__( \
- : "=&r" (ret), "=&r" (x) : "m" (*__m(addr)), \
- "i" (-EFAULT))
-
-+#define __get_user_asm_ret(x, size, addr, retval) \
-+if (__builtin_constant_p(retval) && retval == -EFAULT) \
-+ __asm__ __volatile__( \
-+ "/* Get user asm ret, inline. */\n" \
-+ "1:\t" "ld"#size " %1, %0\n\n\t" \
-+ ".section __ex_table,#alloc\n\t" \
-+ ".align 4\n\t" \
-+ ".word 1b,__ret_efault\n\n\t" \
-+ ".previous\n\t" \
-+ : "=&r" (x) : "m" (*__m(addr))); \
-+else \
-+ __asm__ __volatile__( \
-+ "/* Get user asm ret, inline. */\n" \
-+ "1:\t" "ld"#size " %1, %0\n\n\t" \
-+ ".section .fixup,#alloc,#execinstr\n\t" \
-+ ".align 4\n" \
-+ "3:\n\t" \
-+ "ret\n\t" \
-+ " restore %%g0, %2, %%o0\n\n\t" \
-+ ".previous\n\t" \
-+ ".section __ex_table,#alloc\n\t" \
-+ ".align 4\n\t" \
-+ ".word 1b, 3b\n\n\t" \
-+ ".previous\n\t" \
-+ : "=&r" (x) : "m" (*__m(addr)), "i" (retval))
-+
- int __get_user_bad(void);
-
- unsigned long __copy_user(void __user *to, const void __user *from, unsigned long size);
+@@ -248,22 +249,38 @@ unsigned long __copy_user(void __user *to, const void __user *from, unsigned lon
static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
{
@@ -10922,7 +10691,7 @@ index 3e8de69..d3d89a0 100644
memset(to, 0, n);
return n;
}
-@@ -271,6 +353,9 @@ static inline unsigned long copy_from_user(void *to, const void __user *from, un
+@@ -271,6 +288,9 @@ static inline unsigned long copy_from_user(void *to, const void __user *from, un
static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n)
{
@@ -13000,7 +12769,7 @@ index ad8f795..2c7eec6 100644
/*
* Memory returned by kmalloc() may be used for DMA, so we must make
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index d9a94da..4c060aa 100644
+index d9a94da..ef04c49 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -39,14 +39,13 @@ config X86
@@ -13008,7 +12777,7 @@ index d9a94da..4c060aa 100644
select ARCH_SUPPORTS_ATOMIC_RMW
select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
- select ARCH_SUPPORTS_INT128 if X86_64
-+ select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW
++ select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW_EXTRA && !PAX_SIZE_OVERFLOW
select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
select ARCH_USE_BUILTIN_BSWAP
select ARCH_USE_CMPXCHG_LOCKREF if X86_64
@@ -13036,7 +12805,15 @@ index d9a94da..4c060aa 100644
select HAVE_GENERIC_DMA_COHERENT if X86_32
select HAVE_HW_BREAKPOINT
select HAVE_IDE
-@@ -186,11 +186,13 @@ config MMU
+@@ -134,6 +134,7 @@ config X86
+ select HAVE_NMI
+ select HAVE_OPROFILE
+ select HAVE_OPTPROBES
++ select HAVE_PAX_INITIFY_INIT_EXIT if GCC_PLUGINS
+ select HAVE_PCSPKR_PLATFORM
+ select HAVE_PERF_EVENTS
+ select HAVE_PERF_EVENTS_NMI
+@@ -186,11 +187,13 @@ config MMU
def_bool y
config ARCH_MMAP_RND_BITS_MIN
@@ -13052,7 +12829,7 @@ index d9a94da..4c060aa 100644
default 16
config ARCH_MMAP_RND_COMPAT_BITS_MIN
-@@ -292,7 +294,7 @@ config X86_64_SMP
+@@ -292,7 +295,7 @@ config X86_64_SMP
config X86_32_LAZY_GS
def_bool y
@@ -13061,7 +12838,7 @@ index d9a94da..4c060aa 100644
config ARCH_HWEIGHT_CFLAGS
string
-@@ -679,6 +681,7 @@ config SCHED_OMIT_FRAME_POINTER
+@@ -679,6 +682,7 @@ config SCHED_OMIT_FRAME_POINTER
menuconfig HYPERVISOR_GUEST
bool "Linux guest support"
@@ -13069,7 +12846,7 @@ index d9a94da..4c060aa 100644
---help---
Say Y here to enable options for running Linux under various hyper-
visors. This option enables basic hypervisor detection and platform
-@@ -1080,6 +1083,7 @@ config VM86
+@@ -1080,6 +1084,7 @@ config VM86
config X86_16BIT
bool "Enable support for 16-bit segments" if EXPERT
@@ -13077,7 +12854,7 @@ index d9a94da..4c060aa 100644
default y
depends on MODIFY_LDT_SYSCALL
---help---
-@@ -1234,6 +1238,7 @@ choice
+@@ -1234,6 +1239,7 @@ choice
config NOHIGHMEM
bool "off"
@@ -13085,7 +12862,7 @@ index d9a94da..4c060aa 100644
---help---
Linux can use up to 64 Gigabytes of physical memory on x86 systems.
However, the address space of 32-bit x86 processors is only 4
-@@ -1270,6 +1275,7 @@ config NOHIGHMEM
+@@ -1270,6 +1276,7 @@ config NOHIGHMEM
config HIGHMEM4G
bool "4GB"
@@ -13093,7 +12870,7 @@ index d9a94da..4c060aa 100644
---help---
Select this if you have a 32-bit processor and between 1 and 4
gigabytes of physical RAM.
-@@ -1322,7 +1328,7 @@ config PAGE_OFFSET
+@@ -1322,7 +1329,7 @@ config PAGE_OFFSET
hex
default 0xB0000000 if VMSPLIT_3G_OPT
default 0x80000000 if VMSPLIT_2G
@@ -13102,7 +12879,7 @@ index d9a94da..4c060aa 100644
default 0x40000000 if VMSPLIT_1G
default 0xC0000000
depends on X86_32
-@@ -1343,7 +1349,6 @@ config X86_PAE
+@@ -1343,7 +1350,6 @@ config X86_PAE
config ARCH_PHYS_ADDR_T_64BIT
def_bool y
@@ -13110,7 +12887,7 @@ index d9a94da..4c060aa 100644
config ARCH_DMA_ADDR_T_64BIT
def_bool y
-@@ -1474,7 +1479,7 @@ config ARCH_PROC_KCORE_TEXT
+@@ -1474,7 +1480,7 @@ config ARCH_PROC_KCORE_TEXT
config ILLEGAL_POINTER_VALUE
hex
@@ -13119,7 +12896,7 @@ index d9a94da..4c060aa 100644
default 0xdead000000000000 if X86_64
source "mm/Kconfig"
-@@ -1797,6 +1802,7 @@ source kernel/Kconfig.hz
+@@ -1797,6 +1803,7 @@ source kernel/Kconfig.hz
config KEXEC
bool "kexec system call"
select KEXEC_CORE
@@ -13127,7 +12904,16 @@ index d9a94da..4c060aa 100644
---help---
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
-@@ -1963,7 +1969,9 @@ config X86_NEED_RELOCS
+@@ -1924,7 +1931,7 @@ config RELOCATABLE
+
+ config RANDOMIZE_BASE
+ bool "Randomize the address of the kernel image (KASLR)"
+- depends on RELOCATABLE
++ depends on RELOCATABLE && BROKEN_SECURITY
+ default n
+ ---help---
+ In support of Kernel Address Space Layout Randomization (KASLR),
+@@ -1963,7 +1970,9 @@ config X86_NEED_RELOCS
config PHYSICAL_ALIGN
hex "Alignment value to which kernel should be aligned"
@@ -13138,7 +12924,7 @@ index d9a94da..4c060aa 100644
range 0x2000 0x1000000 if X86_32
range 0x200000 0x1000000 if X86_64
---help---
-@@ -2046,6 +2054,7 @@ config COMPAT_VDSO
+@@ -2046,6 +2055,7 @@ config COMPAT_VDSO
def_bool n
prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
depends on X86_32 || IA32_EMULATION
@@ -13146,7 +12932,7 @@ index d9a94da..4c060aa 100644
---help---
Certain buggy versions of glibc will crash if they are
presented with a 32-bit vDSO that is not mapped at the address
-@@ -2086,15 +2095,6 @@ choice
+@@ -2086,15 +2096,6 @@ choice
If unsure, select "Emulate".
@@ -13162,7 +12948,7 @@ index d9a94da..4c060aa 100644
config LEGACY_VSYSCALL_EMULATE
bool "Emulate"
help
-@@ -2175,6 +2175,22 @@ config MODIFY_LDT_SYSCALL
+@@ -2175,6 +2176,22 @@ config MODIFY_LDT_SYSCALL
Saying 'N' here may make sense for embedded or server kernels.
@@ -23916,10 +23702,10 @@ index 0944218..2f17b1b 100644
void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
diff --git a/arch/x86/include/asm/string_32.h b/arch/x86/include/asm/string_32.h
-index 3d3e835..5cc6d8d 100644
+index 3d3e835..50b64b1 100644
--- a/arch/x86/include/asm/string_32.h
+++ b/arch/x86/include/asm/string_32.h
-@@ -6,25 +6,25 @@
+@@ -6,28 +6,28 @@
/* Let gcc decide whether to inline or use the out of line functions */
#define __HAVE_ARCH_STRCPY
@@ -23940,7 +23726,7 @@ index 3d3e835..5cc6d8d 100644
#define __HAVE_ARCH_STRCMP
-extern int strcmp(const char *cs, const char *ct);
-+extern int strcmp(const char *cs, const char *ct) __nocapture(1, 2);
++extern int strcmp(const char *cs, const char *ct) __nocapture();
#define __HAVE_ARCH_STRNCMP
-extern int strncmp(const char *cs, const char *ct, size_t count);
@@ -23948,10 +23734,14 @@ index 3d3e835..5cc6d8d 100644
#define __HAVE_ARCH_STRCHR
-extern char *strchr(const char *s, int c);
-+extern char *strchr(const char *s, int c) __nocapture(1);
++extern char *strchr(const char *s, int c) __nocapture(-1);
#define __HAVE_ARCH_STRLEN
- extern size_t strlen(const char *s);
+-extern size_t strlen(const char *s);
++extern size_t strlen(const char *s) __nocapture(1);
+
+ static __always_inline void *__memcpy(void *to, const void *from, size_t n)
+ {
@@ -197,12 +197,12 @@ static inline void *__memcpy3d(void *to, const void *from, size_t len)
#endif
@@ -23963,21 +23753,26 @@ index 3d3e835..5cc6d8d 100644
#define __HAVE_ARCH_MEMCHR
-extern void *memchr(const void *cs, int c, size_t count);
-+extern void *memchr(const void *cs, int c, size_t count) __nocapture(1);
++extern void *memchr(const void *cs, int c, size_t count) __nocapture(-1);
static inline void *__memset_generic(void *s, char c, size_t count)
{
-@@ -247,7 +247,7 @@ extern size_t strnlen(const char *s, size_t count);
+@@ -243,11 +243,11 @@ void *__constant_c_memset(void *s, unsigned long c, size_t count)
+
+ /* Added by Gertjan van Wingerde to make minix and sysv module work */
+ #define __HAVE_ARCH_STRNLEN
+-extern size_t strnlen(const char *s, size_t count);
++extern size_t strnlen(const char *s, size_t count) __nocapture(1);
/* end of additional stuff */
#define __HAVE_ARCH_STRSTR
-extern char *strstr(const char *cs, const char *ct);
-+extern char *strstr(const char *cs, const char *ct) __nocapture(1, 2);
++extern char *strstr(const char *cs, const char *ct) __nocapture(-1, 2);
/*
* This looks horribly ugly, but the compiler can optimize it totally,
diff --git a/arch/x86/include/asm/string_64.h b/arch/x86/include/asm/string_64.h
-index 90dbbd9..04e8caa 100644
+index 90dbbd9..607d3ba 100644
--- a/arch/x86/include/asm/string_64.h
+++ b/arch/x86/include/asm/string_64.h
@@ -27,8 +27,8 @@ static __always_inline void *__inline_memcpy(void *to, const void *from, size_t
@@ -24001,17 +23796,27 @@ index 90dbbd9..04e8caa 100644
+void *__memmove(void *dest, const void *src, size_t count) __nocapture(2);
-int memcmp(const void *cs, const void *ct, size_t count);
-+int memcmp(const void *cs, const void *ct, size_t count) __nocapture(1, 2);
- size_t strlen(const char *s);
+-size_t strlen(const char *s);
-char *strcpy(char *dest, const char *src);
-char *strcat(char *dest, const char *src);
-int strcmp(const char *cs, const char *ct);
++int memcmp(const void *cs, const void *ct, size_t count) __nocapture(1, 2);
++size_t strlen(const char *s) __nocapture(1);
+char *strcpy(char *dest, const char *src) __nocapture(2);
+char *strcat(char *dest, const char *src) __nocapture(2);
+int strcmp(const char *cs, const char *ct) __nocapture(1, 2);
#if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
+@@ -89,7 +89,7 @@ int strcmp(const char *cs, const char *ct);
+ *
+ * Return 0 for success, -EFAULT for fail
+ */
+-int memcpy_mcsafe(void *dst, const void *src, size_t cnt);
++int memcpy_mcsafe(void *dst, const void *src, size_t cnt) __nocapture(2);
+
+ #endif /* __KERNEL__ */
+
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
index 8f321a1..6207183 100644
--- a/arch/x86/include/asm/switch_to.h
@@ -24201,7 +24006,7 @@ index 30c133a..5cdfb3f 100644
#endif /* _ASM_X86_THREAD_INFO_H */
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
-index 6fa8594..b3e6757 100644
+index dee8a70..a2c1bda 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -135,6 +135,25 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask)
@@ -24324,7 +24129,7 @@ index c3496619..3f3a7dc 100644
asmlinkage void smp_deferred_error_interrupt(void);
#endif
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
-index 0328c2cc..35d07f4 100644
+index 0328c2cc..a5c6ca2 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -8,6 +8,7 @@
@@ -24536,7 +24341,7 @@ index 0328c2cc..35d07f4 100644
"2:\n" \
".section .fixup,\"ax\"\n" \
- "3:xor"itype" %"rtype"0,%"rtype"0\n" \
-+ "3:xorl %k0,%k0\n" \
++ "3:xorl %k0,%k0\n" \
" jmp 2b\n" \
".previous\n" \
_ASM_EXTABLE_EX(1b, 3b) \
@@ -26085,7 +25890,7 @@ index a972ac4..938c163 100644
/*
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index 0fe6953f..a253a78 100644
+index 41f3f7d..ca90e57 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -93,60 +93,6 @@ static const struct cpu_dev default_cpu = {
@@ -26279,7 +26084,7 @@ index 0fe6953f..a253a78 100644
gdt_descr.size = GDT_SIZE - 1;
load_gdt(&gdt_descr);
/* Reload the per-cpu base */
-@@ -1042,6 +1095,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
+@@ -1041,6 +1094,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
setup_smep(c);
setup_smap(c);
@@ -26300,7 +26105,7 @@ index 0fe6953f..a253a78 100644
/*
* The vendor-specific functions might have changed features.
* Now we do "generic changes."
-@@ -1122,7 +1189,7 @@ void enable_sep_cpu(void)
+@@ -1121,7 +1188,7 @@ void enable_sep_cpu(void)
return;
cpu = get_cpu();
@@ -26309,7 +26114,7 @@ index 0fe6953f..a253a78 100644
/*
* We cache MSR_IA32_SYSENTER_CS's value in the TSS's ss1 field --
-@@ -1264,10 +1331,12 @@ static __init int setup_disablecpuid(char *arg)
+@@ -1263,10 +1330,12 @@ static __init int setup_disablecpuid(char *arg)
}
__setup("clearcpuid=", setup_disablecpuid);
@@ -26325,7 +26130,7 @@ index 0fe6953f..a253a78 100644
DEFINE_PER_CPU_FIRST(union irq_stack_union,
irq_stack_union) __aligned(PAGE_SIZE) __visible;
-@@ -1379,21 +1448,21 @@ EXPORT_PER_CPU_SYMBOL(current_task);
+@@ -1378,21 +1447,21 @@ EXPORT_PER_CPU_SYMBOL(current_task);
DEFINE_PER_CPU(int, __preempt_count) = INIT_PREEMPT_COUNT;
EXPORT_PER_CPU_SYMBOL(__preempt_count);
@@ -26354,7 +26159,7 @@ index 0fe6953f..a253a78 100644
/*
* Clear all 6 debug registers:
*/
-@@ -1469,7 +1538,7 @@ void cpu_init(void)
+@@ -1468,7 +1537,7 @@ void cpu_init(void)
*/
load_ucode_ap();
@@ -26363,7 +26168,7 @@ index 0fe6953f..a253a78 100644
oist = &per_cpu(orig_ist, cpu);
#ifdef CONFIG_NUMA
-@@ -1501,7 +1570,6 @@ void cpu_init(void)
+@@ -1500,7 +1569,6 @@ void cpu_init(void)
wrmsrl(MSR_KERNEL_GS_BASE, 0);
barrier();
@@ -26371,7 +26176,7 @@ index 0fe6953f..a253a78 100644
x2apic_setup();
/*
-@@ -1553,7 +1621,7 @@ void cpu_init(void)
+@@ -1552,7 +1620,7 @@ void cpu_init(void)
{
int cpu = smp_processor_id();
struct task_struct *curr = current;
@@ -28489,6 +28294,19 @@ index 5df831e..47801b0 100644
NEXT_PAGE(empty_zero_page)
.skip PAGE_SIZE
+diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
+index f112af7..acf9e16 100644
+--- a/arch/x86/kernel/hpet.c
++++ b/arch/x86/kernel/hpet.c
+@@ -136,7 +136,7 @@ int is_hpet_enabled(void)
+ }
+ EXPORT_SYMBOL_GPL(is_hpet_enabled);
+
+-static void _hpet_print_config(const char *function, int line)
++static void __nocapture(1) _hpet_print_config(const char *function, int line)
+ {
+ u32 i, timers, l, h;
+ printk(KERN_INFO "hpet: %s(%d):\n", function, line);
diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
index 64341aa..b1e6632 100644
--- a/arch/x86/kernel/i386_ksyms_32.c
@@ -32336,10 +32154,10 @@ index 16ef31b..23496f1 100644
.disabled_by_bios = is_disabled,
.hardware_setup = svm_hardware_setup,
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 8326d68..3cc3895 100644
+index 9ed64d2..615f66a 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
-@@ -1589,14 +1589,14 @@ static __always_inline void vmcs_writel(unsigned long field, unsigned long value
+@@ -1590,14 +1590,14 @@ static __always_inline void vmcs_writel(unsigned long field, unsigned long value
__vmcs_writel(field, value);
}
@@ -32356,7 +32174,7 @@ index 8326d68..3cc3895 100644
{
BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6000) == 0x2000,
"vmcs_set_bits does not support 64-bit fields");
-@@ -1865,7 +1865,11 @@ static void reload_tss(void)
+@@ -1866,7 +1866,11 @@ static void reload_tss(void)
struct desc_struct *descs;
descs = (void *)gdt->address;
@@ -32368,7 +32186,7 @@ index 8326d68..3cc3895 100644
load_TR_desc();
}
-@@ -2159,6 +2163,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
+@@ -2160,6 +2164,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */
@@ -32379,7 +32197,7 @@ index 8326d68..3cc3895 100644
rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
-@@ -2485,7 +2493,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
+@@ -2486,7 +2494,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
* guest_tsc = (host_tsc * tsc multiplier) >> 48 + tsc_offset
* -- Intel TSC Scaling for Virtualization White Paper, sec 1.3
*/
@@ -32388,7 +32206,7 @@ index 8326d68..3cc3895 100644
{
u64 host_tsc, tsc_offset;
-@@ -4726,7 +4734,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
+@@ -4727,7 +4735,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
unsigned long cr4;
vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
@@ -32399,7 +32217,7 @@ index 8326d68..3cc3895 100644
/* Save the most likely value for this task's CR4 in the VMCS. */
cr4 = cr4_read_shadow();
-@@ -4753,7 +4764,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
+@@ -4754,7 +4765,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
vmx->host_idt_base = dt.address;
@@ -32408,7 +32226,7 @@ index 8326d68..3cc3895 100644
rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
-@@ -6314,11 +6325,17 @@ static __init int hardware_setup(void)
+@@ -6315,11 +6326,17 @@ static __init int hardware_setup(void)
* page upon invalidation. No need to do anything if not
* using the APIC_ACCESS_ADDR VMCS field.
*/
@@ -32428,7 +32246,7 @@ index 8326d68..3cc3895 100644
if (enable_ept && !cpu_has_vmx_ept_2m_page())
kvm_disable_largepages();
-@@ -6385,10 +6402,12 @@ static __init int hardware_setup(void)
+@@ -6386,10 +6403,12 @@ static __init int hardware_setup(void)
enable_pml = 0;
if (!enable_pml) {
@@ -32441,7 +32259,7 @@ index 8326d68..3cc3895 100644
}
kvm_set_posted_intr_wakeup_handler(wakeup_handler);
-@@ -8719,6 +8738,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8726,6 +8745,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
"jmp 2f \n\t"
"1: " __ex(ASM_VMX_VMRESUME) "\n\t"
"2: "
@@ -32454,7 +32272,7 @@ index 8326d68..3cc3895 100644
/* Save guest registers, load host registers, keep flags */
"mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
"pop %0 \n\t"
-@@ -8771,6 +8796,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8778,6 +8803,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
#endif
[cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
[wordsize]"i"(sizeof(ulong))
@@ -32466,7 +32284,7 @@ index 8326d68..3cc3895 100644
: "cc", "memory"
#ifdef CONFIG_X86_64
, "rax", "rbx", "rdi", "rsi"
-@@ -8784,7 +8814,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8791,7 +8821,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
if (debugctlmsr)
update_debugctlmsr(debugctlmsr);
@@ -32475,7 +32293,7 @@ index 8326d68..3cc3895 100644
/*
* The sysexit path does not restore ds/es, so we must set them to
* a reasonable value ourselves.
-@@ -8793,8 +8823,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8800,8 +8830,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
* may be executed in interrupt context, which saves and restore segments
* around it, nullifying its effect.
*/
@@ -32496,7 +32314,7 @@ index 8326d68..3cc3895 100644
#endif
vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
-@@ -10921,7 +10961,7 @@ out:
+@@ -10934,7 +10974,7 @@ out:
return ret;
}
@@ -32692,6 +32510,21 @@ index 3847e73..39f5456 100644
}
/*G:050
+diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
+index 72a5767..70ea543 100644
+--- a/arch/x86/lib/Makefile
++++ b/arch/x86/lib/Makefile
+@@ -28,6 +28,10 @@ lib-$(CONFIG_INSTRUCTION_DECODER) += insn.o inat.o
+ obj-y += msr.o msr-reg.o msr-reg-export.o
+
+ ifeq ($(CONFIG_X86_32),y)
++ CFLAGS_strstr_32.o += $(INITIFY_DISABLE_VERIFY_NOCAPTURE_FUNCTIONS)
++ CFLAGS_string_32.o += $(INITIFY_DISABLE_VERIFY_NOCAPTURE_FUNCTIONS)
++ CFLAGS_memcpy_32.o += $(INITIFY_DISABLE_VERIFY_NOCAPTURE_FUNCTIONS)
++
+ obj-y += atomic64_32.o
+ lib-y += atomic64_cx8_32.o
+ lib-y += checksum_32.o
diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
index 9b0ca8f..bb4af41 100644
--- a/arch/x86/lib/atomic64_386_32.S
@@ -40463,6 +40296,245 @@ index c1d138e..fa32222f 100644
/*
* Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
*/
+diff --git a/drivers/acpi/acpica/acutils.h b/drivers/acpi/acpica/acutils.h
+index a7dbb2b..93e986e 100644
+--- a/drivers/acpi/acpica/acutils.h
++++ b/drivers/acpi/acpica/acutils.h
+@@ -274,7 +274,7 @@ void acpi_ut_init_stack_ptr_trace(void);
+
+ void acpi_ut_track_stack_ptr(void);
+
+-void
++__nocapture(2) void
+ acpi_ut_trace(u32 line_number,
+ const char *function_name,
+ const char *module_name, u32 component_id);
+diff --git a/drivers/acpi/acpica/dbhistry.c b/drivers/acpi/acpica/dbhistry.c
+index 46bd65d..ec9da48 100644
+--- a/drivers/acpi/acpica/dbhistry.c
++++ b/drivers/acpi/acpica/dbhistry.c
+@@ -155,7 +155,7 @@ void acpi_db_display_history(void)
+
+ for (i = 0; i < acpi_gbl_num_history; i++) {
+ if (acpi_gbl_history_buffer[history_index].command) {
+- acpi_os_printf("%3ld %s\n",
++ acpi_os_printf("%3u %s\n",
+ acpi_gbl_history_buffer[history_index].
+ cmd_num,
+ acpi_gbl_history_buffer[history_index].
+diff --git a/drivers/acpi/acpica/dbinput.c b/drivers/acpi/acpica/dbinput.c
+index 7cd5d2e..a837ce6 100644
+--- a/drivers/acpi/acpica/dbinput.c
++++ b/drivers/acpi/acpica/dbinput.c
+@@ -606,7 +606,7 @@ static u32 acpi_db_get_line(char *input_buffer)
+ (acpi_gbl_db_parsed_buf, sizeof(acpi_gbl_db_parsed_buf),
+ input_buffer)) {
+ acpi_os_printf
+- ("Buffer overflow while parsing input line (max %u characters)\n",
++ ("Buffer overflow while parsing input line (max %lu characters)\n",
+ sizeof(acpi_gbl_db_parsed_buf));
+ return (0);
+ }
+@@ -862,24 +862,24 @@ acpi_db_command_dispatch(char *input_buffer,
+
+ if (param_count == 0) {
+ acpi_os_printf
+- ("Current debug level for file output is: %8.8lX\n",
++ ("Current debug level for file output is: %8.8X\n",
+ acpi_gbl_db_debug_level);
+ acpi_os_printf
+- ("Current debug level for console output is: %8.8lX\n",
++ ("Current debug level for console output is: %8.8X\n",
+ acpi_gbl_db_console_debug_level);
+ } else if (param_count == 2) {
+ temp = acpi_gbl_db_console_debug_level;
+ acpi_gbl_db_console_debug_level =
+ strtoul(acpi_gbl_db_args[1], NULL, 16);
+ acpi_os_printf
+- ("Debug Level for console output was %8.8lX, now %8.8lX\n",
++ ("Debug Level for console output was %8.8X, now %8.8X\n",
+ temp, acpi_gbl_db_console_debug_level);
+ } else {
+ temp = acpi_gbl_db_debug_level;
+ acpi_gbl_db_debug_level =
+ strtoul(acpi_gbl_db_args[1], NULL, 16);
+ acpi_os_printf
+- ("Debug Level for file output was %8.8lX, now %8.8lX\n",
++ ("Debug Level for file output was %8.8X, now %8.8X\n",
+ temp, acpi_gbl_db_debug_level);
+ }
+ break;
+diff --git a/drivers/acpi/acpica/dbstats.c b/drivers/acpi/acpica/dbstats.c
+index a414e1f..de70230 100644
+--- a/drivers/acpi/acpica/dbstats.c
++++ b/drivers/acpi/acpica/dbstats.c
+@@ -377,17 +377,17 @@ acpi_status acpi_db_display_statistics(char *type_arg)
+ "ACPI_TYPE", "NODES", "OBJECTS");
+
+ for (i = 0; i < ACPI_TYPE_NS_NODE_MAX; i++) {
+- acpi_os_printf("%16.16s % 10ld% 10ld\n",
++ acpi_os_printf("%16.16s % 10d% 10d\n",
+ acpi_ut_get_type_name(i),
+ acpi_gbl_node_type_count[i],
+ acpi_gbl_obj_type_count[i]);
+ }
+
+- acpi_os_printf("%16.16s % 10ld% 10ld\n", "Misc/Unknown",
++ acpi_os_printf("%16.16s % 10d% 10d\n", "Misc/Unknown",
+ acpi_gbl_node_type_count_misc,
+ acpi_gbl_obj_type_count_misc);
+
+- acpi_os_printf("%16.16s % 10ld% 10ld\n", "TOTALS:",
++ acpi_os_printf("%16.16s % 10d% 10d\n", "TOTALS:",
+ acpi_gbl_num_nodes, acpi_gbl_num_objects);
+ break;
+
+@@ -415,16 +415,16 @@ acpi_status acpi_db_display_statistics(char *type_arg)
+ case CMD_STAT_MISC:
+
+ acpi_os_printf("\nMiscellaneous Statistics:\n\n");
+- acpi_os_printf("Calls to AcpiPsFind:.. ........% 7ld\n",
++ acpi_os_printf("Calls to AcpiPsFind:.. ........% 7u\n",
+ acpi_gbl_ps_find_count);
+- acpi_os_printf("Calls to AcpiNsLookup:..........% 7ld\n",
++ acpi_os_printf("Calls to AcpiNsLookup:..........% 7u\n",
+ acpi_gbl_ns_lookup_count);
+
+ acpi_os_printf("\n");
+
+ acpi_os_printf("Mutex usage:\n\n");
+ for (i = 0; i < ACPI_NUM_MUTEX; i++) {
+- acpi_os_printf("%-28s: % 7ld\n",
++ acpi_os_printf("%-28s: % 7u\n",
+ acpi_ut_get_mutex_name(i),
+ acpi_gbl_mutex_info[i].use_count);
+ }
+@@ -434,87 +434,87 @@ acpi_status acpi_db_display_statistics(char *type_arg)
+
+ acpi_os_printf("\nInternal object sizes:\n\n");
+
+- acpi_os_printf("Common %3d\n",
++ acpi_os_printf("Common %3lu\n",
+ sizeof(struct acpi_object_common));
+- acpi_os_printf("Number %3d\n",
++ acpi_os_printf("Number %3lu\n",
+ sizeof(struct acpi_object_integer));
+- acpi_os_printf("String %3d\n",
++ acpi_os_printf("String %3lu\n",
+ sizeof(struct acpi_object_string));
+- acpi_os_printf("Buffer %3d\n",
++ acpi_os_printf("Buffer %3lu\n",
+ sizeof(struct acpi_object_buffer));
+- acpi_os_printf("Package %3d\n",
++ acpi_os_printf("Package %3lu\n",
+ sizeof(struct acpi_object_package));
+- acpi_os_printf("BufferField %3d\n",
++ acpi_os_printf("BufferField %3lu\n",
+ sizeof(struct acpi_object_buffer_field));
+- acpi_os_printf("Device %3d\n",
++ acpi_os_printf("Device %3lu\n",
+ sizeof(struct acpi_object_device));
+- acpi_os_printf("Event %3d\n",
++ acpi_os_printf("Event %3lu\n",
+ sizeof(struct acpi_object_event));
+- acpi_os_printf("Method %3d\n",
++ acpi_os_printf("Method %3lu\n",
+ sizeof(struct acpi_object_method));
+- acpi_os_printf("Mutex %3d\n",
++ acpi_os_printf("Mutex %3lu\n",
+ sizeof(struct acpi_object_mutex));
+- acpi_os_printf("Region %3d\n",
++ acpi_os_printf("Region %3lu\n",
+ sizeof(struct acpi_object_region));
+- acpi_os_printf("PowerResource %3d\n",
++ acpi_os_printf("PowerResource %3lu\n",
+ sizeof(struct acpi_object_power_resource));
+- acpi_os_printf("Processor %3d\n",
++ acpi_os_printf("Processor %3lu\n",
+ sizeof(struct acpi_object_processor));
+- acpi_os_printf("ThermalZone %3d\n",
++ acpi_os_printf("ThermalZone %3lu\n",
+ sizeof(struct acpi_object_thermal_zone));
+- acpi_os_printf("RegionField %3d\n",
++ acpi_os_printf("RegionField %3lu\n",
+ sizeof(struct acpi_object_region_field));
+- acpi_os_printf("BankField %3d\n",
++ acpi_os_printf("BankField %3lu\n",
+ sizeof(struct acpi_object_bank_field));
+- acpi_os_printf("IndexField %3d\n",
++ acpi_os_printf("IndexField %3lu\n",
+ sizeof(struct acpi_object_index_field));
+- acpi_os_printf("Reference %3d\n",
++ acpi_os_printf("Reference %3lu\n",
+ sizeof(struct acpi_object_reference));
+- acpi_os_printf("Notify %3d\n",
++ acpi_os_printf("Notify %3lu\n",
+ sizeof(struct acpi_object_notify_handler));
+- acpi_os_printf("AddressSpace %3d\n",
++ acpi_os_printf("AddressSpace %3lu\n",
+ sizeof(struct acpi_object_addr_handler));
+- acpi_os_printf("Extra %3d\n",
++ acpi_os_printf("Extra %3lu\n",
+ sizeof(struct acpi_object_extra));
+- acpi_os_printf("Data %3d\n",
++ acpi_os_printf("Data %3lu\n",
+ sizeof(struct acpi_object_data));
+
+ acpi_os_printf("\n");
+
+- acpi_os_printf("ParseObject %3d\n",
++ acpi_os_printf("ParseObject %3lu\n",
+ sizeof(struct acpi_parse_obj_common));
+- acpi_os_printf("ParseObjectNamed %3d\n",
++ acpi_os_printf("ParseObjectNamed %3lu\n",
+ sizeof(struct acpi_parse_obj_named));
+- acpi_os_printf("ParseObjectAsl %3d\n",
++ acpi_os_printf("ParseObjectAsl %3lu\n",
+ sizeof(struct acpi_parse_obj_asl));
+- acpi_os_printf("OperandObject %3d\n",
++ acpi_os_printf("OperandObject %3lu\n",
+ sizeof(union acpi_operand_object));
+- acpi_os_printf("NamespaceNode %3d\n",
++ acpi_os_printf("NamespaceNode %3lu\n",
+ sizeof(struct acpi_namespace_node));
+- acpi_os_printf("AcpiObject %3d\n",
++ acpi_os_printf("AcpiObject %3lu\n",
+ sizeof(union acpi_object));
+
+ acpi_os_printf("\n");
+
+- acpi_os_printf("Generic State %3d\n",
++ acpi_os_printf("Generic State %3lu\n",
+ sizeof(union acpi_generic_state));
+- acpi_os_printf("Common State %3d\n",
++ acpi_os_printf("Common State %3lu\n",
+ sizeof(struct acpi_common_state));
+- acpi_os_printf("Control State %3d\n",
++ acpi_os_printf("Control State %3lu\n",
+ sizeof(struct acpi_control_state));
+- acpi_os_printf("Update State %3d\n",
++ acpi_os_printf("Update State %3lu\n",
+ sizeof(struct acpi_update_state));
+- acpi_os_printf("Scope State %3d\n",
++ acpi_os_printf("Scope State %3lu\n",
+ sizeof(struct acpi_scope_state));
+- acpi_os_printf("Parse Scope %3d\n",
++ acpi_os_printf("Parse Scope %3lu\n",
+ sizeof(struct acpi_pscope_state));
+- acpi_os_printf("Package State %3d\n",
++ acpi_os_printf("Package State %3lu\n",
+ sizeof(struct acpi_pkg_state));
+- acpi_os_printf("Thread State %3d\n",
++ acpi_os_printf("Thread State %3lu\n",
+ sizeof(struct acpi_thread_state));
+- acpi_os_printf("Result Values %3d\n",
++ acpi_os_printf("Result Values %3lu\n",
+ sizeof(struct acpi_result_values));
+- acpi_os_printf("Notify Info %3d\n",
++ acpi_os_printf("Notify Info %3lu\n",
+ sizeof(struct acpi_notify_info));
+ break;
+
diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
index f76e0ea..4b83315 100644
--- a/drivers/acpi/acpica/hwxfsleep.c
@@ -40485,6 +40557,19 @@ index f76e0ea..4b83315 100644
};
/*
+diff --git a/drivers/acpi/acpica/utdebug.c b/drivers/acpi/acpica/utdebug.c
+index 5744222..4ac231a 100644
+--- a/drivers/acpi/acpica/utdebug.c
++++ b/drivers/acpi/acpica/utdebug.c
+@@ -189,7 +189,7 @@ acpi_debug_print(u32 requested_debug_level,
+ * Display the module name, current line number, thread ID (if requested),
+ * current procedure nesting level, and the current procedure name
+ */
+- acpi_os_printf("%9s-%04ld ", module_name, line_number);
++ acpi_os_printf("%9s-%04u ", module_name, line_number);
+
+ #ifdef ACPI_APPLICATION
+ /*
diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
index 16129c7..8b675cd 100644
--- a/drivers/acpi/apei/apei-internal.h
@@ -43166,7 +43251,7 @@ index a49b283..a3af977 100644
cci_pmu->pmu = (struct pmu) {
.name = cci_pmu->model->name,
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
-index 1b257ea..2280898 100644
+index 1b257ea..128733f 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -610,7 +610,6 @@ int register_cdrom(struct cdrom_device_info *cdi)
@@ -43204,7 +43289,7 @@ index 1b257ea..2280898 100644
nr = nframes;
do {
- cgc.buffer = kmalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
-+ cgc.buffer = kzalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
++ cgc.buffer = kcalloc(nr, CD_FRAMESIZE_RAW, GFP_KERNEL);
if (cgc.buffer)
break;
@@ -49361,7 +49446,7 @@ index 4709b54..beb015d 100644
{
struct udl_device *udl = connector->dev->dev_private;
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
-index d5df555..b3323da 100644
+index cc2daba..89688d5 100644
--- a/drivers/gpu/drm/udl/udl_fb.c
+++ b/drivers/gpu/drm/udl/udl_fb.c
@@ -239,7 +239,6 @@ static int udl_fb_release(struct fb_info *info, int user)
@@ -51084,7 +51169,7 @@ index 4627646..98912d6 100644
struct i40iw_sq_uk_wr_trk_info {
u64 wrid;
diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
-index 9c2e53d..8aef3b6 100644
+index 0f21c3a..257e0a7 100644
--- a/drivers/infiniband/hw/mlx4/mad.c
+++ b/drivers/infiniband/hw/mlx4/mad.c
@@ -99,7 +99,7 @@ __be64 mlx4_ib_gen_node_guid(void)
@@ -51097,7 +51182,7 @@ index 9c2e53d..8aef3b6 100644
}
diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
-index 8f7ad07..5d02b6d 100644
+index 097bfcc..06fe83a 100644
--- a/drivers/infiniband/hw/mlx4/mcg.c
+++ b/drivers/infiniband/hw/mlx4/mcg.c
@@ -1043,7 +1043,7 @@ int mlx4_ib_mcg_port_init(struct mlx4_ib_demux_ctx *ctx)
@@ -51110,7 +51195,7 @@ index 8f7ad07..5d02b6d 100644
ctx->mcg_wq = create_singlethread_workqueue(name);
if (!ctx->mcg_wq)
diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
-index 29acda2..86bbd08 100644
+index d4ca381..6ad3135 100644
--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
@@ -457,7 +457,7 @@ struct mlx4_ib_demux_ctx {
@@ -51700,7 +51785,7 @@ index 6abe1c6..f866a31 100644
struct qib_devdata *dd = pci_get_drvdata(pdev);
pci_ers_result_t ret = PCI_ERS_RESULT_RECOVERED;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
-index 5f58c41..d96d038 100644
+index ddebda5..9f61279 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -1022,7 +1022,7 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
@@ -53762,6 +53847,28 @@ index 29ec2df..9c7123c 100644
cs->dc.isac.arcofitimer.data = (long) cs;
init_timer(&cs->dc.isac.arcofitimer);
init_waitqueue_head(&cs->dc.isac.arcofi_wait);
+diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
+index bf04d2a..a7d53c9 100644
+--- a/drivers/isdn/hisax/config.c
++++ b/drivers/isdn/hisax/config.c
+@@ -659,7 +659,7 @@ int jiftime(char *s, long mark)
+
+ static u_char tmpbuf[HISAX_STATUS_BUFSIZE];
+
+-void VHiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt,
++void VHiSax_putstatus(struct IsdnCardState *cs, char *head, const char *fmt,
+ va_list args)
+ {
+ /* if head == NULL the fmt contains the full info */
+@@ -729,7 +729,7 @@ void VHiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt,
+ }
+ }
+
+-void HiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, ...)
++void HiSax_putstatus(struct IsdnCardState *cs, char *head, const char *fmt, ...)
+ {
+ va_list args;
+
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c
index 4fc90de..fda68cd 100644
--- a/drivers/isdn/hisax/diva.c
@@ -54094,6 +54201,22 @@ index 394da64..85f5f63 100644
cs->hw.hfcD.timer.data = (long) cs;
init_timer(&cs->hw.hfcD.timer);
cs->cardmsg = &hfcs_card_msg;
+diff --git a/drivers/isdn/hisax/hisax.h b/drivers/isdn/hisax/hisax.h
+index 6ead6314..338d040 100644
+--- a/drivers/isdn/hisax/hisax.h
++++ b/drivers/isdn/hisax/hisax.h
+@@ -1288,9 +1288,9 @@ int jiftime(char *s, long mark);
+ int HiSax_command(isdn_ctrl *ic);
+ int HiSax_writebuf_skb(int id, int chan, int ack, struct sk_buff *skb);
+ __printf(3, 4)
+-void HiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, ...);
++void HiSax_putstatus(struct IsdnCardState *cs, char *head, const char *fmt, ...);
+ __printf(3, 0)
+-void VHiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, va_list args);
++void VHiSax_putstatus(struct IsdnCardState *cs, char *head, const char *fmt, va_list args);
+ void HiSax_reportcard(int cardnr, int sel);
+ int QuickHex(char *txt, u_char *p, int cnt);
+ void LogFrame(struct IsdnCardState *cs, u_char *p, int size);
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c
index 96d1df0..77a05ee 100644
--- a/drivers/isdn/hisax/icc.c
@@ -59642,17 +59765,16 @@ index 70c724b..0c24beb 100644
/* It supports additional host capabilities if needed */
diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c
-index f44e2ab..6ce0c2c 100644
+index f44e2ab..29a9681 100644
--- a/drivers/mmc/host/tmio_mmc_pio.c
+++ b/drivers/mmc/host/tmio_mmc_pio.c
-@@ -1072,7 +1072,10 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host,
+@@ -1072,7 +1072,9 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host,
goto host_free;
}
- tmio_mmc_ops.start_signal_voltage_switch = _host->start_signal_voltage_switch;
+ pax_open_kernel();
-+ const_cast(tmio_mmc_ops.start_signal_voltage_switch) =
-+ _host->start_signal_voltage_switch;
++ const_cast(tmio_mmc_ops.start_signal_voltage_switch) = _host->start_signal_voltage_switch;
+ pax_close_kernel();
mmc->ops = &tmio_mmc_ops;
@@ -60039,10 +60161,10 @@ index 1deb8ff..4e2b0c1 100644
struct bfin_can_priv *priv = netdev_priv(dev);
struct bfin_can_regs __iomem *reg = priv->membase;
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
-index ad535a8..b7e3ad7 100644
+index eab1327..312c18f 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
-@@ -1016,7 +1016,7 @@ static void can_dellink(struct net_device *dev, struct list_head *head)
+@@ -1023,7 +1023,7 @@ static void can_dellink(struct net_device *dev, struct list_head *head)
return;
}
@@ -66661,10 +66783,10 @@ index 4fdc3da..4f63dd9 100644
((u64)seq.tkip.iv32 << 16));
break;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-index b92b75f..04a4e09 100644
+index 6b8d9a5..b27fd14 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
-@@ -405,7 +405,7 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
+@@ -396,7 +396,7 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
case WLAN_CIPHER_SUITE_CCMP:
case WLAN_CIPHER_SUITE_CCMP_256:
iwl_mvm_set_tx_cmd_ccmp(info, tx_cmd);
@@ -66673,7 +66795,7 @@ index b92b75f..04a4e09 100644
crypto_hdr[0] = pn;
crypto_hdr[2] = 0;
crypto_hdr[3] = 0x20 | (keyconf->keyidx << 6);
-@@ -418,7 +418,7 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
+@@ -409,7 +409,7 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
case WLAN_CIPHER_SUITE_TKIP:
tx_cmd->sec_ctl = TX_CMD_SEC_TKIP;
@@ -72496,6 +72618,69 @@ index c2a6f9f..5a37cc4 100644
switch (evt) {
case CSIO_SCSIE_ABORT:
case CSIO_SCSIE_CLOSE:
+diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
+index 78ce4d61..b3f6ff60b 100644
+--- a/drivers/scsi/esas2r/esas2r_init.c
++++ b/drivers/scsi/esas2r/esas2r_init.c
+@@ -237,7 +237,7 @@ static void esas2r_claim_interrupts(struct esas2r_adapter *a)
+ flags |= IRQF_SHARED;
+
+ esas2r_log(ESAS2R_LOG_INFO,
+- "esas2r_claim_interrupts irq=%d (%p, %s, %x)",
++ "esas2r_claim_interrupts irq=%d (%p, %s, %lx)",
+ a->pcid->irq, a, a->name, flags);
+
+ if (request_irq(a->pcid->irq,
+diff --git a/drivers/scsi/esas2r/esas2r_ioctl.c b/drivers/scsi/esas2r/esas2r_ioctl.c
+index 3e84834..34976f9 100644
+--- a/drivers/scsi/esas2r/esas2r_ioctl.c
++++ b/drivers/scsi/esas2r/esas2r_ioctl.c
+@@ -1301,7 +1301,7 @@ int esas2r_ioctl_handler(void *hostdata, int cmd, void __user *arg)
+ ioctl = kzalloc(sizeof(struct atto_express_ioctl), GFP_KERNEL);
+ if (ioctl == NULL) {
+ esas2r_log(ESAS2R_LOG_WARN,
+- "ioctl_handler kzalloc failed for %d bytes",
++ "ioctl_handler kzalloc failed for %lu bytes",
+ sizeof(struct atto_express_ioctl));
+ return -ENOMEM;
+ }
+diff --git a/drivers/scsi/esas2r/esas2r_log.h b/drivers/scsi/esas2r/esas2r_log.h
+index 7b6397b..75b9d23 100644
+--- a/drivers/scsi/esas2r/esas2r_log.h
++++ b/drivers/scsi/esas2r/esas2r_log.h
+@@ -61,8 +61,8 @@ enum {
+ #endif
+ };
+
+-int esas2r_log(const long level, const char *format, ...);
+-int esas2r_log_dev(const long level,
++__printf(2, 3) int esas2r_log(const long level, const char *format, ...);
++__printf(3, 4) int esas2r_log_dev(const long level,
+ const struct device *dev,
+ const char *format,
+ ...);
+diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c
+index 2aca4d1..cdee863 100644
+--- a/drivers/scsi/esas2r/esas2r_main.c
++++ b/drivers/scsi/esas2r/esas2r_main.c
+@@ -198,7 +198,7 @@ static ssize_t write_hw(struct file *file, struct kobject *kobj,
+ GFP_KERNEL);
+ if (a->local_atto_ioctl == NULL) {
+ esas2r_log(ESAS2R_LOG_WARN,
+- "write_hw kzalloc failed for %d bytes",
++ "write_hw kzalloc failed for %lu bytes",
+ sizeof(struct atto_ioctl));
+ return -ENOMEM;
+ }
+@@ -1186,7 +1186,7 @@ retry:
+ } else {
+ esas2r_log(ESAS2R_LOG_CRIT,
+ "unable to allocate a request for a "
+- "device reset (%d:%d)!",
++ "device reset (%d:%llu)!",
+ cmd->device->id,
+ cmd->device->lun);
+ }
diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
index 045c4e1..13de803 100644
--- a/drivers/scsi/fcoe/fcoe_sysfs.c
@@ -74293,7 +74478,7 @@ index 629080f..b6db85a 100644
}
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
-index 0c1a77c..c25bf97 100644
+index 4c281df..1960930 100644
--- a/drivers/staging/fbtft/fbtft-core.c
+++ b/drivers/staging/fbtft/fbtft-core.c
@@ -649,7 +649,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
@@ -96225,10 +96410,10 @@ index 71d5982..3112bf6 100644
/*
* flock.c
diff --git a/fs/aio.c b/fs/aio.c
-index fb8e45b..d651330 100644
+index 4fe81d1..85f39a0 100644
--- a/fs/aio.c
+++ b/fs/aio.c
-@@ -450,7 +450,7 @@ static int aio_setup_ring(struct kioctx *ctx)
+@@ -455,7 +455,7 @@ static int aio_setup_ring(struct kioctx *ctx)
size += sizeof(struct io_event) * nr_events;
nr_pages = PFN_UP(size);
@@ -98269,7 +98454,7 @@ index eccd339..4c1d995 100644
return 0;
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
-index 6e0fedf..37aeaec 100644
+index cf22f1e..9367a77 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -261,10 +261,18 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
@@ -98314,6 +98499,19 @@ index 91e0248..08de6ce 100644
if (!err)
sb->s_bdi = &fsc->backing_dev_info;
return err;
+diff --git a/fs/char_dev.c b/fs/char_dev.c
+index 687471d..ed3ad0c 100644
+--- a/fs/char_dev.c
++++ b/fs/char_dev.c
+@@ -70,7 +70,7 @@ void chrdev_show(struct seq_file *f, off_t offset)
+ *
+ * Returns a -ve errno on failure.
+ */
+-static struct char_device_struct *
++static __nocapture(4) struct char_device_struct *
+ __register_chrdev_region(unsigned int major, unsigned int baseminor,
+ int minorct, const char *name)
+ {
diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
index 788e191..ca209d6 100644
--- a/fs/cifs/cifs_debug.c
@@ -99545,7 +99743,7 @@ index e4141f2..d8263e8 100644
i += packet_length_size;
if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
diff --git a/fs/exec.c b/fs/exec.c
-index 887c1c9..bb6f3604 100644
+index 887c1c9..ee86e3c 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -57,8 +57,20 @@
@@ -100063,7 +100261,7 @@ index 887c1c9..bb6f3604 100644
out:
if (bprm->mm) {
acct_arg_size(bprm, 0);
-@@ -1862,3 +2043,316 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
+@@ -1862,3 +2043,315 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
argv, envp, flags);
}
#endif
@@ -100365,16 +100563,15 @@ index 887c1c9..bb6f3604 100644
+#endif
+
+#ifdef CONFIG_PAX_SIZE_OVERFLOW
-+
+static DEFINE_RATELIMIT_STATE(size_overflow_ratelimit, 15 * HZ, 3);
-+extern bool pax_size_overflow_report_only;
+
+void __nocapture(1, 3, 4) __used report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
+{
+ if (!pax_size_overflow_report_only || __ratelimit(&size_overflow_ratelimit)) {
-+ printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
++ pr_emerg("PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
+ dump_stack();
+ }
++
+ if (!pax_size_overflow_report_only)
+ do_group_exit(SIGKILL);
+}
@@ -105348,7 +105545,7 @@ index 8cfa21f..fc50292 100644
__be32 status;
diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
-index d81f96a..e1d0f2f 100644
+index 656f68f..79c0026 100644
--- a/fs/nfs/callback_xdr.c
+++ b/fs/nfs/callback_xdr.c
@@ -53,7 +53,7 @@ struct callback_op {
@@ -105474,7 +105671,7 @@ index d81f96a..e1d0f2f 100644
__be32 *p;
__be32 status = res->csr_status;
-@@ -963,43 +972,41 @@ static struct callback_op callback_ops[] = {
+@@ -967,43 +976,41 @@ static struct callback_op callback_ops[] = {
.res_maxsize = CB_OP_HDR_RES_MAXSZ,
},
[OP_CB_GETATTR] = {
@@ -105534,7 +105731,7 @@ index d81f96a..e1d0f2f 100644
.res_maxsize = CB_OP_RECALLSLOT_RES_MAXSZ,
},
#endif /* CONFIG_NFS_V4_1 */
-@@ -1011,13 +1018,13 @@ static struct callback_op callback_ops[] = {
+@@ -1015,13 +1022,13 @@ static struct callback_op callback_ops[] = {
static struct svc_procedure nfs4_callback_procedures1[] = {
[CB_NULL] = {
.pc_func = nfs4_callback_null,
@@ -113250,6 +113447,34 @@ index e455e83..6e2b732 100644
}
EXPORT_SYMBOL_GPL(fsnotify_get_cookie);
+diff --git a/fs/ntfs/debug.h b/fs/ntfs/debug.h
+index 61bf091..6ac5619 100644
+--- a/fs/ntfs/debug.h
++++ b/fs/ntfs/debug.h
+@@ -30,7 +30,7 @@
+
+ extern int debug_msgs;
+
+-extern __printf(4, 5)
++extern __printf(4, 5) __nocapture(3)
+ void __ntfs_debug(const char *file, int line, const char *function,
+ const char *format, ...);
+ /**
+@@ -58,12 +58,12 @@ do { \
+
+ #endif /* !DEBUG */
+
+-extern __printf(3, 4)
++extern __printf(3, 4) __nocapture(1)
+ void __ntfs_warning(const char *function, const struct super_block *sb,
+ const char *fmt, ...);
+ #define ntfs_warning(sb, f, a...) __ntfs_warning(__func__, sb, f, ##a)
+
+-extern __printf(3, 4)
++extern __printf(3, 4) __nocapture(1)
+ void __ntfs_error(const char *function, const struct super_block *sb,
+ const char *fmt, ...);
+ #define ntfs_error(sb, f, a...) __ntfs_error(__func__, sb, f, ##a)
diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c
index a186135..31eb358 100644
--- a/fs/ntfs/dir.c
@@ -113416,6 +113641,19 @@ index ecb4987..c723ded 100644
{
ntfs_volume *vol;
struct buffer_head *bh;
+diff --git a/fs/ocfs2/cluster/masklog.h b/fs/ocfs2/cluster/masklog.h
+index 308ea0e..3c16da6 100644
+--- a/fs/ocfs2/cluster/masklog.h
++++ b/fs/ocfs2/cluster/masklog.h
+@@ -162,7 +162,7 @@ extern struct mlog_bits mlog_and_bits, mlog_not_bits;
+
+ #endif
+
+-__printf(4, 5)
++__printf(4, 5) __nocapture(2)
+ void __mlog_printk(const u64 *m, const char *func, int line,
+ const char *fmt, ...);
+
diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h
index 004f2cb..238f6fe 100644
--- a/fs/ocfs2/dlm/dlmcommon.h
@@ -115671,7 +115909,7 @@ index 510413eb..34d9a8c 100644
seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 4648c7f..1cd9ac3 100644
+index 4648c7f..5e9f7bf 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -15,12 +15,19 @@
@@ -115744,25 +115982,7 @@ index 4648c7f..1cd9ac3 100644
if (IS_ERR(priv->mm)) {
int err = PTR_ERR(priv->mm);
-@@ -263,14 +291,15 @@ static int do_maps_open(struct inode *inode, struct file *file,
- * Indicate if the VMA is a stack for the given task; for
- * /proc/PID/maps that is the stack of the main task.
- */
--static int is_stack(struct proc_maps_private *priv,
-+static bool is_stack(struct proc_maps_private *priv,
- struct vm_area_struct *vma, int is_pid)
- {
-- int stack = 0;
-+ bool stack = false;
-
- if (is_pid) {
- stack = vma->vm_start <= vma->vm_mm->start_stack &&
- vma->vm_end >= vma->vm_mm->start_stack;
-+ stack |= vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP);
- } else {
- struct inode *inode = priv->inode;
- struct task_struct *task;
-@@ -285,7 +314,7 @@ static int is_stack(struct proc_maps_private *priv,
+@@ -285,7 +313,7 @@ static int is_stack(struct proc_maps_private *priv,
}
static void
@@ -115771,7 +115991,7 @@ index 4648c7f..1cd9ac3 100644
{
struct mm_struct *mm = vma->vm_mm;
struct file *file = vma->vm_file;
-@@ -304,13 +333,8 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+@@ -304,13 +332,8 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
}
@@ -115787,7 +116007,7 @@ index 4648c7f..1cd9ac3 100644
seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
-@@ -320,7 +344,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+@@ -320,7 +343,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
flags & VM_WRITE ? 'w' : '-',
flags & VM_EXEC ? 'x' : '-',
flags & VM_MAYSHARE ? 's' : 'p',
@@ -115796,7 +116016,7 @@ index 4648c7f..1cd9ac3 100644
MAJOR(dev), MINOR(dev), ino);
/*
-@@ -329,7 +353,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+@@ -329,7 +352,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
*/
if (file) {
seq_pad(m, ' ');
@@ -115805,7 +116025,7 @@ index 4648c7f..1cd9ac3 100644
goto done;
}
-@@ -366,7 +390,20 @@ done:
+@@ -366,7 +389,20 @@ done:
static int show_map(struct seq_file *m, void *v, int is_pid)
{
@@ -115827,7 +116047,7 @@ index 4648c7f..1cd9ac3 100644
m_cache_vma(m, v);
return 0;
}
-@@ -646,6 +683,9 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
+@@ -646,6 +682,9 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
[ilog2(VM_RAND_READ)] = "rr",
[ilog2(VM_DONTCOPY)] = "dc",
[ilog2(VM_DONTEXPAND)] = "de",
@@ -115837,7 +116057,7 @@ index 4648c7f..1cd9ac3 100644
[ilog2(VM_ACCOUNT)] = "ac",
[ilog2(VM_NORESERVE)] = "nr",
[ilog2(VM_HUGETLB)] = "ht",
-@@ -727,7 +767,14 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
+@@ -727,7 +766,14 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
.mm = vma->vm_mm,
.private = &mss,
};
@@ -115852,7 +116072,7 @@ index 4648c7f..1cd9ac3 100644
memset(&mss, 0, sizeof mss);
#ifdef CONFIG_SHMEM
-@@ -754,10 +801,15 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
+@@ -754,10 +800,15 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
}
#endif
@@ -115871,7 +116091,7 @@ index 4648c7f..1cd9ac3 100644
seq_printf(m,
"Size: %8lu kB\n"
-@@ -777,7 +829,7 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
+@@ -777,7 +828,7 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
"KernelPageSize: %8lu kB\n"
"MMUPageSize: %8lu kB\n"
"Locked: %8lu kB\n",
@@ -115880,7 +116100,7 @@ index 4648c7f..1cd9ac3 100644
mss.resident >> 10,
(unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
mss.shared_clean >> 10,
-@@ -1433,7 +1485,7 @@ static int pagemap_open(struct inode *inode, struct file *file)
+@@ -1433,7 +1484,7 @@ static int pagemap_open(struct inode *inode, struct file *file)
{
struct mm_struct *mm;
@@ -115889,7 +116109,7 @@ index 4648c7f..1cd9ac3 100644
if (IS_ERR(mm))
return PTR_ERR(mm);
file->private_data = mm;
-@@ -1636,6 +1688,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1636,6 +1687,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
char buffer[64];
int nid;
@@ -115903,7 +116123,7 @@ index 4648c7f..1cd9ac3 100644
if (!mm)
return 0;
-@@ -1650,11 +1709,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1650,11 +1708,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
mpol_to_str(buffer, sizeof(buffer), proc_priv->task_mempolicy);
}
@@ -128598,6 +128818,37 @@ index 0000000..1af1e63
+
+ return retval;
+}
+diff --git a/include/acpi/acpiosxf.h b/include/acpi/acpiosxf.h
+index 562603d..7ee4475 100644
+--- a/include/acpi/acpiosxf.h
++++ b/include/acpi/acpiosxf.h
+@@ -337,11 +337,12 @@ acpi_status acpi_os_signal(u32 function, void *info);
+ * Debug print routines
+ */
+ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf
++__printf(1, 2)
+ void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);
+ #endif
+
+ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf
+-void acpi_os_vprintf(const char *format, va_list args);
++__printf(1, 0) void acpi_os_vprintf(const char *format, va_list args);
+ #endif
+
+ #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output
+diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h
+index 1ff3a76..c52f3b4 100644
+--- a/include/acpi/acpixf.h
++++ b/include/acpi/acpixf.h
+@@ -914,7 +914,7 @@ ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(3)
+ /*
+ * Debug output
+ */
+-ACPI_DBG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(6)
++ACPI_DBG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(6) __nocapture(3)
+ void ACPI_INTERNAL_VAR_XFACE
+ acpi_debug_print(u32 requested_debug_level,
+ u32 line_number,
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h
index 720446c..f32baee 100644
--- a/include/acpi/ghes.h
@@ -128627,7 +128878,7 @@ index 5bdab6b..9ae82fe 100644
#define pud_none(pud) 0
#define pud_bad(pud) 0
diff --git a/include/asm-generic/atomic-long.h b/include/asm-generic/atomic-long.h
-index 5e1f345..e3fb6e2 100644
+index 5e1f345..7e2ca85 100644
--- a/include/asm-generic/atomic-long.h
+++ b/include/asm-generic/atomic-long.h
@@ -22,6 +22,12 @@
@@ -128836,7 +129087,7 @@ index 5e1f345..e3fb6e2 100644
#undef ATOMIC_LONG_INC_DEC_OP
-@@ -187,4 +229,60 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
+@@ -187,4 +229,62 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
#define atomic_long_inc_not_zero(l) \
ATOMIC_LONG_PFX(_inc_not_zero)((ATOMIC_LONG_PFX(_t) *)(l))
@@ -128893,8 +129144,10 @@ index 5e1f345..e3fb6e2 100644
+#define atomic_long_add_return_unchecked(i, v) atomic_long_add_return((i), (v))
+#define atomic_long_inc_return_unchecked(v) atomic_long_inc_return(v)
+#define atomic_long_dec_unchecked(v) atomic_long_dec(v)
++#ifndef atomic_long_xchg_unchecked
+#define atomic_long_xchg_unchecked(v, i) atomic_long_xchg((v), (i))
+#endif
++#endif
+
#endif /* _ASM_GENERIC_ATOMIC_LONG_H */
diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h
@@ -128975,7 +129228,7 @@ index b097cf8..3d40e14 100644
if (x == 0)
return 0;
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
-index 6f96247..4cdf266 100644
+index 6f96247..f6ae0d7 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -62,13 +62,13 @@ struct bug_entry {
@@ -128983,11 +129236,11 @@ index 6f96247..4cdf266 100644
*/
#ifndef __WARN_TAINT
-extern __printf(3, 4)
-+extern __printf(3, 4) __nocapture(1, 3, 4)
++extern __printf(3, 4) __nocapture(1)
void warn_slowpath_fmt(const char *file, const int line,
const char *fmt, ...);
-extern __printf(4, 5)
-+extern __printf(4, 5) __nocapture(1, 4, 5)
++extern __printf(4, 5) __nocapture(1)
void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint,
const char *fmt, ...);
-extern void warn_slowpath_null(const char *file, const int line);
@@ -128995,6 +129248,14 @@ index 6f96247..4cdf266 100644
#define WANT_WARN_ON_SLOWPATH
#define __WARN() warn_slowpath_null(__FILE__, __LINE__)
#define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
+@@ -84,6 +84,7 @@ extern void warn_slowpath_null(const char *file, const int line);
+ /* used internally by panic.c */
+ struct warn_args;
+
++__nocapture(1, 0)
+ void __warn(const char *file, int line, void *caller, unsigned taint,
+ struct pt_regs *regs, struct warn_args *args);
+
diff --git a/include/asm-generic/cache.h b/include/asm-generic/cache.h
index 1bfcfe5..e04c5c9 100644
--- a/include/asm-generic/cache.h
@@ -129235,7 +129496,7 @@ index 32901d1..5fa5a13 100644
+
#endif /* __ASM_GENERIC_UACCESS_H */
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
-index 081d0f2..0cd1488 100644
+index 081d0f2..a3ce59c8 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -258,6 +258,7 @@
@@ -129246,15 +129507,17 @@ index 081d0f2..0cd1488 100644
*(__vermagic) /* Kernel version magic */ \
. = ALIGN(8); \
VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
-@@ -524,6 +525,7 @@
+@@ -523,7 +524,9 @@
+ MEM_DISCARD(init.data) \
KERNEL_CTORS() \
MCOUNT_REC() \
++ *(.init.rodata.str) \
*(.init.rodata) \
+ *(.init.rodata.*) \
FTRACE_EVENTS() \
TRACE_SYSCALLS() \
KPROBE_BLACKLIST() \
-@@ -547,6 +549,8 @@
+@@ -547,9 +550,12 @@
#define EXIT_DATA \
*(.exit.data) \
@@ -129263,7 +129526,11 @@ index 081d0f2..0cd1488 100644
*(.fini_array) \
*(.dtors) \
MEM_DISCARD(exit.data) \
-@@ -766,17 +770,18 @@
++ *(.exit.rodata.str) \
+ MEM_DISCARD(exit.rodata)
+
+ #define EXIT_TEXT \
+@@ -766,17 +772,18 @@
* section in the linker script will go there too. @phdr should have
* a leading colon.
*
@@ -129286,7 +129553,7 @@ index 081d0f2..0cd1488 100644
/**
* PERCPU_SECTION - define output section for percpu area, simple version
-@@ -838,12 +843,14 @@
+@@ -838,12 +845,14 @@
#define INIT_DATA_SECTION(initsetup_align) \
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
@@ -129356,7 +129623,7 @@ index ede6b97..1f5b11f 100644
int xts_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
struct scatterlist *src, unsigned int nbytes,
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index 84f1a8e..5ce8d8e 100644
+index 84f1a8e..128610c 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -59,6 +59,7 @@
@@ -129367,6 +129634,15 @@ index 84f1a8e..5ce8d8e 100644
#include <asm/uaccess.h>
#include <uapi/drm/drm.h>
+@@ -130,7 +131,7 @@ struct dma_buf_attachment;
+ #define DRM_UT_ATOMIC 0x10
+ #define DRM_UT_VBL 0x20
+
+-extern __printf(2, 3)
++extern __printf(2, 3) __nocapture(1)
+ void drm_ut_debug_printk(const char *function_name,
+ const char *format, ...);
+ extern __printf(1, 2)
@@ -243,10 +244,12 @@ void drm_err(const char *format, ...);
* \param cmd command.
* \param arg argument.
@@ -129585,11 +129861,26 @@ index c1da539..1dcec55 100644
struct atmphy_ops {
int (*start)(struct atm_dev *dev);
diff --git a/include/linux/atomic.h b/include/linux/atomic.h
-index e451534..9fc0c28 100644
+index e451534..2e41026 100644
--- a/include/linux/atomic.h
+++ b/include/linux/atomic.h
-@@ -91,6 +91,13 @@
+@@ -72,6 +72,7 @@
+ #define atomic_add_return_relaxed atomic_add_return
+ #define atomic_add_return_acquire atomic_add_return
+ #define atomic_add_return_release atomic_add_return
++#define atomic_add_return_unchecked_relaxed atomic_add_return_unchecked
+
+ #else /* atomic_add_return_relaxed */
+
+@@ -89,8 +90,20 @@
+ #define atomic_add_return(...) \
+ __atomic_op_fence(atomic_add_return, __VA_ARGS__)
#endif
++
++#ifndef atomic_add_return_unchecked
++#define atomic_add_return_unchecked(...) \
++ __atomic_op_fence(atomic_add_return_unchecked, __VA_ARGS__)
++#endif
#endif /* atomic_add_return_relaxed */
+#ifndef atomic_add_return_unchecked_relaxed
@@ -129602,7 +129893,7 @@ index e451534..9fc0c28 100644
/* atomic_inc_return_relaxed */
#ifndef atomic_inc_return_relaxed
#define atomic_inc_return_relaxed atomic_inc_return
-@@ -113,6 +120,11 @@
+@@ -113,6 +126,11 @@
#define atomic_inc_return(...) \
__atomic_op_fence(atomic_inc_return, __VA_ARGS__)
#endif
@@ -129614,7 +129905,7 @@ index e451534..9fc0c28 100644
#endif /* atomic_inc_return_relaxed */
/* atomic_sub_return_relaxed */
-@@ -241,6 +253,11 @@
+@@ -241,6 +259,11 @@
#define atomic64_add_return(...) \
__atomic_op_fence(atomic64_add_return, __VA_ARGS__)
#endif
@@ -129626,7 +129917,7 @@ index e451534..9fc0c28 100644
#endif /* atomic64_add_return_relaxed */
/* atomic64_inc_return_relaxed */
-@@ -265,6 +282,11 @@
+@@ -265,6 +288,11 @@
#define atomic64_inc_return(...) \
__atomic_op_fence(atomic64_inc_return, __VA_ARGS__)
#endif
@@ -129638,7 +129929,7 @@ index e451534..9fc0c28 100644
#endif /* atomic64_inc_return_relaxed */
-@@ -338,6 +360,11 @@
+@@ -338,6 +366,11 @@
#define atomic64_xchg(...) \
__atomic_op_fence(atomic64_xchg, __VA_ARGS__)
#endif
@@ -129650,16 +129941,15 @@ index e451534..9fc0c28 100644
#endif /* atomic64_xchg_relaxed */
/* atomic64_cmpxchg_relaxed */
-@@ -362,8 +389,23 @@
+@@ -362,8 +395,22 @@
#define atomic64_cmpxchg(...) \
__atomic_op_fence(atomic64_cmpxchg, __VA_ARGS__)
#endif
+
+#ifndef atomic64_cmpxchg_unchecked
-+#define atomic64_cmpxchg_unchecked(...) \
++#define atomic64_cmpxchg_unchecked(...) \
+ __atomic_op_fence(atomic64_cmpxchg_unchecked, __VA_ARGS__)
+#endif
-+
#endif /* atomic64_cmpxchg_relaxed */
+#ifndef atomic64_cmpxchg_unchecked_relaxed
@@ -129674,7 +129964,7 @@ index e451534..9fc0c28 100644
/* cmpxchg_relaxed */
#ifndef cmpxchg_relaxed
#define cmpxchg_relaxed cmpxchg
-@@ -431,6 +473,10 @@
+@@ -431,6 +478,10 @@
#ifndef xchg
#define xchg(...) __atomic_op_fence(xchg, __VA_ARGS__)
#endif
@@ -129685,7 +129975,7 @@ index e451534..9fc0c28 100644
#endif /* xchg_relaxed */
/**
-@@ -442,7 +488,7 @@
+@@ -442,7 +493,7 @@
* Atomically adds @a to @v, so long as @v was not already @u.
* Returns non-zero if @v was not @u, and zero otherwise.
*/
@@ -129695,9 +129985,18 @@ index e451534..9fc0c28 100644
return __atomic_add_unless(v, a, u) != u;
}
diff --git a/include/linux/audit.h b/include/linux/audit.h
-index e38e3fc..f426dd5 100644
+index e38e3fc..148e07a6 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
+@@ -135,7 +135,7 @@ extern void audit_log_n_hex(struct audit_buffer *ab,
+ size_t len);
+ extern void audit_log_n_string(struct audit_buffer *ab,
+ const char *buf,
+- size_t n);
++ size_t n) __nocapture(2);
+ extern void audit_log_n_untrustedstring(struct audit_buffer *ab,
+ const char *string,
+ size_t n);
@@ -335,7 +335,7 @@ static inline void audit_ptrace(struct task_struct *t)
extern unsigned int audit_serial(void);
extern int auditsc_get_stamp(struct audit_context *ctx,
@@ -129707,6 +130006,16 @@ index e38e3fc..f426dd5 100644
static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
{
+@@ -554,7 +554,8 @@ static inline bool audit_loginuid_set(struct task_struct *tsk)
+ return uid_valid(audit_get_loginuid(tsk));
+ }
+
+-static inline void audit_log_string(struct audit_buffer *ab, const char *buf)
++static inline __nocapture(2)
++void audit_log_string(struct audit_buffer *ab, const char *buf)
+ {
+ audit_log_n_string(ab, buf, strlen(buf));
+ }
diff --git a/include/linux/average.h b/include/linux/average.h
index d04aa58..3de0da8 100644
--- a/include/linux/average.h
@@ -130083,7 +130392,7 @@ index f964ef7..0679632 100644
asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
/*
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
-index e294939..1ac746f 100644
+index e294939..e9ac463 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -116,9 +116,9 @@
@@ -130099,7 +130408,7 @@ index e294939..1ac746f 100644
#define __maybe_unused __attribute__((unused))
#define __always_unused __attribute__((unused))
-@@ -185,9 +185,41 @@
+@@ -185,9 +185,56 @@
# define __compiletime_warning(message) __attribute__((warning(message)))
# define __compiletime_error(message) __attribute__((error(message)))
#endif /* __CHECKER__ */
@@ -130138,11 +130447,26 @@ index e294939..1ac746f 100644
+#define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
+#endif
+
++/*
++ * The initify gcc-plugin attempts to identify const arguments that are only
++ * used during init (see __init and __exit), so they can be moved to the
++ * .init.rodata/.exit.rodata section. If an argument is passed to a non-init
++ * function, it must normally be assumed that such an argument has been
++ * captured by that function and may be used in the future when .init/.exit has
++ * been unmapped from memory. In order to identify functions that are confirmed
++ * to not capture their arguments, the __nocapture() attribute is used so that
++ * initify can better identify candidate variables.
++ */
++#ifdef INITIFY_PLUGIN
++#define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
++#define __unverified_nocapture(...) __attribute__((unverified_nocapture(__VA_ARGS__)))
++#endif
++
/*
* Mark a position in code as unreachable. This can be used to
* suppress control flow warnings after asm blocks that transfer
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
-index 793c082..0e408e3 100644
+index 793c082..c7e1a28 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -5,11 +5,14 @@
@@ -130366,7 +130690,7 @@ index 793c082..0e408e3 100644
})
/**
-@@ -425,6 +441,42 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -425,6 +441,50 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
# define __attribute_const__ /* unimplemented */
#endif
@@ -130406,10 +130730,18 @@ index 793c082..0e408e3 100644
+# define const_cast(x) (x)
+#endif
+
++#ifndef __nocapture
++# define __nocapture(...)
++#endif
++
++#ifndef __unverified_nocapture
++# define __unverified_nocapture(...)
++#endif
++
/*
* Tell gcc if a function is cold. The compiler will assume any path
* directly leading to the call is unlikely.
-@@ -434,6 +486,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -434,6 +494,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
#define __cold
#endif
@@ -130432,7 +130764,7 @@ index 793c082..0e408e3 100644
/* Simple shorthand for a section definition */
#ifndef __section
# define __section(S) __attribute__ ((__section__(#S)))
-@@ -456,6 +524,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -456,6 +532,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
# define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
#endif
@@ -130441,7 +130773,7 @@ index 793c082..0e408e3 100644
/* Is this type a native word size -- useful for atomic operations */
#ifndef __native_word
# define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
-@@ -535,8 +605,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
+@@ -535,8 +613,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
*/
#define __ACCESS_ONCE(x) ({ \
__maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
@@ -130882,7 +131214,7 @@ index d4b7683..9feb066 100644
int fw_iso_context_queue(struct fw_iso_context *ctx,
struct fw_iso_packet *packet,
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index dd28814..4d460a5 100644
+index dd28814..1bf4623 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -331,7 +331,7 @@ struct kiocb {
@@ -130958,7 +131290,13 @@ index dd28814..4d460a5 100644
struct inode_operations {
struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
-@@ -2426,7 +2427,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
+@@ -2421,12 +2422,12 @@ static inline void bd_unlink_disk_holder(struct block_device *bdev,
+ #define CHRDEV_MAJOR_HASH_SIZE 255
+ /* Marks the bottom of the first segment of free char majors */
+ #define CHRDEV_MAJOR_DYN_END 234
+-extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);
++extern __nocapture(4) int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);
+ extern int register_chrdev_region(dev_t, unsigned, const char *);
extern int __register_chrdev(unsigned int major, unsigned int baseminor,
unsigned int count, const char *name,
const struct file_operations *fops);
@@ -131112,7 +131450,7 @@ index 6270a56..ddda3ac 100644
__field(attr_nr, attr_flag, name, NLA_U64, __u64, \
nla_get_u64, nla_put_u64_0pad, false)
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
-index 570383a..8fb6742b 100644
+index 570383a..0a537e8 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -41,6 +41,13 @@ struct vm_area_struct;
@@ -131129,15 +131467,23 @@ index 570383a..8fb6742b 100644
/* If the above are modified, __GFP_BITS_SHIFT may need updating */
/*
-@@ -86,6 +93,7 @@ struct vm_area_struct;
+@@ -80,12 +87,15 @@ struct vm_area_struct;
+ *
+ * __GFP_ACCOUNT causes the allocation to be accounted to kmemcg (only relevant
+ * to kmem allocations).
++ *
++ * __GFP_USERCOPY indicates that the page will be copied to/from userland
+ */
+ #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE)
+ #define __GFP_WRITE ((__force gfp_t)___GFP_WRITE)
#define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL)
#define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)
#define __GFP_ACCOUNT ((__force gfp_t)___GFP_ACCOUNT)
-+#define __GFP_USERCOPY ((__force gfp_t)___GFP_USERCOPY)/* Allocator intends to copy page to/from userland */
++#define __GFP_USERCOPY ((__force gfp_t)___GFP_USERCOPY)
/*
* Watermark modifiers -- controls access to emergency reserves
-@@ -188,7 +196,7 @@ struct vm_area_struct;
+@@ -188,7 +198,7 @@ struct vm_area_struct;
#define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE)
/* Room for N __GFP_FOO bits */
@@ -131146,7 +131492,7 @@ index 570383a..8fb6742b 100644
#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
/*
-@@ -259,6 +267,8 @@ struct vm_area_struct;
+@@ -259,6 +269,8 @@ struct vm_area_struct;
__GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN) & \
~__GFP_RECLAIM)
@@ -131155,7 +131501,7 @@ index 570383a..8fb6742b 100644
/* Convert GFP flags to their corresponding migrate type */
#define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE)
#define GFP_MOVABLE_SHIFT 3
-@@ -522,7 +532,7 @@ extern void free_kmem_pages(unsigned long addr, unsigned int order);
+@@ -522,7 +534,7 @@ extern void free_kmem_pages(unsigned long addr, unsigned int order);
void page_alloc_init(void);
void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp);
void drain_all_pages(struct zone *zone);
@@ -132603,23 +132949,19 @@ index ba7a9b0..33a0237 100644
extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
extern void unregister_pppox_proto(int proto_num);
diff --git a/include/linux/init.h b/include/linux/init.h
-index aedb254..a398315 100644
+index aedb254..71b67e5 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
-@@ -37,9 +37,11 @@
- * section.
- */
+@@ -39,7 +39,7 @@
-+#define add_init_latent_entropy __latent_entropy
-+
/* These are for everybody (although not all archs will actually
discard it in modules) */
-#define __init __section(.init.text) __cold notrace
-+#define __init __section(.init.text) __cold notrace add_init_latent_entropy
++#define __init __section(.init.text) __cold notrace __latent_entropy
#define __initdata __section(.init.data)
#define __initconst __constsection(.init.rodata)
#define __exitdata __section(.exit.data)
-@@ -92,7 +94,7 @@
+@@ -92,7 +92,7 @@
#define __exit __section(.exit.text) __exitused __cold notrace
/* Used for MEMORY_HOTPLUG */
@@ -132628,7 +132970,7 @@ index aedb254..a398315 100644
#define __meminitdata __section(.meminit.data)
#define __meminitconst __constsection(.meminit.rodata)
#define __memexit __section(.memexit.text) __exitused __cold notrace
-@@ -117,6 +119,12 @@
+@@ -117,6 +117,12 @@
#define __REFDATA .section ".ref.data", "aw"
#define __REFCONST .section ".ref.rodata", "a"
@@ -133489,7 +133831,7 @@ index 5e5b296..629113f 100644
static inline int
vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 317564b..3e200b9 100644
+index 317564b..4ea9713 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -107,6 +107,7 @@ extern int mmap_rnd_compat_bits __read_mostly;
@@ -133555,7 +133897,7 @@ index 317564b..3e200b9 100644
long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
unsigned long start, unsigned long nr_pages,
-@@ -1331,40 +1338,12 @@ int clear_page_dirty_for_io(struct page *page);
+@@ -1331,39 +1338,11 @@ int clear_page_dirty_for_io(struct page *page);
int get_cmdline(struct task_struct *task, char *buffer, int buflen);
@@ -133592,11 +133934,9 @@ index 317564b..3e200b9 100644
- !vma_growsup(vma->vm_next, addr);
-}
-
--int vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t);
-+bool vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t);
+ int vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t);
extern unsigned long move_page_tables(struct vm_area_struct *vma,
- unsigned long old_addr, struct vm_area_struct *new_vma,
@@ -1508,8 +1487,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
{
return 0;
@@ -134749,7 +135089,7 @@ index 75e4e30..fcfde15 100644
#define preempt_set_need_resched() \
do { \
diff --git a/include/linux/printk.h b/include/linux/printk.h
-index f4da695..cce5e7c 100644
+index f4da695..63c8ffd 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -43,7 +43,7 @@ static inline const char *printk_skip_level(const char *buffer)
@@ -134770,7 +135110,15 @@ index f4da695..cce5e7c 100644
#ifdef CONFIG_PRINTK
asmlinkage __printf(5, 0)
int vprintk_emit(int facility, int level,
-@@ -170,7 +172,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
+@@ -163,14 +165,13 @@ __printf(1, 2) __cold int printk_deferred(const char *fmt, ...);
+ * with all other unrelated printk_ratelimit() callsites. Instead use
+ * printk_ratelimited() or plain old __ratelimit().
+ */
+-extern int __printk_ratelimit(const char *func);
++extern int __printk_ratelimit(const char *func) __nocapture(1);
+ #define printk_ratelimit() __printk_ratelimit(__func__)
+ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
+ unsigned int interval_msec);
extern int printk_delay_msec;
extern int dmesg_restrict;
@@ -134922,6 +135270,20 @@ index e47e533..1399797 100644
{
return (u32)(((u64) prandom_u32() * ep_ro) >> 32);
}
+diff --git a/include/linux/ratelimit.h b/include/linux/ratelimit.h
+index 1810252..a7dbaba 100644
+--- a/include/linux/ratelimit.h
++++ b/include/linux/ratelimit.h
+@@ -44,7 +44,8 @@ static inline void ratelimit_state_init(struct ratelimit_state *rs,
+
+ extern struct ratelimit_state printk_ratelimit_state;
+
+-extern int ___ratelimit(struct ratelimit_state *rs, const char *func);
++extern __nocapture(2)
++int ___ratelimit(struct ratelimit_state *rs, const char *func);
+ #define __ratelimit(state) ___ratelimit(state, __func__)
+
+ #ifdef CONFIG_PRINTK
diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
index 14d7b83..a1edf56 100644
--- a/include/linux/rbtree_augmented.h
@@ -135180,7 +135542,7 @@ index cb3c8fe..85365ba 100644
/*
diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 253538f..d34b811 100644
+index 253538f..05de6ae 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -7,7 +7,7 @@
@@ -135343,7 +135705,7 @@ index 253538f..d34b811 100644
/* Pause for the tracing */
atomic_t tracing_graph_pause;
#endif
-@@ -1918,22 +1958,89 @@ struct task_struct {
+@@ -1918,22 +1958,93 @@ struct task_struct {
#ifdef CONFIG_MMU
struct task_struct *oom_reaper_list;
#endif
@@ -135434,6 +135796,10 @@ index 253538f..d34b811 100644
+extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
+#endif
+
++#ifdef CONFIG_PAX_SIZE_OVERFLOW
++extern bool pax_size_overflow_report_only;
++#endif
++
+struct path;
+extern char *pax_get_path(const struct path *path, char *buf, int buflen);
+extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
@@ -135443,7 +135809,7 @@ index 253538f..d34b811 100644
/* Future-safe accessor for struct task_struct's cpus_allowed. */
#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
-@@ -2020,7 +2127,7 @@ struct pid_namespace;
+@@ -2020,7 +2131,7 @@ struct pid_namespace;
pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
struct pid_namespace *ns);
@@ -135452,7 +135818,7 @@ index 253538f..d34b811 100644
{
return tsk->pid;
}
-@@ -2384,6 +2491,48 @@ extern u64 sched_clock_cpu(int cpu);
+@@ -2384,6 +2495,48 @@ extern u64 sched_clock_cpu(int cpu);
extern void sched_clock_init(void);
@@ -135501,7 +135867,7 @@ index 253538f..d34b811 100644
#ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
static inline void sched_clock_tick(void)
{
-@@ -2539,7 +2688,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
+@@ -2539,7 +2692,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
void yield(void);
union thread_union {
@@ -135511,7 +135877,7 @@ index 253538f..d34b811 100644
unsigned long stack[THREAD_SIZE/sizeof(long)];
};
-@@ -2572,6 +2723,7 @@ extern struct pid_namespace init_pid_ns;
+@@ -2572,6 +2727,7 @@ extern struct pid_namespace init_pid_ns;
*/
extern struct task_struct *find_task_by_vpid(pid_t nr);
@@ -135519,7 +135885,7 @@ index 253538f..d34b811 100644
extern struct task_struct *find_task_by_pid_ns(pid_t nr,
struct pid_namespace *ns);
-@@ -2603,7 +2755,7 @@ extern void proc_caches_init(void);
+@@ -2603,7 +2759,7 @@ extern void proc_caches_init(void);
extern void flush_signals(struct task_struct *);
extern void ignore_signals(struct task_struct *);
extern void flush_signal_handlers(struct task_struct *, int force_default);
@@ -135528,7 +135894,7 @@ index 253538f..d34b811 100644
static inline int kernel_dequeue_signal(siginfo_t *info)
{
-@@ -2795,7 +2947,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
+@@ -2795,7 +2951,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
extern void exit_itimers(struct signal_struct *);
extern void flush_itimer_signals(void);
@@ -135537,7 +135903,7 @@ index 253538f..d34b811 100644
extern int do_execve(struct filename *,
const char __user * const __user *,
-@@ -2910,11 +3062,13 @@ static inline int thread_group_empty(struct task_struct *p)
+@@ -2910,11 +3066,13 @@ static inline int thread_group_empty(struct task_struct *p)
* It must not be nested with write_lock_irq(&tasklist_lock),
* neither inside nor outside.
*/
@@ -135551,7 +135917,7 @@ index 253538f..d34b811 100644
static inline void task_unlock(struct task_struct *p)
{
spin_unlock(&p->alloc_lock);
-@@ -3000,9 +3154,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
+@@ -3000,9 +3158,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
#define task_stack_end_corrupted(task) \
(*(end_of_stack(task)) != STACK_END_MAGIC)
@@ -135563,7 +135929,7 @@ index 253538f..d34b811 100644
return (obj >= stack) && (obj < (stack + THREAD_SIZE));
}
-@@ -3379,7 +3533,7 @@ static inline unsigned long rlimit_max(unsigned int limit)
+@@ -3379,7 +3537,7 @@ static inline unsigned long rlimit_max(unsigned int limit)
struct update_util_data {
void (*func)(struct update_util_data *data,
u64 time, unsigned long util, unsigned long max);
@@ -135986,7 +136352,7 @@ index 8694f7a..5358aef 100644
atomic_t store_user_clean;
#endif
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
-index d1faa01..3776344 100644
+index b71b258..7aec175 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -74,7 +74,7 @@ struct kmem_cache {
@@ -136145,7 +136511,7 @@ index dc8eb63..b4b9482 100644
rcu_lock_release(&(sp)->dep_map);
__srcu_read_unlock(sp, idx);
diff --git a/include/linux/string.h b/include/linux/string.h
-index 26b6f6a..ba9f0b4 100644
+index 26b6f6a..434ee17 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -18,51 +18,51 @@ extern void *memdup_user_nul(const void __user *, size_t);
@@ -136181,7 +136547,7 @@ index 26b6f6a..ba9f0b4 100644
#endif
#ifndef __HAVE_ARCH_STRCMP
-extern int strcmp(const char *,const char *);
-+extern int strcmp(const char *,const char *) __nocapture(1, 2);
++extern int strcmp(const char *,const char *) __nocapture();
#endif
#ifndef __HAVE_ARCH_STRNCMP
-extern int strncmp(const char *,const char *,__kernel_size_t);
@@ -136189,7 +136555,7 @@ index 26b6f6a..ba9f0b4 100644
#endif
#ifndef __HAVE_ARCH_STRCASECMP
-extern int strcasecmp(const char *s1, const char *s2);
-+extern int strcasecmp(const char *s1, const char *s2) __nocapture(1, 2);
++extern int strcasecmp(const char *s1, const char *s2) __nocapture();
#endif
#ifndef __HAVE_ARCH_STRNCASECMP
-extern int strncasecmp(const char *s1, const char *s2, size_t n);
@@ -136197,44 +136563,46 @@ index 26b6f6a..ba9f0b4 100644
#endif
#ifndef __HAVE_ARCH_STRCHR
-extern char * strchr(const char *,int);
-+extern char * strchr(const char *,int) __nocapture(1);
++extern char * strchr(const char *,int) __nocapture(-1);
#endif
#ifndef __HAVE_ARCH_STRCHRNUL
-extern char * strchrnul(const char *,int);
-+extern char * strchrnul(const char *,int) __nocapture(1);
++extern char * strchrnul(const char *,int) __nocapture(-1);
#endif
#ifndef __HAVE_ARCH_STRNCHR
-extern char * strnchr(const char *, size_t, int);
-+extern char * strnchr(const char *, size_t, int) __nocapture(1);
++extern char * strnchr(const char *, size_t, int) __nocapture(-1);
#endif
#ifndef __HAVE_ARCH_STRRCHR
-extern char * strrchr(const char *,int);
-+extern char * strrchr(const char *,int) __nocapture(1);
++extern char * strrchr(const char *,int) __nocapture(-1);
#endif
-extern char * __must_check skip_spaces(const char *);
-+extern char * __must_check skip_spaces(const char *) __nocapture(1);
++extern char * __must_check skip_spaces(const char *) __nocapture(-1);
extern char *strim(char *);
-@@ -72,10 +72,10 @@ static inline __must_check char *strstrip(char *str)
+@@ -72,63 +72,63 @@ static inline __must_check char *strstrip(char *str)
}
#ifndef __HAVE_ARCH_STRSTR
-extern char * strstr(const char *, const char *);
-+extern char * strstr(const char *, const char *) __nocapture(1, 2);
++extern char * strstr(const char *, const char *) __nocapture(-1, 2);
#endif
#ifndef __HAVE_ARCH_STRNSTR
--extern char * strnstr(const char *, const char *, size_t);
-+extern char * strnstr(const char *, const char *, size_t) __nocapture(1, 2);
+ extern char * strnstr(const char *, const char *, size_t);
#endif
#ifndef __HAVE_ARCH_STRLEN
- extern __kernel_size_t strlen(const char *);
-@@ -84,51 +84,51 @@ extern __kernel_size_t strlen(const char *);
- extern __kernel_size_t strnlen(const char *,__kernel_size_t);
+-extern __kernel_size_t strlen(const char *);
++extern __kernel_size_t strlen(const char *) __nocapture(1);
+ #endif
+ #ifndef __HAVE_ARCH_STRNLEN
+-extern __kernel_size_t strnlen(const char *,__kernel_size_t);
++extern __kernel_size_t strnlen(const char *,__kernel_size_t) __nocapture(1);
#endif
#ifndef __HAVE_ARCH_STRPBRK
-extern char * strpbrk(const char *,const char *);
-+extern char * strpbrk(const char *,const char *) __nocapture(1, 2);
++extern char * strpbrk(const char *,const char *) __nocapture(-1, 2);
#endif
#ifndef __HAVE_ARCH_STRSEP
-extern char * strsep(char **,const char *);
@@ -136242,11 +136610,11 @@ index 26b6f6a..ba9f0b4 100644
#endif
#ifndef __HAVE_ARCH_STRSPN
-extern __kernel_size_t strspn(const char *,const char *);
-+extern __kernel_size_t strspn(const char *,const char *) __nocapture(1, 2);
++extern __kernel_size_t strspn(const char *,const char *) __nocapture();
#endif
#ifndef __HAVE_ARCH_STRCSPN
-extern __kernel_size_t strcspn(const char *,const char *);
-+extern __kernel_size_t strcspn(const char *,const char *) __nocapture(1, 2);
++extern __kernel_size_t strcspn(const char *,const char *) __nocapture();
#endif
#ifndef __HAVE_ARCH_MEMSET
@@ -136269,10 +136637,10 @@ index 26b6f6a..ba9f0b4 100644
#endif
#ifndef __HAVE_ARCH_MEMCHR
-extern void * memchr(const void *,int,__kernel_size_t);
-+extern void * memchr(const void *,int,__kernel_size_t) __nocapture(1);
++extern void * memchr(const void *,int,__kernel_size_t) __nocapture(-1);
#endif
-void *memchr_inv(const void *s, int c, size_t n);
-+void *memchr_inv(const void *s, int c, size_t n) __nocapture(1);
++void *memchr_inv(const void *s, int c, size_t n) __nocapture(-1);
char *strreplace(char *s, char old, char new);
extern void kfree_const(const void *x);
@@ -136291,7 +136659,7 @@ index 26b6f6a..ba9f0b4 100644
-extern bool sysfs_streq(const char *s1, const char *s2);
-extern int kstrtobool(const char *s, bool *res);
-+extern bool sysfs_streq(const char *s1, const char *s2) __nocapture(1, 2);
++extern bool sysfs_streq(const char *s1, const char *s2) __nocapture();
+extern int kstrtobool(const char *s, bool *res) __nocapture(1);
static inline int strtobool(const char *s, bool *res)
{
@@ -136571,10 +136939,10 @@ index 27b3b0b..e093dd9 100644
extern void register_syscore_ops(struct syscore_ops *ops);
extern void unregister_syscore_ops(struct syscore_ops *ops);
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
-index fa7bc29..0d96561 100644
+index ef17db6c..179e02f 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
-@@ -39,10 +39,16 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
+@@ -39,12 +39,18 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
extern int proc_dostring(struct ctl_table *, int,
void __user *, size_t *, loff_t *);
@@ -136584,6 +136952,8 @@ index fa7bc29..0d96561 100644
void __user *, size_t *, loff_t *);
+extern int proc_dointvec_secure(struct ctl_table *, int,
+ void __user *, size_t *, loff_t *);
+ extern int proc_douintvec(struct ctl_table *, int,
+ void __user *, size_t *, loff_t *);
extern int proc_dointvec_minmax(struct ctl_table *, int,
void __user *, size_t *, loff_t *);
+extern int proc_dointvec_minmax_secure(struct ctl_table *, int,
@@ -136591,7 +136961,7 @@ index fa7bc29..0d96561 100644
extern int proc_dointvec_jiffies(struct ctl_table *, int,
void __user *, size_t *, loff_t *);
extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
-@@ -113,7 +119,8 @@ struct ctl_table
+@@ -115,7 +121,8 @@ struct ctl_table
struct ctl_table_poll *poll;
void *extra1;
void *extra2;
@@ -138935,10 +139305,20 @@ index 30f5362..8ed8ac9 100644
void *pmi_pal;
u8 *vbe_state_orig; /*
diff --git a/init/Kconfig b/init/Kconfig
-index c02d897..e960810 100644
+index c02d897..b115a1f 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -286,7 +286,8 @@ config FHANDLE
+@@ -31,6 +31,9 @@ menu "General setup"
+ config BROKEN
+ bool
+
++config BROKEN_SECURITY
++ bool
++
+ config BROKEN_ON_SMP
+ bool
+ depends on BROKEN || !SMP
+@@ -286,7 +289,8 @@ config FHANDLE
config USELIB
bool "uselib syscall"
@@ -138948,7 +139328,7 @@ index c02d897..e960810 100644
help
This option enables the uselib syscall, a system call used in the
dynamic linker from libc5 and earlier. glibc does not use this
-@@ -629,6 +630,7 @@ config RCU_FAST_NO_HZ
+@@ -629,6 +633,7 @@ config RCU_FAST_NO_HZ
config TREE_RCU_TRACE
def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
select DEBUG_FS
@@ -138956,7 +139336,7 @@ index c02d897..e960810 100644
help
This option provides tracing for the TREE_RCU and
PREEMPT_RCU implementations, permitting Makefile to
-@@ -1155,6 +1157,7 @@ endif # CGROUPS
+@@ -1155,6 +1160,7 @@ endif # CGROUPS
config CHECKPOINT_RESTORE
bool "Checkpoint/restore support" if EXPERT
select PROC_CHILDREN
@@ -138964,7 +139344,7 @@ index c02d897..e960810 100644
default n
help
Enables additional kernel features in a sake of checkpoint/restore.
-@@ -1627,7 +1630,7 @@ config ADVISE_SYSCALLS
+@@ -1627,7 +1633,7 @@ config ADVISE_SYSCALLS
config USERFAULTFD
bool "Enable userfaultfd() system call"
select ANON_INODES
@@ -138973,7 +139353,7 @@ index c02d897..e960810 100644
help
Enable the userfaultfd() system call that allows to intercept and
handle page faults in userland.
-@@ -1740,7 +1743,7 @@ config SLUB_DEBUG
+@@ -1740,7 +1746,7 @@ config SLUB_DEBUG
config COMPAT_BRK
bool "Disable heap randomization"
@@ -140029,10 +140409,10 @@ index 00411c8..aaad585 100644
+}
+EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index 129a7ca..4fa9405 100644
+index b1e0cbb..2105ebf 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
-@@ -3632,7 +3632,7 @@ static int cgroup_add_file(struct cgroup_subsys_state *css, struct cgroup *cgrp,
+@@ -3651,7 +3651,7 @@ static int cgroup_add_file(struct cgroup_subsys_state *css, struct cgroup *cgrp,
key = &cft->lockdep_key;
#endif
kn = __kernfs_create_file(cgrp->kn, cgroup_file_name(cgrp, cft, name),
@@ -140041,7 +140421,7 @@ index 129a7ca..4fa9405 100644
NULL, key);
if (IS_ERR(kn))
return PTR_ERR(kn);
-@@ -3736,11 +3736,14 @@ static void cgroup_exit_cftypes(struct cftype *cfts)
+@@ -3755,11 +3755,14 @@ static void cgroup_exit_cftypes(struct cftype *cfts)
/* free copy for custom atomic_write_len, see init_cftypes() */
if (cft->max_write_len && cft->max_write_len != PAGE_SIZE)
kfree(cft->kf_ops);
@@ -140059,7 +140439,7 @@ index 129a7ca..4fa9405 100644
}
}
-@@ -3771,8 +3774,10 @@ static int cgroup_init_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
+@@ -3790,8 +3793,10 @@ static int cgroup_init_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
kf_ops->atomic_write_len = cft->max_write_len;
}
@@ -140072,7 +140452,7 @@ index 129a7ca..4fa9405 100644
}
return 0;
-@@ -3785,7 +3790,7 @@ static int cgroup_rm_cftypes_locked(struct cftype *cfts)
+@@ -3804,7 +3809,7 @@ static int cgroup_rm_cftypes_locked(struct cftype *cfts)
if (!cfts || !cfts[0].ss)
return -ENOENT;
@@ -140081,7 +140461,7 @@ index 129a7ca..4fa9405 100644
cgroup_apply_cftypes(cfts, false);
cgroup_exit_cftypes(cfts);
return 0;
-@@ -3842,7 +3847,7 @@ static int cgroup_add_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
+@@ -3861,7 +3866,7 @@ static int cgroup_add_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
mutex_lock(&cgroup_mutex);
@@ -140090,7 +140470,7 @@ index 129a7ca..4fa9405 100644
ret = cgroup_apply_cftypes(cfts, true);
if (ret)
cgroup_rm_cftypes_locked(cfts);
-@@ -3863,8 +3868,10 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
+@@ -3882,8 +3887,10 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
{
struct cftype *cft;
@@ -140102,7 +140482,7 @@ index 129a7ca..4fa9405 100644
return cgroup_add_cftypes(ss, cfts);
}
-@@ -3880,8 +3887,10 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
+@@ -3899,8 +3906,10 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
{
struct cftype *cft;
@@ -140114,7 +140494,7 @@ index 129a7ca..4fa9405 100644
return cgroup_add_cftypes(ss, cfts);
}
-@@ -6049,6 +6058,9 @@ static void cgroup_release_agent(struct work_struct *work)
+@@ -6070,6 +6079,9 @@ static void cgroup_release_agent(struct work_struct *work)
if (!pathbuf || !agentbuf)
goto out;
@@ -140124,7 +140504,7 @@ index 129a7ca..4fa9405 100644
spin_lock_irq(&css_set_lock);
path = cgroup_path_ns_locked(cgrp, pathbuf, PATH_MAX, &init_cgroup_ns);
spin_unlock_irq(&css_set_lock);
-@@ -6471,7 +6483,7 @@ static int cgroup_css_links_read(struct seq_file *seq, void *v)
+@@ -6492,7 +6504,7 @@ static int cgroup_css_links_read(struct seq_file *seq, void *v)
struct task_struct *task;
int count = 0;
@@ -140556,7 +140936,7 @@ index 179ef46..8d030ca 100644
new_table.data = &new_value;
ret = proc_dointvec_minmax(&new_table, write, buffer, lenp, ppos);
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index e68c0a7..58e3070 100644
+index 31c1520..6e5d48f 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -388,8 +388,15 @@ static struct srcu_struct pmus_srcu;
@@ -140771,7 +141151,7 @@ index 8c50276..457c599 100644
pagefault_disable();
result = __get_user(opcode, (uprobe_opcode_t __user *)vaddr);
diff --git a/kernel/exit.c b/kernel/exit.c
-index 26a766a..b802979 100644
+index 26a766a..9746f0d 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -170,6 +170,10 @@ void release_task(struct task_struct *p)
@@ -140805,24 +141185,39 @@ index 26a766a..b802979 100644
struct list_head *dead)
{
struct task_struct *p, *t, *reaper;
-@@ -655,6 +660,8 @@ void do_exit(long code)
+@@ -655,6 +660,15 @@ void do_exit(long code)
int group_dead;
TASKS_RCU(int tasks_rcu_i);
++ /*
++ * If do_exit is called because this processes oopsed, it's possible
++ * that get_fs() was left as KERNEL_DS, so reset it to USER_DS before
++ * continuing. Amongst other possible reasons, this is to prevent
++ * mm_release()->clear_child_tid() from writing to a user-controlled
++ * kernel address.
++ */
+ set_fs(USER_DS);
+
profile_task_exit(tsk);
kcov_task_exit(tsk);
-@@ -672,7 +679,6 @@ void do_exit(long code)
- * mm_release()->clear_child_tid() from writing to a user-controlled
- * kernel address.
- */
-- set_fs(USER_DS);
+@@ -665,15 +679,6 @@ void do_exit(long code)
+ if (unlikely(!tsk->pid))
+ panic("Attempted to kill the idle task!");
+- /*
+- * If do_exit is called because this processes oopsed, it's possible
+- * that get_fs() was left as KERNEL_DS, so reset it to USER_DS before
+- * continuing. Amongst other possible reasons, this is to prevent
+- * mm_release()->clear_child_tid() from writing to a user-controlled
+- * kernel address.
+- */
+- set_fs(USER_DS);
+-
ptrace_event(PTRACE_EVENT_EXIT, code);
-@@ -732,6 +738,9 @@ void do_exit(long code)
+ validate_creds_for_do_exit(tsk);
+@@ -732,6 +737,9 @@ void do_exit(long code)
tsk->exit_code = code;
taskstats_exit(tsk, group_dead);
@@ -140832,7 +141227,7 @@ index 26a766a..b802979 100644
exit_mm(tsk);
if (group_dead)
-@@ -846,7 +855,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
+@@ -846,7 +854,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
* Take down every thread in the group. This is called by fatal signals
* as well as by sys_exit_group (below).
*/
@@ -140841,7 +141236,7 @@ index 26a766a..b802979 100644
do_group_exit(int exit_code)
{
struct signal_struct *sig = current->signal;
-@@ -974,6 +983,7 @@ static int wait_noreap_copyout(struct wait_opts *wo, struct task_struct *p,
+@@ -974,6 +982,7 @@ static int wait_noreap_copyout(struct wait_opts *wo, struct task_struct *p,
* the lock and this task is uninteresting. If we return nonzero, we have
* released the lock and the system call should return.
*/
@@ -140849,7 +141244,7 @@ index 26a766a..b802979 100644
static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
{
int state, retval, status;
-@@ -990,6 +1000,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
+@@ -990,6 +999,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
get_task_struct(p);
read_unlock(&tasklist_lock);
@@ -140857,7 +141252,7 @@ index 26a766a..b802979 100644
sched_annotate_sleep();
if ((exit_code & 0x7f) == 0) {
-@@ -1012,6 +1023,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
+@@ -1012,6 +1022,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
* We own this thread, nobody else can reap it.
*/
read_unlock(&tasklist_lock);
@@ -140865,7 +141260,7 @@ index 26a766a..b802979 100644
sched_annotate_sleep();
/*
-@@ -1154,6 +1166,8 @@ static int *task_stopped_code(struct task_struct *p, bool ptrace)
+@@ -1154,6 +1165,8 @@ static int *task_stopped_code(struct task_struct *p, bool ptrace)
* search should terminate.
*/
static int wait_task_stopped(struct wait_opts *wo,
@@ -140874,7 +141269,7 @@ index 26a766a..b802979 100644
int ptrace, struct task_struct *p)
{
struct siginfo __user *infop;
-@@ -1201,6 +1215,7 @@ unlock_sig:
+@@ -1201,6 +1214,7 @@ unlock_sig:
pid = task_pid_vnr(p);
why = ptrace ? CLD_TRAPPED : CLD_STOPPED;
read_unlock(&tasklist_lock);
@@ -140882,7 +141277,7 @@ index 26a766a..b802979 100644
sched_annotate_sleep();
if (unlikely(wo->wo_flags & WNOWAIT))
-@@ -1238,6 +1253,7 @@ unlock_sig:
+@@ -1238,6 +1252,7 @@ unlock_sig:
* the lock and this task is uninteresting. If we return nonzero, we have
* released the lock and the system call should return.
*/
@@ -140890,7 +141285,7 @@ index 26a766a..b802979 100644
static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
{
int retval;
-@@ -1264,6 +1280,7 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
+@@ -1264,6 +1279,7 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
pid = task_pid_vnr(p);
get_task_struct(p);
read_unlock(&tasklist_lock);
@@ -140898,7 +141293,7 @@ index 26a766a..b802979 100644
sched_annotate_sleep();
if (!wo->wo_info) {
-@@ -1293,6 +1310,8 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
+@@ -1293,6 +1309,8 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
* or another error from security_task_wait(), or still -ECHILD.
*/
static int wait_consider_task(struct wait_opts *wo, int ptrace,
@@ -140907,7 +141302,7 @@ index 26a766a..b802979 100644
struct task_struct *p)
{
/*
-@@ -1418,6 +1437,7 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace,
+@@ -1418,6 +1436,7 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace,
* ->notask_error is 0 if there were any eligible children,
* or another error from security_task_wait(), or still -ECHILD.
*/
@@ -140915,7 +141310,7 @@ index 26a766a..b802979 100644
static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
{
struct task_struct *p;
-@@ -1432,6 +1452,7 @@ static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
+@@ -1432,6 +1451,7 @@ static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
return 0;
}
@@ -140923,7 +141318,7 @@ index 26a766a..b802979 100644
static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk)
{
struct task_struct *p;
-@@ -1495,12 +1516,16 @@ repeat:
+@@ -1495,12 +1515,16 @@ repeat:
tsk = current;
do {
retval = do_wait_thread(wo, tsk);
@@ -140980,7 +141375,7 @@ index e820cce..72195de 100644
/* Given an address, look for it in the exception tables. */
diff --git a/kernel/fork.c b/kernel/fork.c
-index 74fd390..597bfcb 100644
+index d6404ed..2caf0bb 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -197,12 +197,55 @@ static void free_thread_stack(unsigned long *stack)
@@ -141331,7 +141726,7 @@ index 74fd390..597bfcb 100644
mmput(mm);
mm = ERR_PTR(-EACCES);
}
-@@ -1061,13 +1165,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
+@@ -1059,13 +1163,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
spin_unlock(&fs->lock);
return -EAGAIN;
}
@@ -141353,7 +141748,7 @@ index 74fd390..597bfcb 100644
return 0;
}
-@@ -1300,7 +1411,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
+@@ -1298,7 +1409,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
* parts of the process environment (as per the clone
* flags). The actual kick-off is left to the caller.
*/
@@ -141362,7 +141757,7 @@ index 74fd390..597bfcb 100644
unsigned long stack_start,
unsigned long stack_size,
int __user *child_tidptr,
-@@ -1372,6 +1483,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1370,6 +1481,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
#endif
retval = -EAGAIN;
@@ -141372,7 +141767,7 @@ index 74fd390..597bfcb 100644
if (atomic_read(&p->real_cred->user->processes) >=
task_rlimit(p, RLIMIT_NPROC)) {
if (p->real_cred->user != INIT_USER &&
-@@ -1630,6 +1744,16 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1628,6 +1742,16 @@ static struct task_struct *copy_process(unsigned long clone_flags,
goto bad_fork_cancel_cgroup;
}
@@ -141389,7 +141784,7 @@ index 74fd390..597bfcb 100644
if (likely(p->pid)) {
ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
-@@ -1721,6 +1845,8 @@ bad_fork_cleanup_count:
+@@ -1719,6 +1843,8 @@ bad_fork_cleanup_count:
bad_fork_free:
free_task(p);
fork_out:
@@ -141398,7 +141793,7 @@ index 74fd390..597bfcb 100644
return ERR_PTR(retval);
}
-@@ -1784,6 +1910,7 @@ long _do_fork(unsigned long clone_flags,
+@@ -1782,6 +1908,7 @@ long _do_fork(unsigned long clone_flags,
p = copy_process(clone_flags, stack_start, stack_size,
child_tidptr, NULL, trace, tls, NUMA_NO_NODE);
@@ -141406,7 +141801,7 @@ index 74fd390..597bfcb 100644
/*
* Do this prior waking up the new thread - the thread pointer
* might get invalid after that point, if the thread exits quickly.
-@@ -1800,6 +1927,8 @@ long _do_fork(unsigned long clone_flags,
+@@ -1798,6 +1925,8 @@ long _do_fork(unsigned long clone_flags,
if (clone_flags & CLONE_PARENT_SETTID)
put_user(nr, parent_tidptr);
@@ -141415,7 +141810,7 @@ index 74fd390..597bfcb 100644
if (clone_flags & CLONE_VFORK) {
p->vfork_done = &vfork;
init_completion(&vfork);
-@@ -1936,7 +2065,7 @@ void __init proc_caches_init(void)
+@@ -1934,7 +2063,7 @@ void __init proc_caches_init(void)
sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK|SLAB_ACCOUNT,
NULL);
@@ -141424,7 +141819,7 @@ index 74fd390..597bfcb 100644
mmap_init();
nsproxy_cache_init();
}
-@@ -1984,7 +2113,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
+@@ -1982,7 +2111,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
return 0;
/* don't need lock here; in the worst case we'll do useless copy */
@@ -141433,7 +141828,7 @@ index 74fd390..597bfcb 100644
return 0;
*new_fsp = copy_fs_struct(fs);
-@@ -2097,7 +2226,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
+@@ -2095,7 +2224,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
fs = current->fs;
spin_lock(&fs->lock);
current->fs = new_fs;
@@ -141443,7 +141838,7 @@ index 74fd390..597bfcb 100644
new_fs = NULL;
else
new_fs = fs;
-@@ -2161,7 +2291,7 @@ int unshare_files(struct files_struct **displaced)
+@@ -2159,7 +2289,7 @@ int unshare_files(struct files_struct **displaced)
int sysctl_max_threads(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)
{
@@ -143376,7 +143771,7 @@ index 68d3ebc..554935d 100644
select LZO_COMPRESS
select LZO_DECOMPRESS
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index 2fc1177..6abfde0a 100644
+index 2fc1177..2a9174c 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -305,8 +305,10 @@ static int create_image(int platform_mode)
@@ -143391,6 +143786,34 @@ index 2fc1177..6abfde0a 100644
platform_leave(platform_mode);
+@@ -1159,22 +1161,6 @@ static int __init kaslr_nohibernate_setup(char *str)
+ return nohibernate_setup(str);
+ }
+
+-static int __init page_poison_nohibernate_setup(char *str)
+-{
+-#ifdef CONFIG_PAGE_POISONING_ZERO
+- /*
+- * The zeroing option for page poison skips the checks on alloc.
+- * since hibernation doesn't save free pages there's no way to
+- * guarantee the pages will still be zeroed.
+- */
+- if (!strcmp(str, "on")) {
+- pr_info("Disabling hibernation due to page poisoning\n");
+- return nohibernate_setup(str);
+- }
+-#endif
+- return 1;
+-}
+-
+ __setup("noresume", noresume_setup);
+ __setup("resume_offset=", resume_offset_setup);
+ __setup("resume=", resume_setup);
+@@ -1183,4 +1169,3 @@ __setup("resumewait", resumewait_setup);
+ __setup("resumedelay=", resumedelay_setup);
+ __setup("nohibernate", nohibernate_setup);
+ __setup("kaslr", kaslr_nohibernate_setup);
+-__setup("page_poison=", page_poison_nohibernate_setup);
diff --git a/kernel/power/power.h b/kernel/power/power.h
index efe1b3b..cd674b2 100644
--- a/kernel/power/power.h
@@ -144281,7 +144704,7 @@ index a5d966c..9c2d28b 100644
#ifdef CONFIG_RT_GROUP_SCHED
/*
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index 38eacc3..9f35d87 100644
+index e1422c1..95fac62a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2258,7 +2258,7 @@ void set_numabalancing_state(bool enabled)
@@ -144347,7 +144770,7 @@ index 38eacc3..9f35d87 100644
/* can't increase priority */
if (attr->sched_priority > p->rt_priority &&
attr->sched_priority > rlim_rtprio)
-@@ -7551,7 +7555,7 @@ void __might_sleep(const char *file, int line, int preempt_offset)
+@@ -7550,7 +7554,7 @@ void __might_sleep(const char *file, int line, int preempt_offset)
*/
WARN_ONCE(current->state != TASK_RUNNING && current->task_state_change,
"do not call blocking ops when !TASK_RUNNING; "
@@ -144534,7 +144957,7 @@ index d5690b7..40d1c85 100644
static void push_rt_tasks(struct rq *);
static void pull_rt_task(struct rq *);
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index 898c0d2..c9e3f5b 100644
+index b4f3edf..749dd7c 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -641,7 +641,10 @@ struct rq {
@@ -145125,7 +145548,7 @@ index 2c5e3a8..301fb1a 100644
return -ENOSYS;
}
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 87b2fc3..da4c155 100644
+index b58e447..79b63b6 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -95,7 +95,6 @@
@@ -145371,8 +145794,8 @@ index 87b2fc3..da4c155 100644
if (copy_to_user(*buf, tmp, len))
return -EFAULT;
*size -= len;
-@@ -2245,6 +2317,44 @@ int proc_dointvec(struct ctl_table *table, int write,
- NULL,NULL);
+@@ -2279,6 +2351,44 @@ int proc_douintvec(struct ctl_table *table, int write,
+ do_proc_douintvec_conv, NULL);
}
+static int do_proc_dointvec_conv_secure(bool *negp, unsigned long *lvalp,
@@ -145416,7 +145839,7 @@ index 87b2fc3..da4c155 100644
/*
* Taint values can only be increased
* This means we can safely use a temporary.
-@@ -2252,7 +2362,7 @@ int proc_dointvec(struct ctl_table *table, int write,
+@@ -2286,7 +2396,7 @@ int proc_douintvec(struct ctl_table *table, int write,
static int proc_taint(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)
{
@@ -145425,7 +145848,7 @@ index 87b2fc3..da4c155 100644
unsigned long tmptaint = get_taint();
int err;
-@@ -2280,16 +2390,14 @@ static int proc_taint(struct ctl_table *table, int write,
+@@ -2314,16 +2424,14 @@ static int proc_taint(struct ctl_table *table, int write,
return err;
}
@@ -145444,7 +145867,7 @@ index 87b2fc3..da4c155 100644
struct do_proc_dointvec_minmax_conv_param {
int *min;
-@@ -2320,6 +2428,32 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
+@@ -2354,6 +2462,32 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
return 0;
}
@@ -145477,7 +145900,7 @@ index 87b2fc3..da4c155 100644
/**
* proc_dointvec_minmax - read a vector of integers with min/max values
* @table: the sysctl table
-@@ -2347,6 +2481,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
+@@ -2381,6 +2515,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
do_proc_dointvec_minmax_conv, &param);
}
@@ -145495,7 +145918,7 @@ index 87b2fc3..da4c155 100644
static void validate_coredump_safety(void)
{
#ifdef CONFIG_COREDUMP
-@@ -2834,6 +2979,12 @@ int proc_dostring(struct ctl_table *table, int write,
+@@ -2868,6 +3013,12 @@ int proc_dostring(struct ctl_table *table, int write,
return -ENOSYS;
}
@@ -145508,7 +145931,7 @@ index 87b2fc3..da4c155 100644
int proc_dointvec(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)
{
-@@ -2890,5 +3041,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
+@@ -2931,5 +3082,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
EXPORT_SYMBOL(proc_dostring);
@@ -145964,7 +146387,7 @@ index 1adecb4..b4fb631 100644
return -ENOMEM;
return 0;
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
-index fafeaf8..498f575 100644
+index f4b86e8..18903a2 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -107,6 +107,7 @@ config TRACING
@@ -147002,7 +147425,7 @@ index 97e7b79..37552c71 100644
spin_unlock_irq(&pool->lock);
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index b9cfdbf..f47bcb2 100644
+index b9cfdbf..6407384 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -243,6 +243,7 @@ config PAGE_OWNER
@@ -147097,16 +147520,17 @@ index b9cfdbf..f47bcb2 100644
select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
select KALLSYMS
select KALLSYMS_ALL
-@@ -1711,7 +1718,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
+@@ -1711,7 +1718,8 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
config DEBUG_STRICT_USER_COPY_CHECKS
bool "Strict user copy size checks"
depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
- depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
-+ depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
++ depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW && !PAX_SIZE_OVERFLOW_EXTRA
++ depends on BROKEN
help
Enabling this option turns a certain set of sanity checks for user
copy operations into compile time failures.
-@@ -1867,7 +1874,7 @@ endmenu # runtime tests
+@@ -1867,7 +1875,7 @@ endmenu # runtime tests
config PROVIDE_OHCI1394_DMA_INIT
bool "Remote debugging over FireWire early on boot"
@@ -147901,7 +148325,7 @@ index 4f5b1dd..7cab418 100644
+}
+EXPORT_SYMBOL(copy_to_user_overflow);
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
-index 0967771..aaabd5d 100644
+index 0967771..2871684 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -16,6 +16,9 @@
@@ -147914,6 +148338,15 @@ index 0967771..aaabd5d 100644
#include <stdarg.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
+@@ -118,7 +121,7 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base)
+ }
+ EXPORT_SYMBOL(simple_strtoll);
+
+-static noinline_for_stack
++static noinline_for_stack __nocapture(1) __unverified_nocapture(1)
+ int skip_atoi(const char **s)
+ {
+ int i = 0;
@@ -680,7 +683,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
#ifdef CONFIG_KALLSYMS
if (*fmt == 'B')
@@ -147947,6 +148380,15 @@ index 0967771..aaabd5d 100644
* - '[FfSs]R' as above with __builtin_extract_return_addr() translation
* - 'B' For backtraced symbolic direct pointers with offset
* - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
+@@ -1570,7 +1579,7 @@ int kptr_restrict __read_mostly;
+ * function pointers are really function descriptors, which contain a
+ * pointer to the real address.
+ */
+-static noinline_for_stack
++static noinline_for_stack __nocapture(1) __unverified_nocapture(1)
+ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+ struct printf_spec spec)
+ {
@@ -1578,12 +1587,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
if (!ptr && *fmt != 'K') {
@@ -148019,6 +148461,15 @@ index 0967771..aaabd5d 100644
spec.flags |= SMALL;
if (spec.field_width == -1) {
spec.field_width = default_width;
+@@ -1749,7 +1787,7 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+ * @precision: precision of a number
+ * @qualifier: qualifier of a number (long, size_t, ...)
+ */
+-static noinline_for_stack
++static noinline_for_stack __nocapture(1)
+ int format_decode(const char *fmt, struct printf_spec *spec)
+ {
+ const char *start = fmt;
@@ -2419,11 +2457,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
typeof(type) value; \
if (sizeof(type) == 8) { \
@@ -148097,7 +148548,7 @@ index 3e2daef..1ed2829 100644
This option enables code in the zsmalloc to collect various
statistics about whats happening in zsmalloc and exports that
diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
-index 22f4cd9..402f316 100644
+index 22f4cd9..ed3f097 100644
--- a/mm/Kconfig.debug
+++ b/mm/Kconfig.debug
@@ -10,6 +10,7 @@ config PAGE_EXTENSION
@@ -148108,6 +148559,15 @@ index 22f4cd9..402f316 100644
depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
depends on !KMEMCHECK
select PAGE_EXTENSION
+@@ -76,8 +77,6 @@ config PAGE_POISONING_ZERO
+ no longer necessary to write zeros when GFP_ZERO is used on
+ allocation.
+
+- Enabling page poisoning with this option will disable hibernation
+-
+ If unsure, say N
+ bool
+
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index 9269911..f53557a 100644
--- a/mm/backing-dev.c
@@ -151317,7 +151777,7 @@ index e248194..ff005a8 100644
struct bdi_writeback *wb = dtc->wb;
unsigned long write_bw = wb->avg_write_bandwidth;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 6e35419..3ebe533 100644
+index 6e35419..aff7b30 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -63,6 +63,7 @@
@@ -151423,20 +151883,21 @@ index 6e35419..3ebe533 100644
}
#ifdef CONFIG_DEBUG_VM
-@@ -1732,8 +1771,12 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags
+@@ -1730,11 +1769,13 @@ static void prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags
+ int i;
+ bool poisoned = true;
++#ifndef CONFIG_PAX_MEMORY_SANITIZE
for (i = 0; i < (1 << order); i++) {
struct page *p = page + i;
-+
-+#ifndef CONFIG_PAX_MEMORY_SANITIZE
if (poisoned)
poisoned &= page_is_poisoned(p);
-+#endif
-+
}
++#endif
set_page_private(page, 0);
-@@ -2281,8 +2324,9 @@ static void drain_pages(unsigned int cpu)
+ set_page_refcounted(page);
+@@ -2281,8 +2322,9 @@ static void drain_pages(unsigned int cpu)
* The CPU has to be pinned. When zone parameter is non-NULL, spill just
* the single zone's pages.
*/
@@ -151447,7 +151908,7 @@ index 6e35419..3ebe533 100644
int cpu = smp_processor_id();
if (zone)
-@@ -2342,8 +2386,7 @@ void drain_all_pages(struct zone *zone)
+@@ -2342,8 +2384,7 @@ void drain_all_pages(struct zone *zone)
else
cpumask_clear_cpu(cpu, &cpus_with_pcps);
}
@@ -151457,7 +151918,7 @@ index 6e35419..3ebe533 100644
}
#ifdef CONFIG_HIBERNATION
-@@ -2649,7 +2692,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
+@@ -2649,7 +2690,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
get_pcppage_migratetype(page));
}
@@ -151466,7 +151927,7 @@ index 6e35419..3ebe533 100644
!test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
-@@ -2892,7 +2935,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
+@@ -2892,7 +2933,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
do {
mod_zone_page_state(zone, NR_ALLOC_BATCH,
high_wmark_pages(zone) - low_wmark_pages(zone) -
@@ -151475,7 +151936,7 @@ index 6e35419..3ebe533 100644
clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
} while (zone++ != preferred_zone);
}
-@@ -6812,7 +6855,7 @@ static void __setup_per_zone_wmarks(void)
+@@ -6812,7 +6853,7 @@ static void __setup_per_zone_wmarks(void)
__mod_zone_page_state(zone, NR_ALLOC_BATCH,
high_wmark_pages(zone) - low_wmark_pages(zone) -
@@ -152736,7 +153197,7 @@ index 5ec1580..ced45c6 100644
EXPORT_SYMBOL(kmem_cache_free);
diff --git a/mm/slub.c b/mm/slub.c
-index 7a6d268..60e55b6 100644
+index b94fb36..504dfab 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -34,6 +34,7 @@
@@ -153174,18 +153635,9 @@ index 46502f5..59af784 100644
if (S_ISREG(inode->i_mode))
diff --git a/mm/util.c b/mm/util.c
-index 917e0e3..1c9f20c 100644
+index 917e0e3..6873e84 100644
--- a/mm/util.c
+++ b/mm/util.c
-@@ -230,7 +230,7 @@ void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
- }
-
- /* Check if the vma is being used as a stack by this task */
--int vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t)
-+bool vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t)
- {
- return (vma->vm_start <= KSTK_ESP(t) && vma->vm_end >= KSTK_ESP(t));
- }
@@ -239,6 +239,12 @@ int vma_is_stack_for_task(struct vm_area_struct *vma, struct task_struct *t)
void arch_pick_mmap_layout(struct mm_struct *mm)
{
@@ -154011,10 +154463,10 @@ index 65536db..eefd4ce 100644
frag_header.no = 0;
frag_header.total_size = htons(skb->len);
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
-index bfac086..9ea5e14 100644
+index 69d425d..abac022 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
-@@ -719,7 +719,7 @@ batadv_reroute_unicast_packet(struct batadv_priv *bat_priv,
+@@ -745,7 +745,7 @@ batadv_reroute_unicast_packet(struct batadv_priv *bat_priv,
if (!primary_if)
goto out;
orig_addr = primary_if->net_dev->dev_addr;
@@ -154023,7 +154475,7 @@ index bfac086..9ea5e14 100644
} else {
orig_node = batadv_transtable_search(bat_priv, NULL, dst_addr,
vid);
-@@ -795,7 +795,7 @@ static bool batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
+@@ -821,7 +821,7 @@ static bool batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
* value is used later to check if the node which sent (or re-routed
* last time) the packet had an updated information or not
*/
@@ -154377,7 +154829,7 @@ index 57ec87f..92b4b3f 100644
/* reset the sending counter */
atomic_set(&bat_priv->tt.ogm_append_cnt, BATADV_TT_OGM_APPEND_MAX);
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
-index 74d865a..8172fc2 100644
+index 40aed16..cd8171b 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -83,7 +83,7 @@ enum batadv_dhcp_recipient {
@@ -154430,10 +154882,10 @@ index 1298d72..423f410 100644
err = -EFAULT;
break;
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
-index eb4f5f2..2cc4c50 100644
+index 106643e..ba2583c 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
-@@ -3547,8 +3547,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
+@@ -3548,8 +3548,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
break;
case L2CAP_CONF_RFC:
@@ -154447,7 +154899,7 @@ index eb4f5f2..2cc4c50 100644
if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
rfc.mode != chan->mode)
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
-index 1842141..1562f36 100644
+index a8ba752..de24ce0 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -633,7 +633,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
@@ -159540,10 +159992,10 @@ index 5ccfdbd..e0e72b6 100644
goto free;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index 8bad2ad..90a03e3 100644
+index 5f0ed8c..a389ad5 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
-@@ -3099,7 +3099,7 @@ static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata,
+@@ -3103,7 +3103,7 @@ static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata,
case WLAN_CIPHER_SUITE_CCMP_256:
case WLAN_CIPHER_SUITE_GCMP:
case WLAN_CIPHER_SUITE_GCMP_256:
@@ -162168,7 +162620,7 @@ index 553bf95..c4c6132 100644
goto out_nomem;
cd->u.procfs.channel_ent = NULL;
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
-index 2808d55..677092e 100644
+index 0294ada..89323a2 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -1544,7 +1544,9 @@ call_start(struct rpc_task *task)
@@ -162385,7 +162837,7 @@ index 2ecb994..5afb49f 100644
return -ENOMEM;
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index cc98528..925844d 100644
+index c5b0cb4..8ef3bff 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -50,7 +50,7 @@ EXPORT_SYMBOL_GPL(svc_pool_map);
@@ -163721,10 +164173,10 @@ index 53449a6..c1fd180 100644
warning-2 += -Wdisabled-optimization
diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins
new file mode 100644
-index 0000000..dc5098b
+index 0000000..0dbfb4b
--- /dev/null
+++ b/scripts/Makefile.gcc-plugins
-@@ -0,0 +1,100 @@
+@@ -0,0 +1,107 @@
+ifdef CONFIG_GCC_PLUGINS
+ __PLUGINCC := $(call cc-ifversion, -ge, 0408, $(HOSTCXX), $(HOSTCC))
+ PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(__PLUGINCC)" "$(HOSTCXX)" "$(CC)")
@@ -163757,6 +164209,10 @@ index 0000000..dc5098b
+ gcc-plugin-subdir-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin
+ gcc-plugin-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin/size_overflow_plugin.so
+ gcc-plugin-cflags-$(CONFIG_PAX_SIZE_OVERFLOW) += -DSIZE_OVERFLOW_PLUGIN
++ gcc-plugin-cflags-$(CONFIG_PAX_SIZE_OVERFLOW) += -fplugin-arg-size_overflow_plugin-check-fns
++ gcc-plugin-cflags-$(CONFIG_PAX_SIZE_OVERFLOW_EXTRA) += -fplugin-arg-size_overflow_plugin-check-fields
++ gcc-plugin-cflags-$(CONFIG_PAX_SIZE_OVERFLOW_EXTRA) += -fplugin-arg-size_overflow_plugin-check-fptrs
++ gcc-plugin-cflags-$(CONFIG_PAX_SIZE_OVERFLOW_EXTRA) += -fplugin-arg-size_overflow_plugin-check-vars
+
+ gcc-plugin-$(CONFIG_GRKERNSEC_RANDSTRUCT) += randomize_layout_plugin.so
+ gcc-plugin-cflags-$(CONFIG_GRKERNSEC_RANDSTRUCT) += -DRANDSTRUCT_PLUGIN
@@ -163772,10 +164228,13 @@ index 0000000..dc5098b
+ gcc-plugin-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so
+ gcc-plugin-cflags-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += -DSTRUCTLEAK_PLUGIN
+
-+ gcc-plugin-y += initify_plugin.so
-+ gcc-plugin-cflags-y += -DINITIFY_PLUGIN
-+# -fplugin-arg-initify_plugin-search_init_exit_functions
-+# gcc-plugin-cflags-y += -fplugin-arg-initify_plugin-verbose
++ gcc-plugin-$(CONFIG_PAX_INITIFY) += initify_plugin.so
++ gcc-plugin-cflags-$(CONFIG_PAX_INITIFY) += -DINITIFY_PLUGIN -fplugin-arg-initify_plugin-search_init_exit_functions
++ gcc-plugin-cflags-$(CONFIG_PAX_INITIFY_VERBOSE) += -fplugin-arg-initify_plugin-verbose -fplugin-arg-initify_plugin-print_missing_attr
++ gcc-plugin-cflags-$(CONFIG_PAX_INITIFY_INIT_EXIT) += -fplugin-arg-initify_plugin-enable_init_to_exit_moves
++ ifdef CONFIG_PAX_INITIFY
++ INITIFY_DISABLE_VERIFY_NOCAPTURE_FUNCTIONS += -fplugin-arg-initify_plugin-disable_verify_nocapture_functions
++ endif
+
+ gcc-plugin-subdir-$(CONFIG_PAX_RAP) += rap_plugin
+ gcc-plugin-$(CONFIG_PAX_RAP) += rap_plugin/rap_plugin.so
@@ -163791,7 +164250,7 @@ index 0000000..dc5098b
+ GCC_PLUGINS_AFLAGS := $(gcc-plugin-aflags-y)
+
+ export PLUGINCC GCC_PLUGIN GCC_PLUGIN_SUBDIR GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS
-+ export DISABLE_LATENT_ENTROPY_PLUGIN RAP_PLUGIN_ABS_CFLAGS
++ export DISABLE_LATENT_ENTROPY_PLUGIN RAP_PLUGIN_ABS_CFLAGS INITIFY_DISABLE_VERIFY_NOCAPTURE_FUNCTIONS
+
+ KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
+ KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
@@ -167261,19 +167720,48 @@ index 0000000..7514850
+fi
diff --git a/scripts/gcc-plugins/initify_plugin.c b/scripts/gcc-plugins/initify_plugin.c
new file mode 100644
-index 0000000..fd7b918
+index 0000000..0c0cf81
--- /dev/null
+++ b/scripts/gcc-plugins/initify_plugin.c
-@@ -0,0 +1,538 @@
+@@ -0,0 +1,1804 @@
+/*
+ * Copyright 2015-2016 by Emese Revfy <re.emese@gmail.com>
-+ * Licensed under the GPL v2, or (at your option) v3
++ * Licensed under the GPL v2
+ *
+ * Homepage:
+ * https://github.com/ephox-gcc-plugins/initify
+ *
-+ * Move string constants (__func__ and function string arguments marked by the nocapture attribute)
-+ * only referenced in __init/__exit functions to __initconst/__exitconst sections.
++ * This plugin has two passes. The first one tries to find all functions that
++ * can be become __init/__exit. The second one moves string constants
++ * (local variables and function string arguments marked by
++ * the nocapture attribute) only referenced in __init/__exit functions
++ * to __initconst/__exitconst sections.
++ * Based on an idea from Mathias Krause <minipli@ld-linux.so>.
++ *
++ * The instrumentation pass of the latent_entropy plugin must run after
++ * the initify plugin to increase coverage.
++ *
++ * Options:
++ * -fplugin-arg-initify_plugin-disable
++ * -fplugin-arg-initify_plugin-verbose
++ * -fplugin-arg-initify_plugin-print_missing_attr
++ * -fplugin-arg-initify_plugin-search_init_exit_functions
++ * -fplugin-arg-initify_plugin-enable_init_to_exit_moves
++ * -fplugin-arg-initify_plugin-disable_verify_nocapture_functions
++ *
++ * Attribute: __attribute__((nocapture(x, y ...)))
++ * The nocapture gcc attribute can be on functions only.
++ * The attribute takes one or more unsigned integer constants as parameters
++ * that specify the function argument(s) of const char* type to initify.
++ * If the marked argument is a vararg then the plugin initifies
++ * all vararg arguments.
++ * There can be one negative value which means that the return of the function
++ * will be followed to find it is a nocapture attribute or not.
++ *
++ * Attribute: __attribute__((unverified_nocapture(x, y ...)))
++ * This attribute disables the compile data flow verification of the designated
++ * nocapture parameters of the function. Use it only on function parameters
++ * that are difficult for the plugin to analyze.
+ *
+ * Usage:
+ * $ make
@@ -167285,57 +167773,282 @@ index 0000000..fd7b918
+__visible int plugin_is_GPL_compatible;
+
+static struct plugin_info initify_plugin_info = {
-+ .version = "20160306",
-+ .help = "initify_plugin\n",
++ .version = "20160929",
++ .help = "disable\tturn off the initify plugin\n"
++ "verbose\tprint all initified strings and all"
++ " functions which should be __init/__exit\n"
++ "print_missing_attr\tprint functions which"
++ " can be marked by nocapture attribute\n"
++ "search_init_exit_functions\tfind functions"
++ " which should be marked by __init or __exit"
++ " attribute\n"
++ "enable_init_to_exit_moves\tmove a function"
++ " to the exit section if it is called by __init"
++ " and __exit functions too\n"
++ "disable_verify_nocapture_functions\tdisable"
++ " the search of capture uses in nocapture"
++ " functions\n"
++};
++
++#define ARGNUM_NONE 0
++static bool verbose, print_missing_attr, search_init_exit_functions;
++static bool enable_init_to_exit_moves, disable_verify_nocapture_functions;
++
++enum section_type {
++ INIT, EXIT, BOTH, NONE
+};
+
++enum attribute_type {
++ UNVERIFIED, NOCAPTURE, PRINTF, BUILTINS, SYSCALL, NONE_ATTRIBUTE
++};
++
++
++#if BUILDING_GCC_VERSION >= 5000
++typedef struct hash_set<const_gimple> gimple_set;
++
++static inline bool pointer_set_insert(gimple_set *visited, const_gimple stmt)
++{
++ return visited->add(stmt);
++}
++
++static inline bool pointer_set_contains(gimple_set *visited, const_gimple stmt)
++{
++ return visited->contains(stmt);
++}
++
++static inline gimple_set* pointer_set_create(void)
++{
++ return new hash_set<const_gimple>;
++}
++
++static inline void pointer_set_destroy(gimple_set *visited)
++{
++ delete visited;
++}
++
++typedef struct hash_set<const_tree> tree_set;
++
++static inline bool pointer_set_insert(tree_set *visited, const_tree node)
++{
++ return visited->add(node);
++}
++
++static inline tree_set* tree_pointer_set_create(void)
++{
++ return new hash_set<const_tree>;
++}
++
++static inline void pointer_set_destroy(tree_set *visited)
++{
++ delete visited;
++}
++#else
++typedef struct pointer_set_t gimple_set;
++typedef struct pointer_set_t tree_set;
++
++static inline tree_set *tree_pointer_set_create(void)
++{
++ return pointer_set_create();
++}
++#endif
++
++static gimple initify_get_def_stmt(const_tree node)
++{
++ gcc_assert(node != NULL_TREE);
++
++ if (TREE_CODE(node) != SSA_NAME)
++ return NULL;
++ return SSA_NAME_DEF_STMT(node);
++}
++
++static void search_constant_strings(bool *has_str_cst, gimple_set *visited, tree node);
++static bool has_capture_use_local_var(const_tree vardecl);
++static bool search_capture_ssa_use(gimple_set *visited_defs, tree node);
++
++#define FUNCTION_PTR_P(node) \
++ (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))
++
++static bool is_vararg_arg(tree arg_list, unsigned int num)
++{
++ if (tree_last(arg_list) == void_list_node)
++ return false;
++
++ return num >= (unsigned int)list_length(arg_list);
++}
++
++static const_tree get_ptr_type(const_tree type)
++{
++ gcc_assert(type != NULL_TREE);
++
++ if (TREE_CODE(type) != POINTER_TYPE)
++ return type;
++ return get_ptr_type(TREE_TYPE(type));
++}
++
++static bool check_parameter(tree *node, tree type_args, int idx)
++{
++ const_tree type_arg, type, type_type, type_name, ptr_type;
++
++ if (is_vararg_arg(type_args, idx))
++ return true;
++
++ type_arg = chain_index(idx - 1, type_args);
++ type = TREE_VALUE(type_arg);
++ gcc_assert(type != NULL_TREE);
++ type_type = TREE_TYPE(type);
++ gcc_assert(type_type != NULL_TREE);
++
++ type_name = TYPE_NAME(type_type);
++ if (type_name != NULL_TREE && TREE_CODE(type_name) == IDENTIFIER_NODE && !strcmp(TYPE_NAME_POINTER(type_type), "va_format"))
++ return true;
++
++ if (TREE_CODE(type) != POINTER_TYPE) {
++ error("%u. parameter of the %qE function must be a pointer", idx, *node);
++ return false;
++ }
++
++ ptr_type = get_ptr_type(type_type);
++ if (!TYPE_READONLY(ptr_type)) {
++ error("%u. parameter of the %qE function must be readonly", idx, *node);
++ return false;
++ }
++
++ if (TREE_THIS_VOLATILE(ptr_type)) {
++ error("%u. parameter of the %qE function can't be volatile", idx, *node);
++ return false;
++ }
++
++ return true;
++}
++
++static bool check_marked_parameters(tree *node, tree type_args, const_tree args, const_tree name)
++{
++ const_tree arg;
++ bool negative_val;
++
++ negative_val = false;
++ for (arg = args; arg; arg = TREE_CHAIN(arg)) {
++ int idx;
++ unsigned int abs_idx;
++ tree position = TREE_VALUE(arg);
++
++ if (TREE_CODE(position) != INTEGER_CST) {
++ error("%qE parameter of the %qE attribute isn't an integer (fn: %qE)", position, name, *node);
++ return false;
++ }
++
++ idx = (int)tree_to_shwi(position);
++ if (negative_val && idx < 0) {
++ error("Only one negative attribute value is supported (attribute: %qE fn: %qE)", name, *node);
++ return false;
++ }
++
++ if (idx < 0)
++ negative_val = true;
++
++ abs_idx = abs(idx);
++ if (abs_idx == 0)
++ continue;
++
++ if (!check_parameter(node, type_args, abs_idx))
++ return false;
++ }
++ return true;
++}
++
++static bool check_all_parameters(tree *node, tree type_args)
++{
++ int arg, len = list_length(type_args);
++
++ if (tree_last(type_args) == void_list_node)
++ len -= 1;
++
++ for (arg = 1; arg <= len; arg++) {
++ if (!check_parameter(node, type_args, arg))
++ return false;
++ }
++ return true;
++}
++
+/* nocapture attribute:
-+ * * to mark nocapture function arguments. If used on a vararg argument it applies to all of them
-+ * that have no other uses.
++ * * to mark nocapture function arguments. If used on a vararg argument
++ * it applies to all of them that have no other uses.
+ * * attribute value 0 is ignored to allow reusing print attribute arguments
+ */
-+static tree handle_nocapture_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
++static bool handle_initify_attributes(tree *node, tree name, tree args)
+{
-+ tree orig_attr, arg;
++ tree type_args = NULL_TREE;
+
-+ *no_add_attrs = true;
+ switch (TREE_CODE(*node)) {
+ case FUNCTION_DECL:
++ type_args = TYPE_ARG_TYPES(TREE_TYPE(*node));
++ break;
++
+ case FUNCTION_TYPE:
+ case METHOD_TYPE:
++ type_args = TYPE_ARG_TYPES(*node);
+ break;
++
+ case TYPE_DECL: {
++ enum tree_code fn_code;
+ const_tree fntype = TREE_TYPE(*node);
+
-+ if (TREE_CODE(fntype) == POINTER_TYPE)
++ fn_code = TREE_CODE(fntype);
++ if (fn_code == POINTER_TYPE)
+ fntype = TREE_TYPE(fntype);
-+ if (TREE_CODE(fntype) == FUNCTION_TYPE || TREE_CODE(fntype) == METHOD_TYPE)
++ fn_code = TREE_CODE(fntype);
++ if (fn_code == FUNCTION_TYPE || fn_code == METHOD_TYPE) {
++ type_args = TYPE_ARG_TYPES(fntype);
+ break;
-+ // FALLTHROUGH
++ }
++ /* FALLTHROUGH */
+ }
++
+ default:
+ debug_tree(*node);
+ error("%s: %qE attribute only applies to functions", __func__, name);
-+ return NULL_TREE;
++ return false;
+ }
+
-+ for (arg = args; arg; arg = TREE_CHAIN(arg)) {
-+ tree position = TREE_VALUE(arg);
++ gcc_assert(type_args != NULL_TREE);
+
-+ if (TREE_CODE(position) != INTEGER_CST) {
-+ error("%qE parameter of the %qE attribute isn't an integer (fn: %qE)", position, name, *node);
-+ return NULL_TREE;
-+ }
++ if (!check_marked_parameters(node, type_args, args, name))
++ return false;
++ return args != NULL_TREE || check_all_parameters(node, type_args);
++}
+
-+ if (tree_int_cst_lt(position, integer_minus_one_node)) {
-+ error("%qE parameter of the %qE attribute less than 0 (fn: %qE)", position, name, *node);
-+ return NULL_TREE;
-+ }
-+ }
++static tree handle_nocapture_attribute(tree *node, tree name, tree args, int __unused flags, bool *no_add_attrs)
++{
++ tree nocapture_attr;
+
-+ orig_attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(*node));
-+ if (orig_attr)
-+ chainon(TREE_VALUE(orig_attr), args);
++ *no_add_attrs = true;
++
++ if (!handle_initify_attributes(node, name, args))
++ return NULL_TREE;
++
++ nocapture_attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(*node));
++ if (nocapture_attr)
++ chainon(TREE_VALUE(nocapture_attr), args);
++ else
++ *no_add_attrs = false;
++
++ return NULL_TREE;
++}
++
++static tree handle_unverified_nocapture_attribute(tree *node, tree name, tree args, int __unused flags, bool *no_add_attrs)
++{
++ tree unverified_attr;
++
++ *no_add_attrs = true;
++
++ if (!handle_initify_attributes(node, name, args))
++ return NULL_TREE;
++
++ unverified_attr = lookup_attribute("unverified_nocapture", DECL_ATTRIBUTES(*node));
++ if (unverified_attr)
++ chainon(TREE_VALUE(unverified_attr), args);
+ else
+ *no_add_attrs = false;
+
@@ -167344,7 +168057,7 @@ index 0000000..fd7b918
+
+static struct attribute_spec nocapture_attr = {
+ .name = "nocapture",
-+ .min_length = 1,
++ .min_length = 0,
+ .max_length = -1,
+ .decl_required = true,
+ .type_required = false,
@@ -167355,31 +168068,46 @@ index 0000000..fd7b918
+#endif
+};
+
++static struct attribute_spec unverified_nocapture_attr = {
++ .name = "unverified_nocapture",
++ .min_length = 0,
++ .max_length = -1,
++ .decl_required = true,
++ .type_required = false,
++ .function_type_required = false,
++ .handler = handle_unverified_nocapture_attribute,
++#if BUILDING_GCC_VERSION >= 4007
++ .affects_type_identity = false
++#endif
++};
++
+static void register_attributes(void __unused *event_data, void __unused *data)
+{
+ register_attribute(&nocapture_attr);
++ register_attribute(&unverified_nocapture_attr);
+}
+
-+static const char *get_init_exit_section(const_tree decl)
++/* Determine whether the function is in the init or exit sections. */
++static enum section_type get_init_exit_section(const_tree decl)
+{
-+ const_tree section;
-+ tree attr_value;
++ const char *str;
++ const_tree section, attr_value;
+
+ section = lookup_attribute("section", DECL_ATTRIBUTES(decl));
+ if (!section)
-+ return NULL;
++ return NONE;
+
-+ gcc_assert(TREE_VALUE(section));
-+ for (attr_value = TREE_VALUE(section); attr_value; attr_value = TREE_CHAIN(attr_value)) {
-+ const char *str = TREE_STRING_POINTER(TREE_VALUE(attr_value));
++ attr_value = TREE_VALUE(section);
++ gcc_assert(attr_value != NULL_TREE);
++ gcc_assert(list_length(attr_value) == 1);
+
-+ if (!strncmp(str, ".init.", 6))
-+ return str;
-+ if (!strncmp(str, ".exit.", 6))
-+ return str;
-+ }
++ str = TREE_STRING_POINTER(TREE_VALUE(attr_value));
+
-+ return NULL;
++ if (!strncmp(str, ".init.", 6))
++ return INIT;
++ if (!strncmp(str, ".exit.", 6))
++ return EXIT;
++ return NONE;
+}
+
+static tree get_string_cst(tree var)
@@ -167402,69 +168130,184 @@ index 0000000..fd7b918
+ }
+ break;
+ }
++
+ default:
+ break;
+ }
++
+ return NULL_TREE;
+}
+
-+static bool set_init_exit_section(tree decl, bool initexit)
++static bool set_init_exit_section(tree decl)
+{
-+ const char *str;
-+
+ gcc_assert(DECL_P(decl));
+
-+ str = get_init_exit_section(decl);
-+ if (str)
++ if (get_init_exit_section(decl) != NONE)
+ return false;
+
-+ if (initexit)
++ if (get_init_exit_section(current_function_decl) == INIT)
+ set_decl_section_name(decl, ".init.rodata.str");
+ else
+ set_decl_section_name(decl, ".exit.rodata.str");
+ return true;
+}
+
++/* Syscalls are always nocapture functions. */
+static bool is_syscall(const_tree fn)
+{
-+ if (!strncmp(DECL_NAME_POINTER(fn), "sys_", 4))
++ const char *name = DECL_NAME_POINTER(fn);
++
++ if (!strncmp(name, "sys_", 4))
+ return true;
+
-+ if (!strncmp(DECL_NAME_POINTER(fn), "sys32_", 6))
++ if (!strncmp(name, "sys32_", 6))
+ return true;
+
-+ if (!strncmp(DECL_NAME_POINTER(fn), "compat_sys_", 11))
++ if (!strncmp(name, "compat_sys_", 11))
+ return true;
+
+ return false;
+}
+
-+static bool is_nocapture_param(const gcall *stmt, int fn_arg_count)
++/* These builtins are nocapture functions. */
++static bool allowed_builtins(const_tree fn)
++{
++ const char *name = DECL_NAME_POINTER(fn);
++
++ if (!strcmp(name, "__builtin_va_start"))
++ return true;
++ if (!strcmp(name, "__builtin_expect"))
++ return true;
++ if (!strcmp(name, "__builtin_memcpy"))
++ return true;
++ return false;
++}
++
++static enum attribute_type search_argnum_in_attribute_params(const_tree attr, int fn_arg_num, int fntype_arg_len)
++{
++ const_tree attr_val;
++
++ for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
++ int attr_arg_val;
++
++ if (TREE_CODE(TREE_VALUE(attr_val)) == IDENTIFIER_NODE)
++ continue;
++
++ attr_arg_val = (int)abs(tree_to_shwi(TREE_VALUE(attr_val)));
++ if (attr_arg_val == fn_arg_num)
++ return NOCAPTURE;
++ if (attr_arg_val > fntype_arg_len && fn_arg_num >= attr_arg_val)
++ return NOCAPTURE;
++ }
++ return NONE_ATTRIBUTE;
++}
++
++/* Check that fn_arg_num is a nocapture argument, handle cloned functions too. */
++static enum attribute_type lookup_nocapture_argument(const_tree fndecl, const_tree attr, int fn_arg_num, int fntype_arg_len)
++{
++ const_tree orig_decl, clone_arg, orig_arg;
++ tree decl_list, orig_decl_list;
++ enum attribute_type orig_attribute;
++ struct cgraph_node *node = cgraph_get_node(fndecl);
++
++ orig_attribute = search_argnum_in_attribute_params(attr, fn_arg_num, fntype_arg_len);
++ if (orig_attribute == NONE_ATTRIBUTE)
++ return orig_attribute;
++
++ gcc_assert(node);
++ if (node->clone_of && node->clone.tree_map)
++ gcc_assert(!node->clone.args_to_skip);
++
++ if (!DECL_ARTIFICIAL(fndecl) && DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE)
++ return orig_attribute;
++
++ orig_decl = DECL_ABSTRACT_ORIGIN(fndecl);
++ gcc_assert(orig_decl != NULL_TREE);
++
++ decl_list = DECL_ARGUMENTS(fndecl);
++ orig_decl_list = DECL_ARGUMENTS(orig_decl);
++
++ if (decl_list == NULL_TREE || orig_decl_list == NULL_TREE)
++ return NONE_ATTRIBUTE;
++
++ if (list_length(decl_list) == list_length(orig_decl_list))
++ return orig_attribute;
++
++ clone_arg = chain_index(fn_arg_num - 1, decl_list);
++ gcc_assert(clone_arg != NULL_TREE);
++
++ orig_arg = chain_index(fn_arg_num - 1, orig_decl_list);
++ gcc_assert(orig_arg != NULL_TREE);
++
++ if (!strcmp(DECL_NAME_POINTER(clone_arg), DECL_NAME_POINTER(orig_arg)))
++ return orig_attribute;
++ return NONE_ATTRIBUTE;
++}
++
++/* Check whether the function argument is nocapture. */
++static enum attribute_type is_fndecl_nocapture_arg(const_tree fndecl, int fn_arg_num)
+{
-+ const_tree attr, attr_val;
+ int fntype_arg_len;
-+ const_tree fndecl = gimple_call_fndecl(stmt);
++ const_tree type, attr = NULL_TREE;
++ bool fnptr = FUNCTION_PTR_P(fndecl);
+
-+// gcc_assert(DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE);
-+ if (DECL_ABSTRACT_ORIGIN(fndecl) != NULL_TREE)
-+ return false;
++ if (!fnptr && is_syscall(fndecl))
++ return SYSCALL;
+
-+ if (is_syscall(fndecl))
-+ return true;
++ if (!fnptr && DECL_BUILT_IN(fndecl) && allowed_builtins(fndecl))
++ return BUILTINS;
++
++ if (fnptr)
++ type = TREE_TYPE(TREE_TYPE(fndecl));
++ else
++ type = TREE_TYPE(fndecl);
++
++ fntype_arg_len = type_num_arguments(type);
++
++ if (!fnptr)
++ attr = lookup_attribute("unverified_nocapture", DECL_ATTRIBUTES(fndecl));
++ if (attr != NULL_TREE && lookup_nocapture_argument(fndecl, attr, fn_arg_num, fntype_arg_len) != NONE_ATTRIBUTE)
++ return UNVERIFIED;
++
++ attr = lookup_attribute("format", TYPE_ATTRIBUTES(type));
++ if (attr != NULL_TREE && lookup_nocapture_argument(fndecl, attr, fn_arg_num, fntype_arg_len) != NONE_ATTRIBUTE)
++ return PRINTF;
++
++ if (fnptr)
++ return NONE_ATTRIBUTE;
++
++ attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
++ if (attr == NULL_TREE)
++ return NONE_ATTRIBUTE;
++
++ if (TREE_VALUE(attr) == NULL_TREE)
++ return NOCAPTURE;
++
++ return lookup_nocapture_argument(fndecl, attr, fn_arg_num, fntype_arg_len);
++}
++
++/* Check whether arg_num is a nocapture argument that can be returned. */
++static bool is_negative_nocapture_arg(const_tree fndecl, int arg_num)
++{
++ const_tree attr, attr_val;
++
++ gcc_assert(arg_num <= 0);
++
++ if (FUNCTION_PTR_P(fndecl))
++ return false;
+
-+ fntype_arg_len = type_num_arguments(TREE_TYPE(fndecl));
+ attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
+ if (attr == NULL_TREE)
+ return false;
+
+ for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
-+ int attr_arg_val = (int)tree_to_shwi(TREE_VALUE(attr_val));
++ int attr_arg_val;
+
-+ if (attr_arg_val == -1)
-+ return true;
-+ if (attr_arg_val == fn_arg_count)
++ if (arg_num == 0 && tree_int_cst_lt(TREE_VALUE(attr_val), integer_zero_node))
+ return true;
-+ if (attr_arg_val > fntype_arg_len && fn_arg_count >= attr_arg_val)
++
++ attr_arg_val = (int)tree_to_shwi(TREE_VALUE(attr_val));
++ if (attr_arg_val == arg_num)
+ return true;
+ }
+
@@ -167481,9 +168324,13 @@ index 0000000..fd7b918
+ decl = SSA_NAME_VAR(op);
+ else
+ decl = op;
++
+ if (decl == NULL_TREE || !DECL_P(decl))
+ return false;
+
++ if (TREE_CODE(decl) != TREE_CODE(vardecl))
++ return false;
++
+ return DECL_NAME(decl) && !strcmp(DECL_NAME_POINTER(decl), DECL_NAME_POINTER(vardecl));
+}
+
@@ -167534,12 +168381,15 @@ index 0000000..fd7b918
+ switch (TREE_CODE_CLASS(TREE_CODE(op))) {
+ case tcc_declaration:
+ return is_same_vardecl(op, vardecl);
++
+ case tcc_exceptional:
+ return check_constructor(op, vardecl);
++
+ case tcc_constant:
+ case tcc_statement:
+ case tcc_comparison:
+ return false;
++
+ default:
+ break;
+ }
@@ -167548,13 +168398,357 @@ index 0000000..fd7b918
+ return search_same_vardecl(op, vardecl);
+}
+
++static bool is_stmt_nocapture_arg(const gcall *stmt, int arg_num)
++{
++ tree fndecl;
++
++ fndecl = gimple_call_fndecl(stmt);
++ if (fndecl == NULL_TREE)
++ fndecl = gimple_call_fn(stmt);
++
++ gcc_assert(fndecl != NULL_TREE);
++ if (is_fndecl_nocapture_arg(fndecl, arg_num) != NONE_ATTRIBUTE)
++ return true;
++
++ /*
++ * These are potentially nocapture functions that must be checked
++ * manually.
++ */
++ if (print_missing_attr)
++ inform(gimple_location(stmt), "nocapture attribute is missing (fn: %E, arg: %u)\n", fndecl, arg_num);
++ return false;
++}
++
++/* Find the argument position of arg. */
++static int get_arg_num(const gcall *call, const_tree arg)
++{
++ int idx;
++
++ for (idx = 0; idx < (int)gimple_call_num_args(call); idx++) {
++ const_tree cur_arg = gimple_call_arg(call, idx);
++
++ if (cur_arg == arg)
++ return idx + 1;
++ }
++
++ debug_tree(arg);
++ debug_gimple_stmt(call);
++ gcc_unreachable();
++}
++
++/* Determine if the variable uses are only in nocapture functions. */
++static bool only_nocapture_call(const_tree decl)
++{
++ struct cgraph_edge *e;
++ struct cgraph_node *caller;
++ bool has_call = false;
++
++ gcc_assert(TREE_CODE(decl) == VAR_DECL);
++
++ caller = cgraph_get_node(current_function_decl);
++ for (e = caller->callees; e; e = e->next_callee) {
++ int idx;
++ const gcall *call = as_a_const_gcall(e->call_stmt);
++
++ for (idx = 0; idx < (int)gimple_call_num_args(call); idx++) {
++ const_tree arg = gimple_call_arg(call, idx);
++
++ if (TREE_CODE(arg) != ADDR_EXPR)
++ continue;
++ if (TREE_OPERAND(arg, 0) != decl)
++ continue;
++
++ has_call = true;
++ if (!is_stmt_nocapture_arg(call, idx + 1))
++ return false;
++ }
++ }
++
++ gcc_assert(has_call);
++ return has_call;
++}
++
++/* Determine if all uses of a va_format typed variable are nocapture. */
++static bool is_va_format_use_nocapture(const_tree node)
++{
++ const_tree decl, type;
++
++ if (TREE_CODE(node) != COMPONENT_REF)
++ return false;
++
++ decl = TREE_OPERAND(node, 0);
++ type = TREE_TYPE(decl);
++ gcc_assert(TREE_CODE(type) == RECORD_TYPE);
++
++ if (!TYPE_NAME(type) || strcmp(TYPE_NAME_POINTER(type), "va_format"))
++ return false;
++
++ return only_nocapture_call(decl);
++}
++
++/* If there is a cast to integer (from const char) then it is a nocapture data flow */
++static bool is_cast_to_integer_type(gassign *assign)
++{
++ const_tree lhs_type, lhs;
++
++ if (!gimple_assign_cast_p(assign))
++ return false;
++
++ lhs = gimple_assign_rhs1(assign);
++ lhs_type = TREE_TYPE(lhs);
++ return TYPE_MODE(lhs_type) != QImode;
++}
++
++/* Search the uses of a return value. */
++static bool is_return_value_captured(gimple_set *visited_defs, const gcall *call)
++{
++ tree ret = gimple_call_lhs(call);
++
++ gcc_assert(ret != NULL_TREE);
++ return search_capture_ssa_use(visited_defs, ret);
++}
++
++/* Check if arg_num is a nocapture argument. */
++static bool is_call_arg_nocapture(gimple_set *visited_defs, const gcall *call, int arg_num)
++{
++ tree fndecl = gimple_call_fndecl(call);
++
++ if (fndecl == NULL_TREE)
++ fndecl = gimple_call_fn(call);
++ gcc_assert(fndecl != NULL_TREE);
++
++ if (is_negative_nocapture_arg(fndecl, -arg_num) && is_return_value_captured(visited_defs, call))
++ return false;
++
++ return is_stmt_nocapture_arg(call, arg_num);
++}
++
++/* Determine whether the function has at least one nocapture argument. */
++static bool has_nocapture_param(const_tree fndecl)
++{
++ const_tree attr;
++
++ if (fndecl == NULL_TREE)
++ return false;
++
++ if (is_syscall(fndecl))
++ return true;
++
++ attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
++ if (attr == NULL_TREE)
++ attr = lookup_attribute("format", TYPE_ATTRIBUTES(TREE_TYPE(fndecl)));
++ return attr != NULL_TREE;
++}
++
++static void walk_def_stmt(bool *has_capture_use, gimple_set *visited, tree node)
++{
++ gimple def_stmt;
++ const_tree parm_decl;
++
++ if (*has_capture_use)
++ return;
++
++ if (TREE_CODE(node) != SSA_NAME)
++ goto true_out;
++
++ parm_decl = SSA_NAME_VAR(node);
++ if (parm_decl != NULL_TREE && TREE_CODE(parm_decl) == PARM_DECL)
++ return;
++
++ def_stmt = initify_get_def_stmt(node);
++ if (pointer_set_insert(visited, def_stmt))
++ return;
++
++ switch (gimple_code(def_stmt)) {
++ case GIMPLE_CALL: {
++ tree fndecl = gimple_call_fndecl(def_stmt);
++
++ if (fndecl == NULL_TREE)
++ fndecl = gimple_call_fn(def_stmt);
++
++ gcc_assert(fndecl != NULL_TREE);
++ if (has_nocapture_param(fndecl))
++ goto true_out;
++ return;
++ }
++
++ case GIMPLE_ASM:
++ case GIMPLE_ASSIGN:
++ goto true_out;
++
++ case GIMPLE_NOP:
++ return;
++
++ case GIMPLE_PHI: {
++ unsigned int i;
++
++ for (i = 0; i < gimple_phi_num_args(def_stmt); i++) {
++ tree arg = gimple_phi_arg_def(def_stmt, i);
++
++ walk_def_stmt(has_capture_use, visited, arg);
++ }
++ return;
++ }
++
++ default:
++ debug_gimple_stmt(def_stmt);
++ error("%s: unknown gimple code", __func__);
++ gcc_unreachable();
++ }
++ gcc_unreachable();
++
++true_out:
++ *has_capture_use = true;
++}
++
++static bool search_return_capture_use(const greturn *ret_stmt)
++{
++ gimple_set *def_visited;
++ tree ret;
++ bool has_capture_use;
++
++ if (is_negative_nocapture_arg(current_function_decl, 0))
++ return false;
++
++ def_visited = pointer_set_create();
++ ret = gimple_return_retval(ret_stmt);
++ has_capture_use = false;
++ walk_def_stmt(&has_capture_use, def_visited, ret);
++ pointer_set_destroy(def_visited);
++
++ return has_capture_use;
++}
++
++static bool lhs_is_a_nocapture_parm_decl(const_tree lhs)
++{
++ int arg_idx, len;
++ tree arg_list;
++
++ if (TREE_CODE(lhs) != PARM_DECL)
++ return false;
++
++ arg_list = DECL_ARGUMENTS(current_function_decl);
++ len = list_length(arg_list);
++
++ for (arg_idx = 0; arg_idx < len; arg_idx++) {
++ const_tree arg = chain_index(arg_idx, arg_list);
++
++ if (arg == lhs)
++ return is_fndecl_nocapture_arg(current_function_decl, arg_idx + 1) != NONE_ATTRIBUTE;
++ }
++
++ debug_tree(current_function_decl);
++ debug_tree(lhs);
++ gcc_unreachable();
++}
++
++static void has_capture_use_ssa_var(bool *has_capture_use, gimple_set *visited_defs, tree_set *use_visited, tree node)
++{
++ imm_use_iterator imm_iter;
++ use_operand_p use_p;
++
++ if (pointer_set_insert(use_visited, node))
++ return;
++
++ if (*has_capture_use)
++ return;
++
++ if (is_va_format_use_nocapture(node))
++ return;
++
++ if (lhs_is_a_nocapture_parm_decl(node))
++ return;
++
++ if (TREE_CODE(node) != SSA_NAME)
++ goto true_out;
++
++ FOR_EACH_IMM_USE_FAST(use_p, imm_iter, node) {
++ gimple use_stmt = USE_STMT(use_p);
++
++ if (use_stmt == NULL)
++ return;
++ if (is_gimple_debug(use_stmt))
++ continue;
++
++ if (pointer_set_contains(visited_defs, use_stmt))
++ continue;
++
++ switch (gimple_code(use_stmt)) {
++ case GIMPLE_COND:
++ case GIMPLE_SWITCH:
++ return;
++
++ case GIMPLE_ASM:
++ goto true_out;
++
++ case GIMPLE_CALL: {
++ const gcall *call = as_a_const_gcall(use_stmt);
++ int arg_num = get_arg_num(call, node);
++
++ if (is_call_arg_nocapture(visited_defs, call, arg_num))
++ return;
++ goto true_out;
++ }
++
++ case GIMPLE_ASSIGN: {
++ tree lhs;
++ gassign *assign = as_a_gassign(use_stmt);
++ const_tree rhs = gimple_assign_rhs1(assign);
++
++ if (TREE_CODE(rhs) == MEM_REF)
++ return;
++
++ if (is_cast_to_integer_type(assign))
++ return;
++
++ lhs = gimple_assign_lhs(assign);
++ has_capture_use_ssa_var(has_capture_use, visited_defs, use_visited, lhs);
++ return;
++ }
++
++ case GIMPLE_PHI: {
++ tree result = gimple_phi_result(use_stmt);
++
++ has_capture_use_ssa_var(has_capture_use, visited_defs, use_visited, result);
++ return;
++ }
++
++ case GIMPLE_RETURN:
++ if (search_return_capture_use(as_a_const_greturn(use_stmt)))
++ goto true_out;
++ return;
++
++ default:
++ debug_tree(node);
++ debug_gimple_stmt(use_stmt);
++ gcc_unreachable();
++ }
++ }
++ return;
++
++true_out:
++ *has_capture_use = true;
++}
++
++static bool search_capture_ssa_use(gimple_set *visited_defs, tree node)
++{
++ tree_set *use_visited;
++ bool has_capture_use = false;
++
++ use_visited = tree_pointer_set_create();
++ has_capture_use_ssa_var(&has_capture_use, visited_defs, use_visited, node);
++ pointer_set_destroy(use_visited);
++
++ return has_capture_use;
++}
++
+static bool search_capture_use(const_tree vardecl, gimple stmt)
+{
+ unsigned int i;
++ gimple_set *visited_defs = pointer_set_create();
+
+ for (i = 0; i < gimple_num_ops(stmt); i++) {
-+ unsigned int arg_count;
-+ const_tree fndecl;
++ int arg_num;
+ tree op = *(gimple_op_ptr(stmt, i));
+
+ if (op == NULL_TREE)
@@ -167565,31 +168759,73 @@ index 0000000..fd7b918
+ if (!compare_ops(vardecl, op))
+ continue;
+
-+ if (!is_gimple_call(stmt))
-+ return true;
++ switch (gimple_code(stmt)) {
++ case GIMPLE_COND:
++ break;
+
-+ // return, fndecl
-+ gcc_assert(i >= 3);
-+ arg_count = i - 2;
-+ if (is_nocapture_param(as_a_const_gcall(stmt), (int)arg_count))
-+ continue;
++ case GIMPLE_ASM:
++ gcc_assert(get_init_exit_section(vardecl) == NONE);
++ goto true_out;
+
-+ fndecl = gimple_call_fndecl(stmt);
-+ gcc_assert(fndecl != NULL_TREE);
-+// inform(gimple_location(stmt), "nocapture attribute is missing (fn: %E, arg: %u)\n", fndecl, arg_count);
-+ return true;
++ case GIMPLE_CALL:
++ if (i == 0)
++ break;
++ /* return, fndecl */
++ gcc_assert(i >= 3);
++ arg_num = i - 2;
++
++ if (is_call_arg_nocapture(visited_defs, as_a_const_gcall(stmt), arg_num))
++ break;
++ goto true_out;
++
++ case GIMPLE_ASSIGN: {
++ tree lhs;
++ const_tree rhs = gimple_assign_rhs1(stmt);
++
++ if (TREE_CODE(rhs) == MEM_REF)
++ break;
++
++ lhs = gimple_assign_lhs(stmt);
++ if (lhs_is_a_nocapture_parm_decl(lhs))
++ break;
+
++ if (!search_capture_ssa_use(visited_defs, lhs))
++ break;
++ gcc_assert(get_init_exit_section(vardecl) == NONE);
++ goto true_out;
++ }
++
++ case GIMPLE_RETURN:
++ if (search_return_capture_use(as_a_const_greturn(stmt)))
++ goto true_out;
++ break;
++ default:
++ debug_tree(vardecl);
++ debug_gimple_stmt(stmt);
++ gcc_unreachable();
++ }
+ }
++
++ pointer_set_destroy(visited_defs);
+ return false;
++
++true_out:
++ pointer_set_destroy(visited_defs);
++ return true;
++
+}
+
++/* Check all initialized local variables for nocapture uses. */
+static bool is_in_capture_init(const_tree vardecl)
+{
+ unsigned int i __unused;
+ tree var;
+
++ if (TREE_CODE(vardecl) == PARM_DECL)
++ return false;
++
+ FOR_EACH_LOCAL_DECL(cfun, i, var) {
-+ const_tree initial = DECL_INITIAL(var);
++ const_tree type, initial = DECL_INITIAL(var);
+
+ if (DECL_EXTERNAL(var))
+ continue;
@@ -167598,7 +168834,8 @@ index 0000000..fd7b918
+ if (TREE_CODE(initial) != CONSTRUCTOR)
+ continue;
+
-+ gcc_assert(TREE_CODE(TREE_TYPE(var)) == RECORD_TYPE || DECL_P(var));
++ type = TREE_TYPE(var);
++ gcc_assert(TREE_CODE(type) == RECORD_TYPE || DECL_P(var));
+ if (check_constructor(initial, vardecl))
+ return true;
+ }
@@ -167608,6 +168845,9 @@ index 0000000..fd7b918
+static bool has_capture_use_local_var(const_tree vardecl)
+{
+ basic_block bb;
++ enum tree_code code = TREE_CODE(vardecl);
++
++ gcc_assert(code == VAR_DECL || code == PARM_DECL);
+
+ if (is_in_capture_init(vardecl))
+ return true;
@@ -167624,18 +168864,22 @@ index 0000000..fd7b918
+ return false;
+}
+
-+static void search_local_strs(bool initexit)
++/* Search local variables that have only nocapture uses. */
++static void find_local_str(void)
+{
+ unsigned int i __unused;
+ tree var;
+
+ FOR_EACH_LOCAL_DECL(cfun, i, var) {
-+ tree str, init_val = DECL_INITIAL(var);
++ tree str, init_val;
++
++ if (TREE_CODE(TREE_TYPE(var)) != ARRAY_TYPE)
++ continue;
+
++ init_val = DECL_INITIAL(var);
+ if (init_val == NULL_TREE || init_val == error_mark_node)
+ continue;
-+ // !!! str local vars
-+ if (strcmp(DECL_NAME_POINTER(var), "__func__"))
++ if (TREE_CODE(init_val) != STRING_CST)
+ continue;
+
+ if (has_capture_use_local_var(var))
@@ -167644,18 +168888,26 @@ index 0000000..fd7b918
+ str = get_string_cst(init_val);
+ gcc_assert(str);
+
-+ if (set_init_exit_section(var, initexit)) {
-+// inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
-+ }
++ if (set_init_exit_section(var) && verbose)
++ inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
+ }
+}
+
-+static tree create_tmp_assign(gcall *stmt, unsigned int num)
++static tree create_decl(tree node)
+{
-+ tree str, decl, arg = gimple_call_arg(stmt, num);
++ tree str, decl, type, name, type_type;
++ location_t loc;
+
-+ str = get_string_cst(arg);
-+ decl = build_decl(DECL_SOURCE_LOCATION(current_function_decl), VAR_DECL, create_tmp_var_name("cicus"), TREE_TYPE(str));
++ str = get_string_cst(node);
++ type = TREE_TYPE(str);
++ gcc_assert(TREE_CODE(type) == ARRAY_TYPE);
++
++ type_type = TREE_TYPE(type);
++ gcc_assert(type_type != NULL_TREE && TREE_CODE(type_type) == INTEGER_TYPE);
++
++ name = create_tmp_var_name("initify");
++ loc = DECL_SOURCE_LOCATION(current_function_decl);
++ decl = build_decl(loc, VAR_DECL, name, type);
+
+ DECL_INITIAL(decl) = str;
+ DECL_CONTEXT(decl) = current_function_decl;
@@ -167673,51 +168925,223 @@ index 0000000..fd7b918
+ varpool_mark_needed_node(varpool_node(decl));
+
+ DECL_CHAIN(decl) = BLOCK_VARS(DECL_INITIAL(current_function_decl));
-+ BLOCK_VARS(DECL_INITIAL (current_function_decl)) = decl;
++ BLOCK_VARS(DECL_INITIAL(current_function_decl)) = decl;
++
++ return build_fold_addr_expr_loc(loc, decl);
++}
++
++static void set_section_call_assign(gimple stmt, tree node, unsigned int num)
++{
++ tree decl;
++
++ decl = create_decl(node);
++
++ switch (gimple_code(stmt)) {
++ case GIMPLE_ASSIGN:
++ gcc_assert(gimple_num_ops(stmt) == 2);
++ gimple_assign_set_rhs1(stmt, decl);
++ break;
++
++ case GIMPLE_CALL:
++ gimple_call_set_arg(stmt, num, decl);
++ break;
++
++ default:
++ debug_gimple_stmt(stmt);
++ error("%s: unknown gimple code", __func__);
++ gcc_unreachable();
++ }
+
-+ decl = build_fold_addr_expr_loc(DECL_SOURCE_LOCATION(current_function_decl), decl);
-+ gimple_call_set_arg(stmt, num, decl);
+ update_stmt(stmt);
+
-+ return TREE_OPERAND(decl, 0);
++ if (set_init_exit_section(TREE_OPERAND(decl, 0)) && verbose)
++ inform(gimple_location(stmt), "initified function arg: %E: [%E]", current_function_decl, get_string_cst(node));
+}
+
-+static void search_str_param(gcall *stmt, bool initexit)
++static tree initify_create_new_var(tree type)
+{
-+ unsigned int num;
++ tree new_var = create_tmp_var(type, "initify");
++
++ add_referenced_var(new_var);
++ mark_sym_for_renaming(new_var);
++ return new_var;
++}
++
++static void initify_create_new_phi_arg(gimple_set *visited_defs, tree ssa_var, gphi *stmt, unsigned int i)
++{
++ gassign *assign;
++ gimple_stmt_iterator gsi;
++ basic_block arg_bb;
++ tree decl, arg;
++ const_tree str;
++ location_t loc;
+
-+ for (num = 0; num < gimple_call_num_args(stmt); num++) {
-+ tree var, str, arg = gimple_call_arg(stmt, num);
++ arg = gimple_phi_arg_def(stmt, i);
++
++ if (search_capture_ssa_use(visited_defs, arg))
++ return;
++
++ decl = create_decl(arg);
++
++ assign = gimple_build_assign(ssa_var, decl);
++
++ arg_bb = gimple_phi_arg_edge(stmt, i)->src;
++ gcc_assert(arg_bb->index != 0);
++
++ gsi = gsi_after_labels(arg_bb);
++ gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
++ update_stmt(assign);
++
++ if (!set_init_exit_section(TREE_OPERAND(decl, 0)) || !verbose)
++ return;
++
++ loc = gimple_location(stmt);
++ str = get_string_cst(arg);
++ inform(loc, "initified local var, phi arg: %E: [%E]", current_function_decl, str);
++}
++
++static void set_section_phi(bool *has_str_cst, gimple_set *visited, gphi *stmt)
++{
++ tree result, ssa_var;
++ unsigned int i;
++
++ result = gimple_phi_result(stmt);
++ ssa_var = initify_create_new_var(TREE_TYPE(result));
++
++ for (i = 0; i < gimple_phi_num_args(stmt); i++) {
++ tree arg = gimple_phi_arg_def(stmt, i);
++
++ if (get_string_cst(arg) == NULL_TREE)
++ search_constant_strings(has_str_cst, visited, arg);
++ else
++ initify_create_new_phi_arg(visited, ssa_var, stmt, i);
++ }
++}
++
++static void search_constant_strings(bool *has_str_cst, gimple_set *visited, tree node)
++{
++ gimple def_stmt;
++ const_tree parm_decl;
++
++ if (!*has_str_cst)
++ return;
++
++ if (TREE_CODE(node) != SSA_NAME)
++ goto false_out;
++
++ parm_decl = SSA_NAME_VAR(node);
++ if (parm_decl != NULL_TREE && TREE_CODE(parm_decl) == PARM_DECL)
++ goto false_out;
++
++ def_stmt = initify_get_def_stmt(node);
++ if (pointer_set_insert(visited, def_stmt))
++ return;
++
++ switch (gimple_code(def_stmt)) {
++ case GIMPLE_NOP:
++ case GIMPLE_CALL:
++ case GIMPLE_ASM:
++ case GIMPLE_RETURN:
++ goto false_out;
++
++ case GIMPLE_PHI:
++ set_section_phi(has_str_cst, visited, as_a_gphi(def_stmt));
++ return;
++
++ case GIMPLE_ASSIGN: {
++ tree rhs1, str;
++
++ if (gimple_num_ops(def_stmt) != 2)
++ goto false_out;
++
++ rhs1 = gimple_assign_rhs1(def_stmt);
++ search_constant_strings(has_str_cst, visited, rhs1);
++ if (!*has_str_cst)
++ return;
++
++ if (search_capture_ssa_use(visited, node))
++ goto false_out;
++
++ str = get_string_cst(rhs1);
++ gcc_assert(str != NULL_TREE);
++ set_section_call_assign(def_stmt, rhs1, 0);
++ return;
++ }
++
++ default:
++ debug_gimple_stmt(def_stmt);
++ error("%s: unknown gimple code", __func__);
++ gcc_unreachable();
++ }
++ gcc_unreachable();
++
++false_out:
++ *has_str_cst = false;
++}
++
++/* Search constant strings assigned to variables. */
++static void search_var_param(gcall *stmt)
++{
++ int num;
++ gimple_set *visited = pointer_set_create();
++
++ pointer_set_insert(visited, stmt);
++
++ for (num = 0; num < (int)gimple_call_num_args(stmt); num++) {
++ const_tree type, fndecl;
++ bool has_str_cst = true;
++ tree str, arg = gimple_call_arg(stmt, num);
+
+ str = get_string_cst(arg);
-+ if (str == NULL_TREE)
++ if (str != NULL_TREE)
+ continue;
+
-+ if (!is_nocapture_param(stmt, num + 1))
++ if (TREE_CODE(TREE_TYPE(arg)) != POINTER_TYPE)
++ continue;
++ type = TREE_TYPE(TREE_TYPE(arg));
++ if (!TYPE_STRING_FLAG(type))
+ continue;
+
-+ var = create_tmp_assign(stmt, num);
-+ if (set_init_exit_section(var, initexit)) {
-+// inform(gimple_location(stmt), "initified function arg: %E: [%E]", current_function_decl, str);
-+ }
++ fndecl = gimple_call_fndecl(stmt);
++ if (is_negative_nocapture_arg(fndecl, -(num + 1)) && is_return_value_captured(visited, stmt))
++ continue;
++
++ if (is_fndecl_nocapture_arg(fndecl, num + 1) != NONE_ATTRIBUTE)
++ search_constant_strings(&has_str_cst, visited, arg);
+ }
++
++ pointer_set_destroy(visited);
+}
+
-+static bool has_nocapture_param(const gcall *stmt)
++/* Search constant strings passed as arguments. */
++static void search_str_param(gcall *stmt)
+{
-+ const_tree attr, fndecl = gimple_call_fndecl(stmt);
++ int num;
++ gimple_set *visited = pointer_set_create();
+
-+ if (fndecl == NULL_TREE)
-+ return false;
++ pointer_set_insert(visited, stmt);
+
-+ if (is_syscall(fndecl))
-+ return true;
++ for (num = 0; num < (int)gimple_call_num_args(stmt); num++) {
++ const_tree fndecl;
++ tree str, arg = gimple_call_arg(stmt, num);
+
-+ attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
-+ return attr != NULL_TREE;
++ str = get_string_cst(arg);
++ if (str == NULL_TREE)
++ continue;
++
++ fndecl = gimple_call_fndecl(stmt);
++ if (is_negative_nocapture_arg(fndecl, -(num + 1)) && is_return_value_captured(visited, stmt))
++ continue;
++
++ if (is_fndecl_nocapture_arg(fndecl, num + 1) != NONE_ATTRIBUTE)
++ set_section_call_assign(stmt, arg, num);
++ }
++
++ pointer_set_destroy(visited);
+}
+
-+static void search_const_strs(bool initexit)
++/* Search constant strings in arguments of nocapture functions. */
++static void search_const_strs(void)
+{
+ basic_block bb;
+
@@ -167732,33 +169156,298 @@ index 0000000..fd7b918
+ continue;
+
+ call_stmt = as_a_gcall(stmt);
-+ if (has_nocapture_param(call_stmt))
-+ search_str_param(call_stmt, initexit);
++ if (!has_nocapture_param(gimple_call_fndecl(call_stmt)))
++ continue;
++ search_str_param(call_stmt);
++ search_var_param(call_stmt);
++ }
++ }
++}
++
++/*
++ * Verify the data flows of the uses of function arguments marked by the nocapture attribute.
++ * The printf attribute is ignored temporarily.
++ */
++static void verify_nocapture_functions(void)
++{
++ int i, len;
++ tree arg_list;
++
++ if (disable_verify_nocapture_functions)
++ return;
++
++ if (is_syscall(current_function_decl))
++ return;
++
++ if (!has_nocapture_param(current_function_decl))
++ return;
++
++ arg_list = DECL_ARGUMENTS(current_function_decl);
++ len = list_length(arg_list);
++ for (i = 0; i < len; i++) {
++ const_tree arg;
++
++ if (is_fndecl_nocapture_arg(current_function_decl, i + 1) != NOCAPTURE)
++ continue;
++
++ arg = chain_index(i, arg_list);
++ gcc_assert(arg != NULL_TREE);
++
++ if (has_capture_use_local_var(arg)) {
++ error("%qE captures its %u (%qD) parameter, please remove it from the nocapture attribute.", current_function_decl, i + 1, arg);
++ gcc_unreachable();
++ }
++ }
++}
++
++/* Find and move constant strings to the proper init or exit read-only data section. */
++static unsigned int initify_function_transform(struct cgraph_node *node __unused)
++{
++ verify_nocapture_functions();
++
++ if (get_init_exit_section(current_function_decl) == NONE)
++ return 0;
++
++ find_local_str();
++ search_const_strs();
++
++ return TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts
++ | TODO_remove_unused_locals | TODO_cleanup_cfg
++ | TODO_ggc_collect | TODO_verify_flow | TODO_update_ssa;
++}
++
++static void __unused debug_print_section_type(struct cgraph_node *node)
++{
++ enum section_type section;
++
++ section = (enum section_type)(unsigned long)NODE_SYMBOL(node)->aux;
++ switch (section) {
++ case INIT:
++ fprintf(stderr, "init\n");
++ break;
++
++ case EXIT:
++ fprintf(stderr, "exit\n");
++ break;
++
++ case BOTH:
++ fprintf(stderr, "init and exit\n");
++ break;
++
++ case NONE:
++ fprintf(stderr, "none\n");
++ break;
++ }
++}
++
++/*
++ * If the function is called by only __init/__exit functions then it can become
++ * an __init/__exit function as well.
++ */
++static bool should_init_exit(struct cgraph_node *callee)
++{
++ struct cgraph_edge *e;
++ bool only_init_callers;
++ const_tree callee_decl = NODE_DECL(callee);
++
++ if (NODE_SYMBOL(callee)->aux != (void *)NONE)
++ return false;
++ if (get_init_exit_section(callee_decl) != NONE)
++ return false;
++
++ /* If gcc isn't in LTO mode then we can handle only static functions. */
++ if (!in_lto_p && TREE_PUBLIC(callee_decl))
++ return false;
++
++ if (NODE_SYMBOL(callee)->address_taken)
++ return false;
++
++ e = callee->callers;
++ if (!e)
++ return false;
++
++ only_init_callers = true;
++ for (; e; e = e->next_caller) {
++ enum section_type caller_section;
++ struct cgraph_node *caller = e->caller;
++
++ caller_section = get_init_exit_section(NODE_DECL(caller));
++ if (caller_section == NONE && NODE_SYMBOL(caller)->aux == (void *)NONE)
++ only_init_callers = false;
++ }
++
++ return only_init_callers;
++}
++
++static bool inherit_section(struct cgraph_node *callee, struct cgraph_node *caller, enum section_type curfn_section)
++{
++ if (curfn_section == NONE)
++ curfn_section = (enum section_type)(unsigned long)NODE_SYMBOL(caller)->aux;
++
++ if (curfn_section == INIT && NODE_SYMBOL(callee)->aux == (void *)EXIT)
++ goto both_section;
++
++ if (curfn_section == EXIT && NODE_SYMBOL(callee)->aux == (void *)INIT)
++ goto both_section;
++
++ if (!should_init_exit(callee))
++ return false;
++
++ gcc_assert(NODE_SYMBOL(callee)->aux == (void *)NONE);
++ NODE_SYMBOL(callee)->aux = (void *)curfn_section;
++ return true;
++
++both_section:
++ NODE_SYMBOL(callee)->aux = (void *)BOTH;
++ return true;
++}
++
++/*
++ * Try to propagate __init/__exit to callees in __init/__exit functions.
++ * If a function is called by __init and __exit functions as well then it can be
++ * an __exit function at most.
++ */
++static bool search_init_exit_callers(void)
++{
++ struct cgraph_node *node;
++ bool change = false;
++
++ FOR_EACH_FUNCTION(node) {
++ struct cgraph_edge *e;
++ enum section_type section;
++ const_tree cur_fndecl = NODE_DECL(node);
++
++ if (DECL_BUILT_IN(cur_fndecl))
++ continue;
++
++ section = get_init_exit_section(cur_fndecl);
++ if (section == NONE && NODE_SYMBOL(node)->aux == (void *)NONE)
++ continue;
++
++ for (e = node->callees; e; e = e->next_callee) {
++ if (e->callee->global.inlined_to)
++ continue;
++
++ if (inherit_section(e->callee, node, section))
++ change = true;
+ }
+ }
++
++ return change;
++}
++
++/* We can't move functions to the init/exit sections from certain sections. */
++static bool can_move_to_init_exit(const_tree fndecl)
++{
++ const char *section_name = get_decl_section_name(fndecl);
++
++ if (!section_name)
++ return true;
++
++ if (!strcmp(section_name, ".ref.text\000"))
++ return true;
++
++ if (!strcmp(section_name, ".meminit.text\000"))
++ return false;
++
++ inform(DECL_SOURCE_LOCATION(fndecl), "Section of %qE: %s\n", fndecl, section_name);
++ gcc_unreachable();
+}
+
++static void move_function_to_init_exit_text(struct cgraph_node *node)
++{
++ const char *section_name;
++ tree id, attr;
++ tree section_str, attr_args, fndecl = NODE_DECL(node);
++
++ /*
++ * If the function is a candidate for both __init and __exit and enable_init_to_exit_moves is false
++ * then these functions arent't moved to the exit section.
++ */
++ if (NODE_SYMBOL(node)->aux == (void *)BOTH) {
++ if (enable_init_to_exit_moves)
++ NODE_SYMBOL(node)->aux = (void *)EXIT;
++ else
++ return;
++ }
++
++ if (NODE_SYMBOL(node)->aux == (void *)NONE)
++ return;
++
++ if (!can_move_to_init_exit(fndecl))
++ return;
++
++ if (verbose) {
++ const char *attr_name;
++ location_t loc = DECL_SOURCE_LOCATION(fndecl);
++
++ attr_name = NODE_SYMBOL(node)->aux == (void *)INIT ? "__init" : "__exit";
++
++ if (in_lto_p && TREE_PUBLIC(fndecl))
++ inform(loc, "%s attribute is missing from the %qE function (public)", attr_name, fndecl);
++
++ if (!in_lto_p && !TREE_PUBLIC(fndecl))
++ inform(loc, "%s attribute is missing from the %qE function (static)", attr_name, fndecl);
++ }
++
++ if (in_lto_p)
++ return;
++
++ /* Add the init/exit section attribute to the function declaration. */
++ DECL_ATTRIBUTES(fndecl) = copy_list(DECL_ATTRIBUTES(fndecl));
++
++ section_name = NODE_SYMBOL(node)->aux == (void *)INIT ? ".init.text" : ".exit.text";
++ section_str = build_string(strlen(section_name) + 1, section_name);
++ TREE_READONLY(section_str) = 1;
++ TREE_STATIC(section_str) = 1;
++ attr_args = build_tree_list(NULL_TREE, section_str);
++
++ id = get_identifier("__section__");
++ attr = DECL_ATTRIBUTES(fndecl);
++ DECL_ATTRIBUTES(fndecl) = tree_cons(id, attr_args, attr);
++
++#if BUILDING_GCC_VERSION < 5000
++ DECL_SECTION_NAME(fndecl) = section_str;
++#endif
++ set_decl_section_name(fndecl, section_name);
++}
++
++/* Find all functions that can become __init/__exit functions */
+static unsigned int initify_execute(void)
+{
-+ bool initexit;
-+ const char *section = get_init_exit_section(current_function_decl);
++ struct cgraph_node *node;
+
-+ if (!section)
++ if (!search_init_exit_functions)
+ return 0;
+
-+ initexit = !strncmp(section, ".init.", 6);
-+ search_local_strs(initexit);
-+ search_const_strs(initexit);
++ if (flag_lto && !in_lto_p)
++ return 0;
++
++ FOR_EACH_FUNCTION(node)
++ NODE_SYMBOL(node)->aux = (void *)NONE;
++
++ while (search_init_exit_callers()) {};
++
++ FOR_EACH_FUNCTION(node) {
++ move_function_to_init_exit_text(node);
++
++ NODE_SYMBOL(node)->aux = NULL;
++ }
+
+ return 0;
+}
+
+#define PASS_NAME initify
-+
++#define NO_WRITE_SUMMARY
++#define NO_GENERATE_SUMMARY
++#define NO_READ_SUMMARY
++#define NO_READ_OPTIMIZATION_SUMMARY
++#define NO_WRITE_OPTIMIZATION_SUMMARY
++#define NO_STMT_FIXUP
++#define NO_VARIABLE_TRANSFORM
+#define NO_GATE
-+#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
+
-+#include "gcc-generate-gimple-pass.h"
++#include "gcc-generate-ipa-pass.h"
+
+static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
+
@@ -167783,23 +169472,59 @@ index 0000000..fd7b918
+
+__visible int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
+{
++ struct register_pass_info initify_info;
++ int i;
++ const int argc = plugin_info->argc;
++ bool enabled = true;
++ const struct plugin_argument * const argv = plugin_info->argv;
+ const char * const plugin_name = plugin_info->base_name;
-+ struct register_pass_info initify_pass_info;
+
-+ initify_pass_info.pass = make_initify_pass();
-+ initify_pass_info.reference_pass_name = "nrv";
-+ initify_pass_info.ref_pass_instance_number = 1;
-+ initify_pass_info.pos_op = PASS_POS_INSERT_AFTER;
++ initify_info.pass = make_initify_pass();
++ initify_info.reference_pass_name = "inline";
++ initify_info.ref_pass_instance_number = 1;
++ initify_info.pos_op = PASS_POS_INSERT_AFTER;
+
+ if (!plugin_default_version_check(version, &gcc_version)) {
+ error(G_("incompatible gcc/plugin versions"));
+ return 1;
+ }
+
++ for (i = 0; i < argc; ++i) {
++ if (!(strcmp(argv[i].key, "disable"))) {
++ enabled = false;
++ continue;
++ }
++ if (!strcmp(argv[i].key, "verbose")) {
++ verbose = true;
++ continue;
++ }
++ if (!strcmp(argv[i].key, "print_missing_attr")) {
++ print_missing_attr = true;
++ continue;
++ }
++ if (!strcmp(argv[i].key, "search_init_exit_functions")) {
++ search_init_exit_functions = true;
++ continue;
++ }
++ if (!strcmp(argv[i].key, "enable_init_to_exit_moves")) {
++ enable_init_to_exit_moves = true;
++ continue;
++ }
++
++ if (!strcmp(argv[i].key, "disable_verify_nocapture_functions")) {
++ disable_verify_nocapture_functions = true;
++ continue;
++ }
++
++ error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
++ }
++
+ register_callback(plugin_name, PLUGIN_INFO, NULL, &initify_plugin_info);
-+ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &initify_pass_info);
++ if (enabled) {
++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &initify_info);
++ register_callback(plugin_name, PLUGIN_START_UNIT, initify_start_unit, NULL);
++ }
+ register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
-+ register_callback(plugin_name, PLUGIN_START_UNIT, initify_start_unit, NULL);
+
+ return 0;
+}
@@ -171213,55 +172938,63 @@ index 0000000..65bc1cd
+}
diff --git a/scripts/gcc-plugins/size_overflow_plugin/.gitignore b/scripts/gcc-plugins/size_overflow_plugin/.gitignore
new file mode 100644
-index 0000000..c4b24b9
+index 0000000..36211fb
--- /dev/null
+++ b/scripts/gcc-plugins/size_overflow_plugin/.gitignore
-@@ -0,0 +1,3 @@
-+disable_size_overflow_hash.h
-+size_overflow_hash.h
-+size_overflow_hash_aux.h
+@@ -0,0 +1,2 @@
++disable.h
++e_*.h
diff --git a/scripts/gcc-plugins/size_overflow_plugin/Makefile b/scripts/gcc-plugins/size_overflow_plugin/Makefile
new file mode 100644
-index 0000000..a6418b4
+index 0000000..4363d14
--- /dev/null
+++ b/scripts/gcc-plugins/size_overflow_plugin/Makefile
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,39 @@
+HOST_EXTRACXXFLAGS += $(call hostcc-option, -fno-ipa-icf)
+
+$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
+always := $($(HOSTLIBS)-y)
+
-+size_overflow_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c))
++targets += $(objtree)/$(obj)/e_fns.h \
++ $(objtree)/$(obj)/e_fields.h \
++ $(objtree)/$(obj)/e_fptrs.h \
++ $(objtree)/$(obj)/e_vars.h \
++ $(objtree)/$(obj)/e_aux.h \
++ $(objtree)/$(obj)/disable.h
++
++$(srctree)/$(src)/size_overflow_plugin_hash.c: $(objtree)/$(obj)/e_fns.h \
++ $(objtree)/$(obj)/e_fields.h \
++ $(objtree)/$(obj)/e_fptrs.h \
++ $(objtree)/$(obj)/e_vars.h \
++ $(objtree)/$(obj)/e_aux.h \
++ $(objtree)/$(obj)/disable.h
+
-+$(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
++size_overflow_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c))
+
+quiet_cmd_build_size_overflow_hash = GENHASH $@
+ cmd_build_size_overflow_hash = \
-+ $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash -d $< -o $@
-+$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
-+ $(call if_changed,build_size_overflow_hash)
-+
-+quiet_cmd_build_size_overflow_hash_aux = GENHASH $@
-+ cmd_build_size_overflow_hash_aux = \
-+ $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash_aux -d $< -o $@
-+$(objtree)/$(obj)/size_overflow_hash_aux.h: $(src)/size_overflow_hash_aux.data FORCE
-+ $(call if_changed,build_size_overflow_hash_aux)
-+
-+quiet_cmd_build_disable_size_overflow_hash = GENHASH $@
-+ cmd_build_disable_size_overflow_hash = \
-+ $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s disable_size_overflow_hash -d $< -o $@
-+$(objtree)/$(obj)/disable_size_overflow_hash.h: $(src)/disable_size_overflow_hash.data FORCE
-+ $(call if_changed,build_disable_size_overflow_hash)
++ $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s $(patsubst e_%,%,$(patsubst $(obj)/%.h,%,$@))_hash -d $< -o $@
+
-+targets += size_overflow_hash.h size_overflow_hash_aux.h disable_size_overflow_hash.h
++$(objtree)/$(obj)/e_fns.h: $(srctree)/$(src)/e_fns.data
++ $(call if_changed,build_size_overflow_hash)
++$(objtree)/$(obj)/e_fields.h: $(srctree)/$(src)/e_fields.data
++ $(call if_changed,build_size_overflow_hash)
++$(objtree)/$(obj)/e_fptrs.h: $(srctree)/$(src)/e_fptrs.data
++ $(call if_changed,build_size_overflow_hash)
++$(objtree)/$(obj)/e_vars.h: $(srctree)/$(src)/e_vars.data
++ $(call if_changed,build_size_overflow_hash)
++$(objtree)/$(obj)/e_aux.h: $(srctree)/$(src)/e_aux.data
++ $(call if_changed,build_size_overflow_hash)
++$(objtree)/$(obj)/disable.h: $(srctree)/$(src)/disable.data
++ $(call if_changed,build_size_overflow_hash)
+
+clean-files += *.so
-diff --git a/scripts/gcc-plugins/size_overflow_plugin/disable_size_overflow_hash.data b/scripts/gcc-plugins/size_overflow_plugin/disable_size_overflow_hash.data
+diff --git a/scripts/gcc-plugins/size_overflow_plugin/disable.data b/scripts/gcc-plugins/size_overflow_plugin/disable.data
new file mode 100644
-index 0000000..e0a04a1
+index 0000000..88f524c
--- /dev/null
-+++ b/scripts/gcc-plugins/size_overflow_plugin/disable_size_overflow_hash.data
-@@ -0,0 +1,12445 @@
++++ b/scripts/gcc-plugins/size_overflow_plugin/disable.data
+@@ -0,0 +1,12453 @@
+disable_so_interrupt_pnode_gru_message_queue_desc_4 interrupt_pnode gru_message_queue_desc 0 4 NULL
+disable_so_bch_btree_insert_fndecl_12 bch_btree_insert fndecl 0 12 NULL
+disable_so_macvlan_sync_address_fndecl_22 macvlan_sync_address fndecl 0 22 NULL nohasharray
@@ -175049,7 +176782,8 @@ index 0000000..e0a04a1
+disable_so_uid_crash_uid_20189 uid crash_uid 0 20189 NULL
+disable_so_force_addr_vardecl_i2c_sis5595_c_20194 force_addr vardecl_i2c-sis5595.c 0 20194 NULL
+disable_so_get_random_bytes_fndecl_20208 get_random_bytes fndecl 2 20208 NULL
-+disable_so_end_pci_bus_region_20220 end pci_bus_region 0 20220 NULL
++e_epoch_start_bictcp_20220 epoch_start bictcp 0 20220 NULL nohasharray
++disable_so_end_pci_bus_region_20220 end pci_bus_region 0 20220 &e_epoch_start_bictcp_20220
+disable_so_ptp_devt_vardecl_ptp_clock_c_20222 ptp_devt vardecl_ptp_clock.c 0 20222 NULL
+disable_so_rp5c01_read_time_fndecl_20225 rp5c01_read_time fndecl 0 20225 NULL
+disable_so_scsi_inq_timeout_vardecl_scsi_scan_c_20228 scsi_inq_timeout vardecl_scsi_scan.c 0 20228 NULL
@@ -179962,7 +181696,8 @@ index 0000000..e0a04a1
+disable_so_freq_in_rule_band_fndecl_46182 freq_in_rule_band fndecl 2 46182 NULL
+disable_so_get_signal_to_noise_fndecl_46189 get_signal_to_noise fndecl 0 46189 NULL
+disable_so_bitmap_parse_user_fndecl_46193 bitmap_parse_user fndecl 0-2-4 46193 NULL
-+disable_so_queue_delayed_work_fndecl_46205 queue_delayed_work fndecl 3 46205 NULL
++disable_so_queue_delayed_work_fndecl_46205 queue_delayed_work fndecl 3 46205 NULL nohasharray
++e_rtt_us_ack_sample_46205 rtt_us ack_sample 0 46205 &disable_so_queue_delayed_work_fndecl_46205
+disable_so_phy_addr_adf_admin_comms_46206 phy_addr adf_admin_comms 0 46206 NULL nohasharray
+disable_so_hblank_lo_detailed_pixel_timing_46206 hblank_lo detailed_pixel_timing 0 46206 &disable_so_phy_addr_adf_admin_comms_46206
+disable_so_delay_time_NvRamType_46210 delay_time NvRamType 0 46210 NULL
@@ -183707,6 +185442,24042 @@ index 0000000..e0a04a1
+enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
+enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
+enable_so_offset_lv_35617 offset lv 0 35617 NULL
++e_cnt_bictcp_9780 cnt bictcp 0 9780 NULL
++e_last_max_cwnd_bictcp_22377 last_max_cwnd bictcp 0 22377 NULL
++e_bic_K_bictcp_33591 bic_K bictcp 0 33591 NULL
++e_tcp_cwnd_bictcp_64346 tcp_cwnd bictcp 0 64346 NULL
++e_bic_origin_point_bictcp_64414 bic_origin_point bictcp 0 64414 NULL
++e_srtt_us_tcp_sock_62907 srtt_us tcp_sock 0 62907 NULL
+diff --git a/scripts/gcc-plugins/size_overflow_plugin/e_aux.data b/scripts/gcc-plugins/size_overflow_plugin/e_aux.data
+new file mode 100644
+index 0000000..74e91b2
+--- /dev/null
++++ b/scripts/gcc-plugins/size_overflow_plugin/e_aux.data
+@@ -0,0 +1,97 @@
++enable_so_spa_set_aux_vdevs_fndecl_746 spa_set_aux_vdevs fndecl 3 746 NULL
++enable_so_zfs_lookup_fndecl_2144 zfs_lookup fndecl 0 2144 NULL
++enable_so_mappedread_fndecl_2627 mappedread fndecl 2 2627 NULL
++enable_so_SMACL_Alloc_fndecl_2775 SMACL_Alloc fndecl 1 2775 NULL
++enable_so_vdev_disk_dio_alloc_fndecl_2957 vdev_disk_dio_alloc fndecl 1 2957 NULL
++enable_so_nv_alloc_pushpage_spl_fndecl_4286 nv_alloc_pushpage_spl fndecl 2 4286 NULL
++enable_so_zpl_xattr_get_fndecl_4574 zpl_xattr_get fndecl 0 4574 NULL
++enable_so_sa_replace_all_by_template_fndecl_5699 sa_replace_all_by_template fndecl 3 5699 NULL
++enable_so_dmu_write_fndecl_6048 dmu_write fndecl 4-3 6048 NULL
++enable_so_dmu_buf_hold_array_fndecl_6095 dmu_buf_hold_array fndecl 4-3 6095 NULL
++enable_so_update_pages_fndecl_6225 update_pages fndecl 2-3 6225 NULL
++enable_so_bio_nr_pages_fndecl_7117 bio_nr_pages fndecl 0-2 7117 NULL
++enable_so_dmu_buf_hold_array_by_bonus_fndecl_8562 dmu_buf_hold_array_by_bonus fndecl 3-2 8562 NULL
++enable_so_zpios_dmu_write_fndecl_8858 zpios_dmu_write fndecl 4-5 8858 NULL
++enable_so_ddi_copyout_fndecl_9401 ddi_copyout fndecl 3 9401 NULL
++enable_so_avl_numnodes_fndecl_12384 avl_numnodes fndecl 0 12384 NULL
++enable_so_dmu_write_uio_dnode_fndecl_12473 dmu_write_uio_dnode fndecl 3 12473 NULL
++enable_so_dmu_xuio_init_fndecl_12866 dmu_xuio_init fndecl 2 12866 NULL
++enable_so_zpl_read_common_fndecl_14389 zpl_read_common fndecl 0 14389 NULL
++enable_so_dmu_snapshot_realname_fndecl_14632 dmu_snapshot_realname fndecl 4 14632 NULL
++enable_so_kmem_alloc_debug_fndecl_14852 kmem_alloc_debug fndecl 1 14852 NULL
++enable_so_kmalloc_node_nofail_fndecl_15151 kmalloc_node_nofail fndecl 1 15151 NULL
++enable_so_size_VNet_EventHeader_15382 size VNet_EventHeader 0 15382 NULL
++enable_so_dmu_write_uio_fndecl_16351 dmu_write_uio fndecl 4 16351 NULL
++enable_so_zfs_log_write_fndecl_16524 zfs_log_write fndecl 6-5 16524 NULL
++enable_so_sa_build_layouts_fndecl_16910 sa_build_layouts fndecl 3 16910 NULL
++enable_so_dsl_dir_namelen_fndecl_17053 dsl_dir_namelen fndecl 0 17053 NULL
++enable_so_kcopy_copy_to_user_fndecl_17336 kcopy_copy_to_user fndecl 5 17336 NULL
++enable_so_sa_add_layout_entry_fndecl_17507 sa_add_layout_entry fndecl 3 17507 NULL
++enable_so_sa_attr_table_setup_fndecl_18029 sa_attr_table_setup fndecl 3 18029 NULL
++enable_so_uiocopy_fndecl_18680 uiocopy fndecl 2 18680 NULL
++enable_so_dmu_buf_hold_array_by_dnode_fndecl_19125 dmu_buf_hold_array_by_dnode fndecl 2-3 19125 NULL
++enable_so_zpl_acl_from_xattr_fndecl_21141 zpl_acl_from_xattr fndecl 2 21141 NULL
++enable_so_dsl_pool_tx_assign_init_fndecl_22518 dsl_pool_tx_assign_init fndecl 2 22518 NULL
++enable_so_nvlist_lookup_byte_array_fndecl_22527 nvlist_lookup_byte_array fndecl 0 22527 NULL
++enable_so_sa_replace_all_by_template_locked_fndecl_22533 sa_replace_all_by_template_locked fndecl 3 22533 NULL
++enable_so_tsd_hash_table_init_fndecl_22559 tsd_hash_table_init fndecl 1 22559 NULL
++enable_so_spa_vdev_remove_aux_fndecl_23966 spa_vdev_remove_aux fndecl 4 23966 NULL
++enable_so_zpl_xattr_acl_set_access_fndecl_24129 zpl_xattr_acl_set_access fndecl 4 24129 NULL
++enable_so_dmu_assign_arcbuf_fndecl_24622 dmu_assign_arcbuf fndecl 2 24622 NULL
++enable_so_zap_lookup_norm_fndecl_25166 zap_lookup_norm fndecl 9 25166 NULL
++enable_so_dmu_prealloc_fndecl_25456 dmu_prealloc fndecl 4-3 25456 NULL
++enable_so_kmalloc_nofail_fndecl_26347 kmalloc_nofail fndecl 1 26347 NULL
++enable_so_zfsctl_snapshot_zpath_fndecl_27578 zfsctl_snapshot_zpath fndecl 2 27578 NULL
++enable_so_zpios_dmu_read_fndecl_30015 zpios_dmu_read fndecl 4-5 30015 NULL
++enable_so_splat_write_fndecl_30943 splat_write fndecl 3 30943 NULL
++enable_so_zpl_xattr_get_sa_fndecl_31183 zpl_xattr_get_sa fndecl 0 31183 NULL
++enable_so_dmu_read_uio_fndecl_31467 dmu_read_uio fndecl 4 31467 NULL
++enable_so_zfs_replay_fuids_fndecl_31479 zfs_replay_fuids fndecl 4 31479 NULL
++enable_so_spa_history_log_to_phys_fndecl_31632 spa_history_log_to_phys fndecl 0-1 31632 NULL
++enable_so___zpl_xattr_get_fndecl_32601 __zpl_xattr_get fndecl 0 32601 NULL
++enable_so_VNetUserListenerRead_fndecl_34039 VNetUserListenerRead fndecl 4 34039 NULL
++enable_so_proc_copyout_string_fndecl_34049 proc_copyout_string fndecl 2 34049 NULL
++enable_so_nv_alloc_sleep_spl_fndecl_34544 nv_alloc_sleep_spl fndecl 2 34544 NULL
++enable_so_nv_alloc_nosleep_spl_fndecl_34761 nv_alloc_nosleep_spl fndecl 2 34761 NULL
++enable_so_zap_leaf_array_match_fndecl_36922 zap_leaf_array_match fndecl 4 36922 NULL
++enable_so_copyinstr_fndecl_36980 copyinstr fndecl 3 36980 NULL
++enable_so_zpl_xattr_acl_set_default_fndecl_37864 zpl_xattr_acl_set_default fndecl 4 37864 NULL
++enable_so_splat_read_fndecl_38116 splat_read fndecl 3 38116 NULL
++enable_so_sa_setup_fndecl_38756 sa_setup fndecl 4 38756 NULL
++enable_so_vdev_disk_physio_fndecl_39898 vdev_disk_physio fndecl 3 39898 NULL
++enable_so_arc_buf_size_fndecl_39982 arc_buf_size fndecl 0 39982 NULL
++enable_so_kzalloc_nofail_fndecl_40719 kzalloc_nofail fndecl 1 40719 NULL
++enable_so_fuidstr_to_sid_fndecl_40777 fuidstr_to_sid fndecl 4 40777 NULL
++enable_so_vdev_raidz_matrix_reconstruct_fndecl_40852 vdev_raidz_matrix_reconstruct fndecl 2-3 40852 NULL
++enable_so_sa_find_layout_fndecl_40892 sa_find_layout fndecl 4 40892 NULL
++enable_so_zpl_xattr_get_dir_fndecl_41918 zpl_xattr_get_dir fndecl 0 41918 NULL
++enable_so_zfs_sa_get_xattr_fndecl_42600 zfs_sa_get_xattr fndecl 0 42600 NULL
++enable_so_zpl_xattr_acl_set_fndecl_42808 zpl_xattr_acl_set fndecl 4 42808 NULL
++enable_so_xdr_dec_array_fndecl_43091 xdr_dec_array fndecl 5 43091 NULL
++enable_so_dsl_dataset_namelen_fndecl_43136 dsl_dataset_namelen fndecl 0 43136 NULL
++enable_so_kcopy_write_fndecl_43683 kcopy_write fndecl 3 43683 NULL
++enable_so_uiomove_fndecl_44355 uiomove fndecl 2 44355 NULL
++enable_so_dmu_read_fndecl_44418 dmu_read fndecl 4-3 44418 NULL
++enable_so_ddi_copyin_fndecl_44846 ddi_copyin fndecl 3 44846 NULL
++enable_so_kcopy_do_get_fndecl_45061 kcopy_do_get fndecl 5 45061 NULL
++enable_so_copyin_fndecl_45945 copyin fndecl 3 45945 NULL
++enable_so_zil_itx_create_fndecl_46555 zil_itx_create fndecl 2 46555 NULL
++enable_so_dmu_write_uio_dbuf_fndecl_48064 dmu_write_uio_dbuf fndecl 3 48064 NULL
++enable_so_blk_rq_pos_fndecl_48233 blk_rq_pos fndecl 0 48233 NULL
++enable_so_spa_history_write_fndecl_49650 spa_history_write fndecl 3 49650 NULL
++enable_so_kcopy_copy_pages_to_user_fndecl_49823 kcopy_copy_pages_to_user fndecl 3-4 49823 NULL
++enable_so_zfs_log_write_fndecl_50162 zfs_log_write fndecl 6-5 50162 NULL
++enable_so_i_fm_alloc_fndecl_51038 i_fm_alloc fndecl 2 51038 NULL
++enable_so_copyout_fndecl_51409 copyout fndecl 3 51409 NULL
++enable_so_VNetKernel_MemoryAllocate_fndecl_53131 VNetKernel_MemoryAllocate fndecl 1 53131 NULL
++enable_so_VNetUserIfWrite_fndecl_54044 VNetUserIfWrite fndecl 4 54044 NULL
++enable_so_zvol_log_write_fndecl_54898 zvol_log_write fndecl 4-3 54898 NULL
++enable_so_zfs_acl_node_alloc_fndecl_55641 zfs_acl_node_alloc fndecl 1 55641 NULL
++enable_so_get_nvlist_fndecl_56685 get_nvlist fndecl 2 56685 NULL
++enable_so_zprop_get_numprops_fndecl_56820 zprop_get_numprops fndecl 0 56820 NULL
++enable_so_splat_taskq_test4_common_fndecl_59829 splat_taskq_test4_common fndecl 5 59829 NULL
++enable_so_zfs_replay_domain_cnt_fndecl_61399 zfs_replay_domain_cnt fndecl 0 61399 NULL
++enable_so_zpios_write_fndecl_61823 zpios_write fndecl 3 61823 NULL
++enable_so_proc_copyin_string_fndecl_62019 proc_copyin_string fndecl 4 62019 NULL
++enable_so_random_get_pseudo_bytes_fndecl_64611 random_get_pseudo_bytes fndecl 2 64611 NULL
++enable_so_zpios_read_fndecl_64734 zpios_read fndecl 3 64734 NULL
+diff --git a/scripts/gcc-plugins/size_overflow_plugin/e_fields.data b/scripts/gcc-plugins/size_overflow_plugin/e_fields.data
+new file mode 100644
+index 0000000..2813470
+--- /dev/null
++++ b/scripts/gcc-plugins/size_overflow_plugin/e_fields.data
+@@ -0,0 +1,18898 @@
++e_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
++e_size_ttm_mem_reg_8 size ttm_mem_reg 0 8 NULL
++e_char2uni_nls_table_12 char2uni nls_table 0 12 NULL
++e_nrbufs_pipe_inode_info_13 nrbufs pipe_inode_info 0 13 NULL
++e_NumPhys__EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE_17 NumPhys _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE 0 17 NULL
++e_pci_mem_start_qed_dev_info_18 pci_mem_start qed_dev_info 0 18 NULL
++e_max_name_len_fndecl_19 max_name_len fndecl 0 19 NULL
++e_ext4_seek_data_fndecl_21 ext4_seek_data fndecl 2 21 NULL
++e_dma_buf_sz_sxgbe_priv_data_24 dma_buf_sz sxgbe_priv_data 0 24 NULL nohasharray
++e_max_cache_pages_snd_emu10k1_24 max_cache_pages snd_emu10k1 0 24 &e_dma_buf_sz_sxgbe_priv_data_24
++e_T9_reportid_max_mxt_data_25 T9_reportid_max mxt_data 0 25 NULL
++e_max_frags_vxge_hw_fifo_config_26 max_frags vxge_hw_fifo_config 0 26 NULL
++e_bufsize_renesas_usbhs_driver_pipe_config_28 bufsize renesas_usbhs_driver_pipe_config 0 28 NULL
++e_add_le_key_k_offset_fndecl_32 add_le_key_k_offset fndecl 3 32 NULL
++e_ocfs2_xattr_get_clusters_fndecl_34 ocfs2_xattr_get_clusters fndecl 0 34 NULL
++e_total_drm_buf_35 total drm_buf 0 35 NULL
++e_sis5595_device_add_fndecl_39 sis5595_device_add fndecl 1 39 NULL
++e_mc_vram_size_amdgpu_mc_45 mc_vram_size amdgpu_mc 0 45 NULL
++e_pattern_len_tcf_em_text_57 pattern_len tcf_em_text 0 57 NULL
++e_rx_desc_count_i40evf_adapter_62 rx_desc_count i40evf_adapter 0 62 NULL
++e_len_nf_ct_ext_63 len nf_ct_ext 0 63 NULL
++e_sl811_hc_init_fndecl_66 sl811_hc_init fndecl 2-3 66 NULL
++e_cipso_v4_delopt_fndecl_67 cipso_v4_delopt fndecl 0 67 NULL
++e_npages_mlx5_pages_req_70 npages mlx5_pages_req 0 70 NULL
++e_mtt_seg_size_mthca_limits_72 mtt_seg_size mthca_limits 0 72 NULL
++e_iov_iter_get_pages_alloc_fndecl_76 iov_iter_get_pages_alloc fndecl 0-3 76 NULL
++e_iwch_reject_cr_fndecl_78 iwch_reject_cr fndecl 3 78 NULL
++e_data_size_data_queue_85 data_size data_queue 0 85 NULL
++e_mapping_map_writable_fndecl_89 mapping_map_writable fndecl 0 89 NULL
++e_ceph_dir_llseek_fndecl_99 ceph_dir_llseek fndecl 2 99 NULL
++e_erase_size_flash_info_100 erase_size flash_info 0 100 NULL
++e_ncp_do_request_fndecl_102 ncp_do_request fndecl 2-4-0 102 NULL
++e_fi_blkno_ocfs2_find_inode_args_104 fi_blkno ocfs2_find_inode_args 0 104 NULL
++e_phase_snd_usb_endpoint_106 phase snd_usb_endpoint 0 106 NULL
++e_kvm_read_guest_fndecl_107 kvm_read_guest fndecl 2 107 NULL
++e_add_new_gdb_meta_bg_fndecl_116 add_new_gdb_meta_bg fndecl 3 116 NULL
++e_buffer_min_vardecl_floppy_c_117 buffer_min vardecl_floppy.c 0 117 NULL
++e_needed_tailroom_net_device_118 needed_tailroom net_device 0 118 NULL
++e_send_remove_xattr_fndecl_122 send_remove_xattr fndecl 4 122 NULL
++e_in_ep_rtl_usb_128 in_ep rtl_usb 0 128 NULL nohasharray
++e_number_i40e_aqc_list_capabilities_element_resp_128 number i40e_aqc_list_capabilities_element_resp 0 128 &e_in_ep_rtl_usb_128
++e_xfs_dir_removename_fndecl_133 xfs_dir_removename fndecl 7 133 NULL
++e_data_offset_netup_dma_139 data_offset netup_dma 0 139 NULL nohasharray
++e_len_io_failure_record_139 len io_failure_record 0 139 &e_data_offset_netup_dma_139
++e_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142 n_mac_vlan_filters vfpf_set_q_filters_tlv 0 142 NULL
++e_leaf_move_items_fndecl_145 leaf_move_items fndecl 4 145 NULL
++e_ir_context_support_fw_ohci_147 ir_context_support fw_ohci 0 147 NULL
++e_uvc_endpoint_max_bpi_fndecl_155 uvc_endpoint_max_bpi fndecl 0 155 NULL nohasharray
++e_rereg_umr_fndecl_155 rereg_umr fndecl 5 155 &e_uvc_endpoint_max_bpi_fndecl_155
++e_ext4_ext_remove_space_fndecl_170 ext4_ext_remove_space fndecl 3-2 170 NULL
++e_vfs_write_fndecl_176 vfs_write fndecl 3-0 176 NULL
++e_ci_get_data_fndecl_185 ci_get_data fndecl 3 185 NULL
++e_length_sl811h_ep_186 length sl811h_ep 0 186 NULL
++e_sddr55_write_data_fndecl_188 sddr55_write_data fndecl 4-3 188 NULL
++e_mptctl_do_fw_download_fndecl_190 mptctl_do_fw_download fndecl 3 190 NULL
++e_give_pages_fndecl_198 give_pages fndecl 3 198 NULL
++e_myri10ge_rx_done_fndecl_203 myri10ge_rx_done fndecl 2 203 NULL
++e_sys_pwrite64_fndecl_206 sys_pwrite64 fndecl 3 206 NULL
++e_xfs_zero_file_space_fndecl_211 xfs_zero_file_space fndecl 2-3 211 NULL nohasharray
++e_bn_shadow_fndecl_211 bn_shadow fndecl 2 211 &e_xfs_zero_file_space_fndecl_211
++e_cxgb_alloc_mem_fndecl_212 cxgb_alloc_mem fndecl 1 212 NULL
++e_copies_r10conf_216 copies r10conf 0 216 NULL
++e_drm_universal_plane_init_fndecl_219 drm_universal_plane_init fndecl 6 219 NULL
++e_encap_hlen_ip6_tnl_encap_ops_223 encap_hlen ip6_tnl_encap_ops 0 223 NULL
++e_optrom_size_qla_hw_data_230 optrom_size qla_hw_data 0 230 NULL
++e_ad9523_write_fndecl_233 ad9523_write fndecl 2 233 NULL
++e_ocfs2_mark_extent_refcounted_fndecl_240 ocfs2_mark_extent_refcounted fndecl 6-4 240 NULL
++e_musb_readw_vardecl_241 musb_readw vardecl 0 241 NULL
++e_sysv_inode_by_name_fndecl_242 sysv_inode_by_name fndecl 0 242 NULL
++e_offset_nvkm_vma_248 offset nvkm_vma 0 248 NULL
++e_amdgpu_vm_directory_size_fndecl_249 amdgpu_vm_directory_size fndecl 0 249 NULL
++e_ixgbevf_change_mtu_fndecl_251 ixgbevf_change_mtu fndecl 2 251 NULL nohasharray
++e_pclk_limit_ov6650_251 pclk_limit ov6650 0 251 &e_ixgbevf_change_mtu_fndecl_251 nohasharray
++e_saved_skb_len_nfc_digital_dev_251 saved_skb_len nfc_digital_dev 0 251 &e_pclk_limit_ov6650_251
++e_minimum_acpi_address32_attribute_256 minimum acpi_address32_attribute 0 256 NULL
++e_venus_symlink_fndecl_257 venus_symlink fndecl 6-4 257 NULL
++e_l2cap_parse_conf_req_fndecl_260 l2cap_parse_conf_req fndecl 0 260 NULL
++e_lf_entries_gfs2_leaf_263 lf_entries gfs2_leaf 0 263 NULL
++e_max_can_queue_fc_fcp_internal_270 max_can_queue fc_fcp_internal 0 270 NULL
++e_dbg_leb_change_fndecl_272 dbg_leb_change fndecl 4 272 NULL
++e_tcp_current_mss_fndecl_275 tcp_current_mss fndecl 0 275 NULL
++e_vmbus_sendpacket_multipagebuffer_fndecl_276 vmbus_sendpacket_multipagebuffer fndecl 4 276 NULL
++e_es_lblk_extent_status_280 es_lblk extent_status 0 280 NULL
++e_read_snd_midi_event_282 read snd_midi_event 0 282 NULL
++e_bytesperline_sh_veu_vfmt_288 bytesperline sh_veu_vfmt 0 288 NULL nohasharray
++e_vmscsi_size_delta_vardecl_storvsc_drv_c_288 vmscsi_size_delta vardecl_storvsc_drv.c 0 288 &e_bytesperline_sh_veu_vfmt_288
++e_do_mmap_pgoff_fndecl_291 do_mmap_pgoff fndecl 3-0-6 291 NULL
++e__alloc_cdb_cont_fndecl_298 _alloc_cdb_cont fndecl 2 298 NULL
++e_xfs_qm_dqread_fndecl_302 xfs_qm_dqread fndecl 0 302 NULL nohasharray
++e_num_targets_dm_table_302 num_targets dm_table 0 302 &e_xfs_qm_dqread_fndecl_302
++e_MaxBufferSize_negotiate_rsp_314 MaxBufferSize negotiate_rsp 0 314 NULL nohasharray
++e_ip_num_acl_subject_label_314 ip_num acl_subject_label 0 314 &e_MaxBufferSize_negotiate_rsp_314
++e_do_set_pte_fndecl_318 do_set_pte fndecl 2 318 NULL nohasharray
++e_name_len_jffs2_raw_xattr_318 name_len jffs2_raw_xattr 0 318 &e_do_set_pte_fndecl_318
++e_bo_handle_count_drm_vc4_submit_cl_326 bo_handle_count drm_vc4_submit_cl 0 326 NULL
++e_start_fb_cmap_user_333 start fb_cmap_user 0 333 NULL
++e_rd_load_disk_fndecl_334 rd_load_disk fndecl 1 334 NULL nohasharray
++e_block_size_se_dev_attrib_334 block_size se_dev_attrib 0 334 &e_rd_load_disk_fndecl_334
++e_done_status_atmel_spi_338 done_status atmel_spi 0 338 NULL
++e_udl_submit_urb_fndecl_353 udl_submit_urb fndecl 3 353 NULL
++e_tx_idx_bchannel_355 tx_idx bchannel 0 355 NULL
++e_link_buf_size_dvb_ca_slot_365 link_buf_size dvb_ca_slot 0 365 NULL
++e_length_st21nfca_atr_req_366 length st21nfca_atr_req 0 366 NULL
++e_cxgbit_ppod_init_idata_fndecl_384 cxgbit_ppod_init_idata fndecl 4 384 NULL nohasharray
++e_cx18_read_fndecl_384 cx18_read fndecl 3 384 &e_cxgbit_ppod_init_idata_fndecl_384
++e_bw_ns_est_westwood_390 bw_ns_est westwood 0 390 NULL
++e_rcar_dmac_chan_read_fndecl_393 rcar_dmac_chan_read fndecl 0 393 NULL
++e_duplex_tg3_link_config_395 duplex tg3_link_config 0 395 NULL
++e_keyspan_pda_write_fndecl_398 keyspan_pda_write fndecl 4 398 NULL
++e_cyberjack_write_fndecl_399 cyberjack_write fndecl 4 399 NULL
++e_start_sum_block_fndecl_405 start_sum_block fndecl 0 405 NULL
++e_ext_clk_freq_hz_smiapp_pll_409 ext_clk_freq_hz smiapp_pll 0 409 NULL nohasharray
++e_result_iscsi_bsg_reply_409 result iscsi_bsg_reply 0 409 &e_ext_clk_freq_hz_smiapp_pll_409
++e_fcp_resid_bnx2fc_cmd_412 fcp_resid bnx2fc_cmd 0 412 NULL
++e_base_cbuf_417 base cbuf 0 417 NULL
++e_mp_config_acpi_gsi_fndecl_419 mp_config_acpi_gsi fndecl 2 419 NULL
++e_fat_short2uni_fndecl_423 fat_short2uni fndecl 0 423 NULL
++e_vram_vardecl_i810_main_c_426 vram vardecl_i810_main.c 0 426 NULL nohasharray
++e_vol_reg_size_tas571x_chip_426 vol_reg_size tas571x_chip 0 426 &e_vram_vardecl_i810_main_c_426
++e_status_netdev_desc_430 status netdev_desc 0 430 NULL
++e_twsk_obj_size_timewait_sock_ops_433 twsk_obj_size timewait_sock_ops 0 433 NULL
++e_hfs_file_fsync_fndecl_434 hfs_file_fsync fndecl 2 434 NULL
++e_rx_buf_sz_rhine_private_435 rx_buf_sz rhine_private 0 435 NULL
++e_id_alias_prop_438 id alias_prop 0 438 NULL
++e_get_conn_info_fndecl_440 get_conn_info fndecl 4 440 NULL
++e_intr_count_ql_adapter_442 intr_count ql_adapter 0 442 NULL
++e_challenge_len_ieee802_11_elems_444 challenge_len ieee802_11_elems 0 444 NULL
++e_cem_build_path_fndecl_451 cem_build_path fndecl 0 451 NULL
++e_pkts_acked_yeah_452 pkts_acked yeah 0 452 NULL
++e_width_g2d_frame_453 width g2d_frame 0 453 NULL
++e___kfifo_max_r_fndecl_459 __kfifo_max_r fndecl 0-1-2 459 NULL nohasharray
++e_root_entry_lctp_fndecl_459 root_entry_lctp fndecl 0 459 &e___kfifo_max_r_fndecl_459
++e_udf_load_logicalvol_fndecl_471 udf_load_logicalvol fndecl 2 471 NULL
++e_mlx5_ib_rereg_user_mr_fndecl_473 mlx5_ib_rereg_user_mr fndecl 5-4 473 NULL
++e_make_checksum_v2_fndecl_475 make_checksum_v2 fndecl 3-5 475 NULL
++e_map_write_fndecl_480 map_write fndecl 3 480 NULL nohasharray
++e_clear_extent_dirty_fndecl_480 clear_extent_dirty fndecl 2-3 480 &e_map_write_fndecl_480
++e_diva_alloc_dma_map_fndecl_485 diva_alloc_dma_map fndecl 2 485 NULL
++e_ext_start_xfs_extent_486 ext_start xfs_extent 0 486 NULL
++e_consumed_sg_mapping_iter_487 consumed sg_mapping_iter 0 487 NULL
++e_nr_local_rds_rdma_args_488 nr_local rds_rdma_args 0 488 NULL
++e_sp2_read_i2c_fndecl_489 sp2_read_i2c fndecl 4 489 NULL
++e_edid_store_fndecl_491 edid_store fndecl 6 491 NULL
++e_sndbuf_size_net_conf_498 sndbuf_size net_conf 0 498 NULL
++e_max_seg_sz_mmc_test_area_502 max_seg_sz mmc_test_area 0 502 NULL
++e_wa_xfer_status_to_errno_fndecl_506 wa_xfer_status_to_errno fndecl 0 506 NULL
++e_hlen_ip6_tnl_510 hlen ip6_tnl 0 510 NULL
++e_gfn_guest_walkerEPT_517 gfn guest_walkerEPT 0 517 NULL
++e___iscsi_segment_init_fndecl_518 __iscsi_segment_init fndecl 2 518 NULL
++e_dig_rate_snd_bt87x_board_522 dig_rate snd_bt87x_board 0 522 NULL
++e_v9fs_xattr_set_acl_fndecl_526 v9fs_xattr_set_acl fndecl 6 526 NULL nohasharray
++e_prepare_pages_fndecl_526 prepare_pages fndecl 0 526 &e_v9fs_xattr_set_acl_fndecl_526
++e_videobuf_read_zerocopy_fndecl_546 videobuf_read_zerocopy fndecl 3 546 NULL
++e_break_deleg_fndecl_550 break_deleg fndecl 0 550 NULL
++e_iscsi_add_hdr_fndecl_551 iscsi_add_hdr fndecl 2 551 NULL
++e_leaf_paste_in_buffer_fndecl_552 leaf_paste_in_buffer fndecl 4 552 NULL
++e_behind_page_count_r1bio_557 behind_page_count r1bio 0 557 NULL
++e_cfg_reg_teles3_hw_562 cfg_reg teles3_hw 0 562 NULL
++e_disk_secno_bplus_leaf_node_574 disk_secno bplus_leaf_node 0 574 NULL
++e_ext4_swap_extents_fndecl_577 ext4_swap_extents fndecl 6-0-5-4 577 NULL nohasharray
++e_paging64_init_context_common_fndecl_577 paging64_init_context_common fndecl 3 577 &e_ext4_swap_extents_fndecl_577
++e_blk_update_bidi_request_fndecl_588 blk_update_bidi_request fndecl 3-4-2 588 NULL
++e_xmit_head_mgsl_struct_596 xmit_head mgsl_struct 0 596 NULL
++e_max_send_sge_ib_qp_cap_601 max_send_sge ib_qp_cap 0 601 NULL
++e_nr_groups_pcpu_alloc_info_602 nr_groups pcpu_alloc_info 0 602 NULL
++e_xfs_bmapi_read_fndecl_603 xfs_bmapi_read fndecl 0-3-2 603 NULL nohasharray
++e_lcm_not_zero_fndecl_603 lcm_not_zero fndecl 2-0-1 603 &e_xfs_bmapi_read_fndecl_603 nohasharray
++e_sock_xmit_fndecl_603 sock_xmit fndecl 4 603 &e_lcm_not_zero_fndecl_603
++e_FormattedSize_erase_unit_header_t_604 FormattedSize erase_unit_header_t 0 604 NULL nohasharray
++e_populate_msi_sysfs_fndecl_604 populate_msi_sysfs fndecl 0 604 &e_FormattedSize_erase_unit_header_t_604
++e_getxattr_fndecl_605 getxattr fndecl 4 605 NULL nohasharray
++e_pvr2_v4l2_ioctl_fndecl_605 pvr2_v4l2_ioctl fndecl 2 605 &e_getxattr_fndecl_605
++e_ftrace_size_ramoops_context_610 ftrace_size ramoops_context 0 610 NULL
++e_num_queue_pairs_i40e_virtchnl_vf_resource_613 num_queue_pairs i40e_virtchnl_vf_resource 0 613 NULL
++e_virt_end_dm_thin_new_mapping_616 virt_end dm_thin_new_mapping 0 616 NULL
++e_maxsize_tm6000_endpoint_618 maxsize tm6000_endpoint 0 618 NULL
++e_smk_user_access_fndecl_619 smk_user_access fndecl 3 619 NULL
++e_xfs_bmap_finish_fndecl_621 xfs_bmap_finish fndecl 0 621 NULL
++e_bfad_iocmd_port_disable_fndecl_633 bfad_iocmd_port_disable fndecl 0 633 NULL
++e_priv_size_mlxsw_driver_636 priv_size mlxsw_driver 0 636 NULL
++e_ieee80211_rx_mgmt_beacon_fndecl_637 ieee80211_rx_mgmt_beacon fndecl 3 637 NULL
++e_d1_vring_rx_mac_643 d1 vring_rx_mac 0 643 NULL nohasharray
++e_msg_len_dvb_diseqc_master_cmd_643 msg_len dvb_diseqc_master_cmd 0 643 &e_d1_vring_rx_mac_643
++e_mei_hbuf_max_len_fndecl_647 mei_hbuf_max_len fndecl 0 647 NULL
++e_odm_group_depth_pnfs_osd_data_map_648 odm_group_depth pnfs_osd_data_map 0 648 NULL
++e_fat_sync_bhs_fndecl_655 fat_sync_bhs fndecl 0 655 NULL
++e_header_length_irda_usb_cb_657 header_length irda_usb_cb 0 657 NULL
++e_bfad_iocmd_debug_ctl_fndecl_658 bfad_iocmd_debug_ctl fndecl 0 658 NULL
++e_rtsx_usb_read_ppbuf_fndecl_659 rtsx_usb_read_ppbuf fndecl 3-0 659 NULL
++e_start_async_extent_663 start async_extent 0 663 NULL
++e_evdev_do_ioctl_fndecl_664 evdev_do_ioctl fndecl 2 664 NULL nohasharray
++e_tx_max_size_cxgbi_device_664 tx_max_size cxgbi_device 0 664 &e_evdev_do_ioctl_fndecl_664
++e_cw_cursor_fndecl_666 cw_cursor fndecl 4 666 NULL
++e___push_leaf_left_fndecl_667 __push_leaf_left fndecl 8 667 NULL
++e_dccph_seq2_dccp_hdr_669 dccph_seq2 dccp_hdr 0 669 NULL
++e_lbs_highsnr_write_fndecl_671 lbs_highsnr_write fndecl 3 671 NULL
++e_skb_size_nx_host_rds_ring_672 skb_size nx_host_rds_ring 0 672 NULL
++e_bond_change_mtu_fndecl_674 bond_change_mtu fndecl 2 674 NULL
++e_mac_len_sk_buff_676 mac_len sk_buff 0 676 NULL
++e_mbox_offset_sst_res_info_678 mbox_offset sst_res_info 0 678 NULL
++e_page_order_sg_scatter_hold_679 page_order sg_scatter_hold 0 679 NULL
++e_get_eeprom_len_ethtool_ops_686 get_eeprom_len ethtool_ops 0 686 NULL
++e_follow_page_pte_fndecl_687 follow_page_pte fndecl 2 687 NULL
++e_mchip_get_frame_fndecl_692 mchip_get_frame fndecl 0 692 NULL
++e_remap_cell_to_origin_clear_discard_fndecl_699 remap_cell_to_origin_clear_discard fndecl 3 699 NULL
++e_flush_end_io_fndecl_708 flush_end_io fndecl 2 708 NULL nohasharray
++e_ext4_jbd2_inode_add_wait_fndecl_708 ext4_jbd2_inode_add_wait fndecl 0 708 &e_flush_end_io_fndecl_708
++e_sig_size_s3fwrn5_fw_info_719 sig_size s3fwrn5_fw_info 0 719 NULL
++e_tsi148_alloc_resource_fndecl_736 tsi148_alloc_resource fndecl 2 736 NULL
++e_write_cache_pages_fndecl_737 write_cache_pages fndecl 0 737 NULL
++e_mmc_blk_alloc_part_fndecl_739 mmc_blk_alloc_part fndecl 4 739 NULL
++e_count_TxFifo_750 count TxFifo 0 750 NULL
++e_add_falloc_range_fndecl_751 add_falloc_range fndecl 2-3 751 NULL
++e_DataBufsSize_snd_korg1212_758 DataBufsSize snd_korg1212 0 758 NULL
++e_ilf_len_xfs_inode_log_format_759 ilf_len xfs_inode_log_format 0 759 NULL
++e_tda8083_readregs_fndecl_764 tda8083_readregs fndecl 4 764 NULL nohasharray
++e_controller_code_mspro_sys_info_764 controller_code mspro_sys_info 0 764 &e_tda8083_readregs_fndecl_764
++e_iwl_trans_alloc_fndecl_767 iwl_trans_alloc fndecl 5 767 NULL
++e_len_vnic_dev_bar_768 len vnic_dev_bar 0 768 NULL
++e_vb2_fop_read_fndecl_771 vb2_fop_read fndecl 3 771 NULL
++e_gem_change_mtu_fndecl_785 gem_change_mtu fndecl 2 785 NULL
++e_gnet_stats_copy_fndecl_787 gnet_stats_copy fndecl 4 787 NULL
++e_prepare_reply_buffer_fndecl_793 prepare_reply_buffer fndecl 4-3-5 793 NULL
++e_capacity_acpi_nfit_data_region_794 capacity acpi_nfit_data_region 0 794 NULL
++e_extent_direct_795 extent direct 0 795 NULL
++e_height_qxl_head_799 height qxl_head 0 799 NULL
++e_pci_iomap_range_fndecl_809 pci_iomap_range fndecl 4-3 809 NULL
++e_max_brightness_led_classdev_822 max_brightness led_classdev 0 822 NULL
++e_mdata_ofsh_cyttsp4_sysinfo_data_844 mdata_ofsh cyttsp4_sysinfo_data 0 844 NULL
++e_s_inopb_ufs_sb_private_info_849 s_inopb ufs_sb_private_info 0 849 NULL
++e_irnet_ctrl_write_fndecl_856 irnet_ctrl_write fndecl 3 856 NULL
++e_rsi_copy_to_card_fndecl_858 rsi_copy_to_card fndecl 3 858 NULL
++e_unix_seqpacket_recvmsg_fndecl_861 unix_seqpacket_recvmsg fndecl 3 861 NULL
++e_qi_dqperchunk_xfs_quotainfo_863 qi_dqperchunk xfs_quotainfo 0 863 NULL
++e_adu_read_fndecl_866 adu_read fndecl 3 866 NULL
++e_safe_prepare_write_buffer_fndecl_872 safe_prepare_write_buffer fndecl 3 872 NULL nohasharray
++e_memblock_region_memory_end_pfn_fndecl_872 memblock_region_memory_end_pfn fndecl 0 872 &e_safe_prepare_write_buffer_fndecl_872
++e_dvb_register_media_device_fndecl_878 dvb_register_media_device fndecl 4 878 NULL
++e___copy_user_zeroing_intel_nocache_fndecl_880 __copy_user_zeroing_intel_nocache fndecl 0 880 NULL
++e_forw_xfs_attr3_icleaf_hdr_895 forw xfs_attr3_icleaf_hdr 0 895 NULL nohasharray
++e_orinoco_change_mtu_fndecl_895 orinoco_change_mtu fndecl 2 895 &e_forw_xfs_attr3_icleaf_hdr_895
++e_rdma_copy_tail_fndecl_898 rdma_copy_tail fndecl 3 898 NULL nohasharray
++e_cpu_mask_len_res_opts_898 cpu_mask_len res_opts 0 898 &e_rdma_copy_tail_fndecl_898
++e_user_bs_factor_ide_tape_obj_906 user_bs_factor ide_tape_obj 0 906 NULL
++e_good_bytes_nfs_pgio_header_909 good_bytes nfs_pgio_header 0 909 NULL
++e_xfer_shift_rcar_dmac_desc_914 xfer_shift rcar_dmac_desc 0 914 NULL
++e_num_channels_wmi_start_scan_cmd_915 num_channels wmi_start_scan_cmd 0 915 NULL
++e_set_args_iw_priv_args_916 set_args iw_priv_args 0 916 NULL
++e_max_reply_bytes_mpt3_ioctl_command_918 max_reply_bytes mpt3_ioctl_command 0 918 NULL
++e_post_fifo_size__adpt_hba_919 post_fifo_size _adpt_hba 0 919 NULL
++e_nci_nfcc_loopback_fndecl_923 nci_nfcc_loopback fndecl 3 923 NULL
++e_video_hsize_solo_dev_925 video_hsize solo_dev 0 925 NULL nohasharray
++e_amt_complete_orangefs_io_response_925 amt_complete orangefs_io_response 0 925 &e_video_hsize_solo_dev_925 nohasharray
++e_status_word_gem_rxd_925 status_word gem_rxd 0 925 &e_amt_complete_orangefs_io_response_925
++e_isofs_bread_fndecl_929 isofs_bread fndecl 2 929 NULL
++e_nfrags_pkt_gl_937 nfrags pkt_gl 0 937 NULL
++e_pcpu_embed_first_chunk_fndecl_947 pcpu_embed_first_chunk fndecl 3-2-1 947 NULL nohasharray
++e_pad_nr_usb_xpad_947 pad_nr usb_xpad 0 947 &e_pcpu_embed_first_chunk_fndecl_947
++e_num_digital_busses_in_fndecl_951 num_digital_busses_in fndecl 0 951 NULL
++e_pci_num_vf_fndecl_952 pci_num_vf fndecl 0 952 NULL
++e_ssid_len_wireless_dev_954 ssid_len wireless_dev 0 954 NULL
++e_length_ndis_80211_bssid_ex_955 length ndis_80211_bssid_ex 0 955 NULL
++e_xfs_bmap_rtalloc_fndecl_958 xfs_bmap_rtalloc fndecl 0 958 NULL
++e_size_wl3501_md_ind_961 size wl3501_md_ind 0 961 NULL
++e_do_read_fault_fndecl_971 do_read_fault fndecl 3-5 971 NULL
++e_index_vardecl_miro_c_974 index vardecl_miro.c 0 974 NULL
++e_s_blocks_count_hi_ext4_super_block_983 s_blocks_count_hi ext4_super_block 0 983 NULL nohasharray
++e_em28xx_alloc_urbs_fndecl_983 em28xx_alloc_urbs fndecl 5-6 983 &e_s_blocks_count_hi_ext4_super_block_983
++e_nd_integrity_init_fndecl_985 nd_integrity_init fndecl 2 985 NULL nohasharray
++e_sm501_create_subio_fndecl_985 sm501_create_subio fndecl 4-3 985 &e_nd_integrity_init_fndecl_985
++e_esp6_get_mtu_fndecl_987 esp6_get_mtu fndecl 0-2 987 NULL
++e_acc_userl_accessdata_dn_989 acc_userl accessdata_dn 0 989 NULL
++e_unlock_extent_fndecl_990 unlock_extent fndecl 2-3 990 NULL
++e_gtt_size_amdgpu_mc_994 gtt_size amdgpu_mc 0 994 NULL
++e_ContainerSwitchEntries_aac_get_container_count_resp_1001 ContainerSwitchEntries aac_get_container_count_resp 0 1001 NULL
++e_reserve_metadata_bytes_fndecl_1002 reserve_metadata_bytes fndecl 0 1002 NULL
++e_cpu_count_MPT3SAS_ADAPTER_1003 cpu_count MPT3SAS_ADAPTER 0 1003 NULL
++e_xfs_dir3_leafn_read_fndecl_1004 xfs_dir3_leafn_read fndecl 3 1004 NULL
++e_ath6kl_add_bss_if_needed_fndecl_1006 ath6kl_add_bss_if_needed fndecl 6 1006 NULL
++e___dm_get_module_param_fndecl_1008 __dm_get_module_param fndecl 0 1008 NULL
++e_address_acpi_nfit_memory_map_1009 address acpi_nfit_memory_map 0 1009 NULL
++e_assoc_req_len_wmi_connect_event_1014 assoc_req_len wmi_connect_event 0 1014 NULL
++e_s_last_cno_nilfs_super_block_1016 s_last_cno nilfs_super_block 0 1016 NULL
++e_i2c_smbus_check_pec_fndecl_1018 i2c_smbus_check_pec fndecl 0 1018 NULL
++e_nvram_size_chip_desc_1022 nvram_size chip_desc 0 1022 NULL
++e_len_wcn36xx_hal_msg_header_1023 len wcn36xx_hal_msg_header 0 1023 NULL
++e___generic_copy_to_user_intel_fndecl_1029 __generic_copy_to_user_intel fndecl 0 1029 NULL
++e_dlm_len_mt76_fw_header_1030 dlm_len mt76_fw_header 0 1030 NULL
++e_pci_scan_single_device_fndecl_1034 pci_scan_single_device fndecl 2 1034 NULL
++e_wq_ecount_lpfc_sli4_hba_1039 wq_ecount lpfc_sli4_hba 0 1039 NULL
++e_write_dir_fndecl_1040 write_dir fndecl 3 1040 NULL
++e_page_shift_mlx5_buf_1041 page_shift mlx5_buf 0 1041 NULL nohasharray
++e_ssb_admatch_size_fndecl_1041 ssb_admatch_size fndecl 0-1 1041 &e_page_shift_mlx5_buf_1041
++e_iv_len_txentry_desc_1042 iv_len txentry_desc 0 1042 NULL nohasharray
++e_address_length_acpi_resource_fixed_io_1042 address_length acpi_resource_fixed_io 0 1042 &e_iv_len_txentry_desc_1042
++e_vnic_dev_get_res_count_fndecl_1044 vnic_dev_get_res_count fndecl 0 1044 NULL
++e_registers_gen_74x164_chip_1049 registers gen_74x164_chip 0 1049 NULL nohasharray
++e_read_data_done_iscsi_datain_req_1049 read_data_done iscsi_datain_req 0 1049 &e_registers_gen_74x164_chip_1049
++e_bfad_iocmd_iocfc_set_intr_fndecl_1050 bfad_iocmd_iocfc_set_intr fndecl 0 1050 NULL
++e_amdgpu_cgs_alloc_gpu_mem_fndecl_1052 amdgpu_cgs_alloc_gpu_mem fndecl 3 1052 NULL nohasharray
++e_m5602_urb_complete_fndecl_1052 m5602_urb_complete fndecl 3 1052 &e_amdgpu_cgs_alloc_gpu_mem_fndecl_1052
++e_nentries_ebt_replace_1059 nentries ebt_replace 0 1059 NULL
++e_ch_r_tail_jsm_channel_1063 ch_r_tail jsm_channel 0 1063 NULL
++e_data_ep_set_params_fndecl_1064 data_ep_set_params fndecl 3-4 1064 NULL
++e_cw_clear_fndecl_1066 cw_clear fndecl 4-5-3-6 1066 NULL
++e_tcp_scalable_cong_avoid_fndecl_1067 tcp_scalable_cong_avoid fndecl 3 1067 NULL nohasharray
++e_len_left_brcmf_sdio_hdrinfo_1067 len_left brcmf_sdio_hdrinfo 0 1067 &e_tcp_scalable_cong_avoid_fndecl_1067
++e_line__mgslpc_info_1070 line _mgslpc_info 0 1070 NULL nohasharray
++e_i_dno_hpfs_inode_info_1070 i_dno hpfs_inode_info 0 1070 &e_line__mgslpc_info_1070
++e_num_min_snd_ratden_1071 num_min snd_ratden 0 1071 NULL
++e_private_data_len_iw_cm_conn_param_1076 private_data_len iw_cm_conn_param 0 1076 NULL
++e_enable_clk_ops_1078 enable clk_ops 0 1078 NULL
++e_rq_wqe_count_mlx5_ib_create_qp_1079 rq_wqe_count mlx5_ib_create_qp 0 1079 NULL
++e_ReadEEProm_fndecl_1081 ReadEEProm fndecl 3 1081 NULL
++e_max_srq_sz_mthca_dev_lim_1088 max_srq_sz mthca_dev_lim 0 1088 NULL
++e_libipw_classify_fndecl_1089 libipw_classify fndecl 0 1089 NULL
++e_data_start_msdos_sb_info_1100 data_start msdos_sb_info 0 1100 NULL
++e_num_counters_compat_ebt_replace_1102 num_counters compat_ebt_replace 0 1102 NULL
++e_rx_ring_count_e1000_adapter_1107 rx_ring_count e1000_adapter 0 1107 NULL
++e_cmd_sg_entries_vardecl_ib_srp_c_1108 cmd_sg_entries vardecl_ib_srp.c 0 1108 NULL
++e_ResponseDataLength__MPI2_SMP_PASSTHROUGH_REPLY_1113 ResponseDataLength _MPI2_SMP_PASSTHROUGH_REPLY 0 1113 NULL
++e_io_free_memtype_fndecl_1116 io_free_memtype fndecl 1-2 1116 NULL
++e_rxkad_decrypt_ticket_fndecl_1120 rxkad_decrypt_ticket fndecl 3 1120 NULL
++e_ctl_in_pipe_brcmf_usbdev_info_1124 ctl_in_pipe brcmf_usbdev_info 0 1124 NULL
++e_forw_xfs_dir3_icleaf_hdr_1136 forw xfs_dir3_icleaf_hdr 0 1136 NULL
++e_log_num_mlx4_resource_1137 log_num mlx4_resource 0 1137 NULL
++e_alloc_rss_size_i40e_pf_1138 alloc_rss_size i40e_pf 0 1138 NULL
++e_usblp_new_writeurb_fndecl_1149 usblp_new_writeurb fndecl 2 1149 NULL nohasharray
++e_p54spi_spi_read_fndecl_1149 p54spi_spi_read fndecl 4 1149 &e_usblp_new_writeurb_fndecl_1149
++e_offset_mirror_1150 offset mirror 0 1150 NULL
++e_hw_max_sectors_se_dev_attrib_1152 hw_max_sectors se_dev_attrib 0 1152 NULL
++e_ntfs_rl_vcn_to_lcn_fndecl_1155 ntfs_rl_vcn_to_lcn fndecl 0-2 1155 NULL
++e_cbuf_data_fndecl_1158 cbuf_data fndecl 0 1158 NULL
++e_sysctl_tcp_max_reordering_vardecl_1161 sysctl_tcp_max_reordering vardecl 0 1161 NULL
++e_ocfs2_mknod_locked_fndecl_1163 ocfs2_mknod_locked fndecl 4 1163 NULL
++e_rtsx_usb_write_ppbuf_fndecl_1165 rtsx_usb_write_ppbuf fndecl 3-0 1165 NULL
++e_sg_len_mmc_data_1168 sg_len mmc_data 0 1168 NULL
++e___btrfs_add_free_space_fndecl_1174 __btrfs_add_free_space fndecl 2-3 1174 NULL
++e___set_xattr_fndecl_1176 __set_xattr fndecl 5-3 1176 NULL nohasharray
++e_indata_len_ceph_osd_req_op_1176 indata_len ceph_osd_req_op 0 1176 &e___set_xattr_fndecl_1176
++e_br_vlan_add_fndecl_1177 br_vlan_add fndecl 2 1177 NULL
++e_nr_push_drm_nouveau_gem_pushbuf_1184 nr_push drm_nouveau_gem_pushbuf 0 1184 NULL
++e_mxr_mplane_fill_fndecl_1189 mxr_mplane_fill fndecl 3-4 1189 NULL
++e_probe_resp_len_cfg80211_beacon_data_1195 probe_resp_len cfg80211_beacon_data 0 1195 NULL
++e_rdmarc_per_qp_mlx4_profile_1197 rdmarc_per_qp mlx4_profile 0 1197 NULL
++e_nfs4_get_security_label_fndecl_1201 nfs4_get_security_label fndecl 3 1201 NULL nohasharray
++e_rx_sdu_size_tsap_cb_1201 rx_sdu_size tsap_cb 0 1201 &e_nfs4_get_security_label_fndecl_1201
++e_pvscsi_ring_pages_vardecl_vmw_pvscsi_c_1202 pvscsi_ring_pages vardecl_vmw_pvscsi.c 0 1202 NULL
++e_iwl_trans_get_rb_size_order_fndecl_1203 iwl_trans_get_rb_size_order fndecl 0 1203 NULL
++e_mlxsw_pci_cqe_byte_count_get_fndecl_1206 mlxsw_pci_cqe_byte_count_get fndecl 0 1206 NULL
++e_pcpu_mem_zalloc_fndecl_1207 pcpu_mem_zalloc fndecl 1 1207 NULL
++e_max_sge_mvumi_hba_1213 max_sge mvumi_hba 0 1213 NULL
++e_logfs_segment_write_compress_fndecl_1214 logfs_segment_write_compress fndecl 5 1214 NULL
++e_max_transfer_bytes_storvsc_device_1221 max_transfer_bytes storvsc_device 0 1221 NULL
++e_tcp_synack_options_fndecl_1222 tcp_synack_options fndecl 0 1222 NULL nohasharray
++e_max_pkt_size_au0828_dev_1222 max_pkt_size au0828_dev 0 1222 &e_tcp_synack_options_fndecl_1222
++e_segno_curseg_info_1223 segno curseg_info 0 1223 NULL
++e_pfkey_sendmsg_fndecl_1225 pfkey_sendmsg fndecl 3 1225 NULL
++e_i_sblock_bfs_inode_info_1228 i_sblock bfs_inode_info 0 1228 NULL
++e_cached_dev_cache_miss_fndecl_1232 cached_dev_cache_miss fndecl 4 1232 NULL
++e_page_table_range_init_count_fndecl_1234 page_table_range_init_count fndecl 0 1234 NULL
++e_prev_chunk_sectors_r5conf_1237 prev_chunk_sectors r5conf 0 1237 NULL
++e_buffer_dma_zd_usb_interrupt_1239 buffer_dma zd_usb_interrupt 0 1239 NULL
++e_remote_settings_file_write_fndecl_1240 remote_settings_file_write fndecl 3 1240 NULL
++e_iwl_mvm_sta_tx_agg_start_fndecl_1243 iwl_mvm_sta_tx_agg_start fndecl 4 1243 NULL
++e_dlc_leaf_msg_log_message_1244 dlc leaf_msg_log_message 0 1244 NULL
++e_get_tdp_level_kvm_x86_ops_1250 get_tdp_level kvm_x86_ops 0 1250 NULL
++e_max_vports_lpfc_hba_1253 max_vports lpfc_hba 0 1253 NULL
++e_find_highest_prio_tid_fndecl_1254 find_highest_prio_tid fndecl 0 1254 NULL
++e_num_slaves_mlx4_dev_1258 num_slaves mlx4_dev 0 1258 NULL
++e_alloc32_mon_bin_get32_1260 alloc32 mon_bin_get32 0 1260 NULL
++e_nfs_readdir_xdr_filler_fndecl_1265 nfs_readdir_xdr_filler fndecl 0 1265 NULL
++e_nlmsg_len_nlmsghdr_1272 nlmsg_len nlmsghdr 0 1272 NULL
++e_viafb_dvp0_proc_write_fndecl_1276 viafb_dvp0_proc_write fndecl 3 1276 NULL
++e_bictcp_cong_avoid_fndecl_1278 bictcp_cong_avoid fndecl 3 1278 NULL
++e_pskb_may_pull_fndecl_1281 pskb_may_pull fndecl 2 1281 NULL
++e_ocfs2_read_extent_block_fndecl_1285 ocfs2_read_extent_block fndecl 0-2 1285 NULL
++e_agp_alloc_page_array_fndecl_1289 agp_alloc_page_array fndecl 1 1289 NULL
++e_fw_epd_frame_1293 fw epd_frame 0 1293 NULL
++e_ieee80211_stop_rx_ba_session_offl_fndecl_1297 ieee80211_stop_rx_ba_session_offl fndecl 3 1297 NULL
++e_prv_size_override_lpss_device_desc_1301 prv_size_override lpss_device_desc 0 1301 NULL
++e_wMaxControlMessage_usb_cdc_mbim_desc_1308 wMaxControlMessage usb_cdc_mbim_desc 0 1308 NULL
++e_phys_erase_shift_nand_chip_1309 phys_erase_shift nand_chip 0 1309 NULL
++e_vmw_kms_stdu_surface_dirty_fndecl_1310 vmw_kms_stdu_surface_dirty fndecl 8 1310 NULL
++e_curr_resync_mddev_1313 curr_resync mddev 0 1313 NULL nohasharray
++e_number_snd_pcm_substream_1313 number snd_pcm_substream 0 1313 &e_curr_resync_mddev_1313 nohasharray
++e_txhdr_len_mlxsw_driver_1313 txhdr_len mlxsw_driver 0 1313 &e_number_snd_pcm_substream_1313
++e_win_size_async_state_1326 win_size async_state 0 1326 NULL
++e_flctl_cmdfunc_fndecl_1333 flctl_cmdfunc fndecl 3 1333 NULL
++e_ufs_alloc_lastblock_fndecl_1339 ufs_alloc_lastblock fndecl 2 1339 NULL
++e_fat_parse_short_fndecl_1348 fat_parse_short fndecl 0 1348 NULL
++e_ipr_number_of_msix_vardecl_ipr_c_1349 ipr_number_of_msix vardecl_ipr.c 0 1349 NULL
++e_current_limit_memblock_1350 current_limit memblock 0 1350 NULL
++e_ccp_set_dm_area_fndecl_1351 ccp_set_dm_area fndecl 4 1351 NULL
++e_MemReadHSCX_fndecl_1364 MemReadHSCX fndecl 0 1364 NULL
++e_page_offset_hnae_desc_cb_1366 page_offset hnae_desc_cb 0 1366 NULL nohasharray
++e_tx_ring_count_xgbe_prv_data_1366 tx_ring_count xgbe_prv_data 0 1366 &e_page_offset_hnae_desc_cb_1366
++e_len_orinoco_scan_data_1370 len orinoco_scan_data 0 1370 NULL nohasharray
++e_dlen_hci_sco_hdr_1370 dlen hci_sco_hdr 0 1370 &e_len_orinoco_scan_data_1370
++e_v_total_aty128_crtc_1375 v_total aty128_crtc 0 1375 NULL
++e_reiserfs_get_block_fndecl_1379 reiserfs_get_block fndecl 2 1379 NULL
++e_w_drm_vmw_rect_1383 w drm_vmw_rect 0 1383 NULL
++e_ieee80211_probereq_get_fndecl_1384 ieee80211_probereq_get fndecl 4-5 1384 NULL
++e_vlen_nfsd3_writeargs_1388 vlen nfsd3_writeargs 0 1388 NULL
++e_smsc911x_rx_get_rxstatus_fndecl_1389 smsc911x_rx_get_rxstatus fndecl 0 1389 NULL
++e_stepped_offset_skb_seq_state_1395 stepped_offset skb_seq_state 0 1395 NULL
++e_len_wsm_hdr_1398 len wsm_hdr 0 1398 NULL
++e_dev_size_amd_flash_info_1399 dev_size amd_flash_info 0 1399 NULL
++e_minor_bl_dev_msg_1402 minor bl_dev_msg 0 1402 NULL
++e_usb_transport_fail_vub300_mmc_host_1403 usb_transport_fail vub300_mmc_host 0 1403 NULL
++e_cmd_size_scsi_host_template_1404 cmd_size scsi_host_template 0 1404 NULL
++e_num_hsi_port_1406 num hsi_port 0 1406 NULL
++e_ec_hdr_alsize_ubi_device_1411 ec_hdr_alsize ubi_device 0 1411 NULL
++e_ubifs_leb_write_fndecl_1412 ubifs_leb_write fndecl 5-4 1412 NULL
++e_copy_pages_to_kvecs_fndecl_1417 copy_pages_to_kvecs fndecl 0 1417 NULL
++e_fill_gap_fndecl_1418 fill_gap fndecl 3-4 1418 NULL
++e_ocfs2_get_block_fndecl_1420 ocfs2_get_block fndecl 2 1420 NULL
++e_wpa_ie_len_orinoco_private_1421 wpa_ie_len orinoco_private 0 1421 NULL nohasharray
++e_reg_umr_fndecl_1421 reg_umr fndecl 5-3 1421 &e_wpa_ie_len_orinoco_private_1421
++e_bch_dump_read_fndecl_1422 bch_dump_read fndecl 3 1422 NULL
++e_tnc_insert_fndecl_1431 tnc_insert fndecl 4 1431 NULL
++e_relocation_count_drm_i915_gem_exec_object2_1435 relocation_count drm_i915_gem_exec_object2 0 1435 NULL
++e_security_set_fndecl_1439 security_set fndecl 6 1439 NULL
++e_loc_addr_rio_transfer_io_1447 loc_addr rio_transfer_io 0 1447 NULL nohasharray
++e_alloc_libipw_fndecl_1447 alloc_libipw fndecl 1 1447 &e_loc_addr_rio_transfer_io_1447
++e_fixup_user_fault_fndecl_1456 fixup_user_fault fndecl 3 1456 NULL
++e_sys_ppoll_fndecl_1459 sys_ppoll fndecl 2 1459 NULL
++e_size_fw_sec_1464 size fw_sec 0 1464 NULL
++e_SYSC_vmsplice_fndecl_1466 SYSC_vmsplice fndecl 3 1466 NULL
++e_net_header_len_sctp_af_1467 net_header_len sctp_af 0 1467 NULL
++e_ceph_decode_32_fndecl_1473 ceph_decode_32 fndecl 0 1473 NULL
++e_ax25_output_fndecl_1475 ax25_output fndecl 2 1475 NULL
++e_pbus_size_io_fndecl_1478 pbus_size_io fndecl 3-2 1478 NULL
++e_nfs3_proc_symlink_fndecl_1479 nfs3_proc_symlink fndecl 4 1479 NULL
++e_iscsi_sw_tcp_send_data_prep_fndecl_1485 iscsi_sw_tcp_send_data_prep fndecl 5-4 1485 NULL
++e_irq_base_max8925_chip_1487 irq_base max8925_chip 0 1487 NULL
++e_ecryptfs_write_metadata_to_contents_fndecl_1490 ecryptfs_write_metadata_to_contents fndecl 3 1490 NULL
++e_de4x5_alloc_rx_buff_fndecl_1491 de4x5_alloc_rx_buff fndecl 3 1491 NULL
++e_n_channels_ieee80211_supported_band_1494 n_channels ieee80211_supported_band 0 1494 NULL
++e_blocks_count_ext4_new_group_data_1496 blocks_count ext4_new_group_data 0 1496 NULL
++e_ezusb_program_fndecl_1497 ezusb_program fndecl 3-4 1497 NULL
++e_ext4_mpage_readpages_fndecl_1499 ext4_mpage_readpages fndecl 4 1499 NULL
++e_num_step_snd_ratden_1500 num_step snd_ratden 0 1500 NULL nohasharray
++e_cx18_copy_buf_to_user_fndecl_1500 cx18_copy_buf_to_user fndecl 4 1500 &e_num_step_snd_ratden_1500
++e_uvc_video_decode_start_fndecl_1505 uvc_video_decode_start fndecl 0 1505 NULL
++e_bo_info_size_drm_amdgpu_bo_list_in_1510 bo_info_size drm_amdgpu_bo_list_in 0 1510 NULL
++e_dma_data_req_size_ivtv_1512 dma_data_req_size ivtv 0 1512 NULL
++e___break_lease_fndecl_1514 __break_lease fndecl 0 1514 NULL nohasharray
++e_initiate_new_session_fndecl_1514 initiate_new_session fndecl 6 1514 &e___break_lease_fndecl_1514
++e_sk_sndbuf_sock_1516 sk_sndbuf sock 0 1516 NULL
++e_shmem_file_setup_fndecl_1517 shmem_file_setup fndecl 2 1517 NULL
++e_buf_size_mlx4_ib_qp_1529 buf_size mlx4_ib_qp 0 1529 NULL
++e_max_rqe_ocrdma_dev_attr_1534 max_rqe ocrdma_dev_attr 0 1534 NULL
++e_grcan_allocate_dma_buffers_fndecl_1535 grcan_allocate_dma_buffers fndecl 2-3 1535 NULL
++e_ip6_make_skb_fndecl_1536 ip6_make_skb fndecl 5-4 1536 NULL
++e___es_remove_extent_fndecl_1544 __es_remove_extent fndecl 0-2-3 1544 NULL
++e___aa_kvmalloc_fndecl_1547 __aa_kvmalloc fndecl 1 1547 NULL
++e_beg_hdmi_pulse_1552 beg hdmi_pulse 0 1552 NULL
++e_rq_end_io_target_type_1559 rq_end_io target_type 0 1559 NULL
++e_prio_read_fndecl_1564 prio_read fndecl 2 1564 NULL
++e_i2cdev_write_fndecl_1565 i2cdev_write fndecl 3 1565 NULL
++e_alignment_acpi_resource_io_1569 alignment acpi_resource_io 0 1569 NULL
++e_kmem_zalloc_large_fndecl_1572 kmem_zalloc_large fndecl 1 1572 NULL
++e_size_drm_qxl_alloc_1578 size drm_qxl_alloc 0 1578 NULL
++e_ndesc_srp_map_state_1582 ndesc srp_map_state 0 1582 NULL
++e_sector_clone_info_1593 sector clone_info 0 1593 NULL
++e_datafab_bulk_write_fndecl_1597 datafab_bulk_write fndecl 3 1597 NULL
++e_length_cpc_can_msg_1600 length cpc_can_msg 0 1600 NULL nohasharray
++e_size_icp_qat_uof_batch_init_1600 size icp_qat_uof_batch_init 0 1600 &e_length_cpc_can_msg_1600
++e_block_size_c2port_ops_1610 block_size c2port_ops 0 1610 NULL
++e_pppoe_sendmsg_fndecl_1612 pppoe_sendmsg fndecl 3 1612 NULL
++e_rawv6_send_hdrinc_fndecl_1625 rawv6_send_hdrinc fndecl 3 1625 NULL nohasharray
++e_max_frame_size_usb_usbvision_1625 max_frame_size usb_usbvision 0 1625 &e_rawv6_send_hdrinc_fndecl_1625
++e_dt_num_devices_exofs_device_table_1626 dt_num_devices exofs_device_table 0 1626 NULL
++e_size_bin_attribute_1632 size bin_attribute 0 1632 NULL
++e_num_fw_rsc_vdev_vring_1645 num fw_rsc_vdev_vring 0 1645 NULL
++e_cblock_policy_result_1648 cblock policy_result 0 1648 NULL
++e_kobil_write_fndecl_1651 kobil_write fndecl 4 1651 NULL
++e_st_set_pages_fndecl_1655 st_set_pages fndecl 3 1655 NULL
++e_onenand_fill_auto_oob_fndecl_1663 onenand_fill_auto_oob fndecl 4 1663 NULL
++e_rds_tcp_sendmsg_fndecl_1668 rds_tcp_sendmsg fndecl 3 1668 NULL
++e_num_clips_drm_vmw_present_arg_1671 num_clips drm_vmw_present_arg 0 1671 NULL nohasharray
++e_pci_brcm_trumanage_setup_fndecl_1671 pci_brcm_trumanage_setup fndecl 4 1671 &e_num_clips_drm_vmw_present_arg_1671
++e_hidraw_send_report_fndecl_1674 hidraw_send_report fndecl 3 1674 NULL nohasharray
++e_bfad_iocmd_ratelim_speed_fndecl_1674 bfad_iocmd_ratelim_speed fndecl 0 1674 &e_hidraw_send_report_fndecl_1674
++e_brightness_led_classdev_1675 brightness led_classdev 0 1675 NULL
++e_vzalloc_node_fndecl_1683 vzalloc_node fndecl 1 1683 NULL
++e_rsrc_len_usb_hcd_1686 rsrc_len usb_hcd 0 1686 NULL
++e_file_size_squashfs_ldir_inode_1687 file_size squashfs_ldir_inode 0 1687 NULL
++e_remain_bytes_asc_q_done_info_1696 remain_bytes asc_q_done_info 0 1696 NULL
++e_size_grcan_dma_buffer_1702 size grcan_dma_buffer 0 1702 NULL
++e_divasa_remap_pci_bar_fndecl_1710 divasa_remap_pci_bar fndecl 4-3 1710 NULL nohasharray
++e_get_cap_size_qlcnic_hardware_ops_1710 get_cap_size qlcnic_hardware_ops 0 1710 &e_divasa_remap_pci_bar_fndecl_1710 nohasharray
++e_setup_msi_irqs_x86_msi_ops_1710 setup_msi_irqs x86_msi_ops 0 1710 &e_get_cap_size_qlcnic_hardware_ops_1710
++e_ext4_getblk_fndecl_1720 ext4_getblk fndecl 3 1720 NULL
++e_osd_req_op_notify_init_fndecl_1721 osd_req_op_notify_init fndecl 7 1721 NULL
++e_yres_drm_cmdline_mode_1722 yres drm_cmdline_mode 0 1722 NULL
++e_qtd_fill_fndecl_1725 qtd_fill fndecl 4-5-2-0-3 1725 NULL
++e_submit_io_fndecl_1726 submit_io fndecl 3 1726 NULL
++e_ts_num_ids_nfsd4_test_stateid_1732 ts_num_ids nfsd4_test_stateid 0 1732 NULL
++e___gfn_to_hva_many_fndecl_1735 __gfn_to_hva_many fndecl 0-2 1735 NULL
++e_l4_hdr_size_vmxnet3_tx_ctx_1737 l4_hdr_size vmxnet3_tx_ctx 0 1737 NULL
++e_userspace_do_request_fndecl_1738 userspace_do_request fndecl 5 1738 NULL
++e___do_fault_fndecl_1739 __do_fault fndecl 3 1739 NULL
++e_pci_omegapci_setup_fndecl_1740 pci_omegapci_setup fndecl 4 1740 NULL nohasharray
++e_size_nhlt_specific_cfg_1740 size nhlt_specific_cfg 0 1740 &e_pci_omegapci_setup_fndecl_1740
++e_reg_list_format_size_bytes_amdgpu_rlc_1742 reg_list_format_size_bytes amdgpu_rlc 0 1742 NULL
++e_ad_sd_write_reg_fndecl_1743 ad_sd_write_reg fndecl 3 1743 NULL nohasharray
++e_nr_packets_saa7134_ts_1743 nr_packets saa7134_ts 0 1743 &e_ad_sd_write_reg_fndecl_1743
++e_sectorsize_btrfs_root_1747 sectorsize btrfs_root 0 1747 NULL
++e_si4713_send_command_fndecl_1750 si4713_send_command fndecl 6 1750 NULL
++e_copy_module_from_user_fndecl_1751 copy_module_from_user fndecl 2 1751 NULL
++e_hugetlbfs_fallocate_fndecl_1752 hugetlbfs_fallocate fndecl 4-3 1752 NULL
++e_ext4_remove_blocks_fndecl_1754 ext4_remove_blocks fndecl 5 1754 NULL nohasharray
++e_st_nci_hci_dm_field_generator_fndecl_1754 st_nci_hci_dm_field_generator fndecl 3 1754 &e_ext4_remove_blocks_fndecl_1754
++e_len_pda_custom_wrapper_1757 len pda_custom_wrapper 0 1757 NULL
++e_offset_scrub_nocow_inode_1762 offset scrub_nocow_inode 0 1762 NULL
++e___es_insert_extent_fndecl_1764 __es_insert_extent fndecl 0 1764 NULL
++e_eqe_size_mlx4_caps_1775 eqe_size mlx4_caps 0 1775 NULL
++e_key_length_mwifiex_wep_key_1784 key_length mwifiex_wep_key 0 1784 NULL
++e___of_translate_address_fndecl_1786 __of_translate_address fndecl 0 1786 NULL
++e_pitch_radeonfb_info_1792 pitch radeonfb_info 0 1792 NULL
++e_reiserfs_add_entry_fndecl_1797 reiserfs_add_entry fndecl 4 1797 NULL
++e_vub300_usb_bulk_msg_fndecl_1799 vub300_usb_bulk_msg fndecl 4-2 1799 NULL nohasharray
++e_security_inode_killpriv_fndecl_1799 security_inode_killpriv fndecl 0 1799 &e_vub300_usb_bulk_msg_fndecl_1799
++e_wl1273_fm_write_data_fndecl_1803 wl1273_fm_write_data fndecl 3 1803 NULL
++e_num_mtt_segs_mthca_limits_1806 num_mtt_segs mthca_limits 0 1806 NULL
++e_dataInSize_mpt_ioctl_command_1808 dataInSize mpt_ioctl_command 0 1808 NULL
++e_udl_gem_alloc_object_fndecl_1811 udl_gem_alloc_object fndecl 2 1811 NULL
++e___hugepage_set_anon_rmap_fndecl_1814 __hugepage_set_anon_rmap fndecl 3 1814 NULL nohasharray
++e_sv_nrpools_svc_serv_1814 sv_nrpools svc_serv 0 1814 &e___hugepage_set_anon_rmap_fndecl_1814
++e_fuse_dir_ioctl_fndecl_1818 fuse_dir_ioctl fndecl 2 1818 NULL
++e_bufsize_saa7134_dmasound_1821 bufsize saa7134_dmasound 0 1821 NULL
++e_lleft_ext4_allocation_request_1823 lleft ext4_allocation_request 0 1823 NULL
++e___add_prelim_ref_fndecl_1828 __add_prelim_ref fndecl 6-5-2 1828 NULL
++e_dev_number_vardecl_rio_mport_cdev_c_1836 dev_number vardecl_rio_mport_cdev.c 0 1836 NULL
++e_kvm_mmu_gva_to_gpa_write_fndecl_1840 kvm_mmu_gva_to_gpa_write fndecl 0 1840 NULL
++e_walk_system_ram_range_fndecl_1842 walk_system_ram_range fndecl 2-1 1842 NULL
++e_check_free_sectors_fndecl_1843 check_free_sectors fndecl 2 1843 NULL
++e_vm_map_ram_fndecl_1845 vm_map_ram fndecl 2 1845 NULL
++e_device_slot_1847 device slot 0 1847 NULL
++e_qla4_82xx_pci_mem_read_2M_fndecl_1850 qla4_82xx_pci_mem_read_2M fndecl 2 1850 NULL
++e_maximum_cx88_ctrl_1852 maximum cx88_ctrl 0 1852 NULL
++e_dm_write_async_fndecl_1859 dm_write_async fndecl 3 1859 NULL
++e_da9150_write_qif_fndecl_1872 da9150_write_qif fndecl 3 1872 NULL
++e_rxq_req_tg3_1873 rxq_req tg3 0 1873 NULL
++e_nl80211_send_rx_auth_fndecl_1876 nl80211_send_rx_auth fndecl 4 1876 NULL
++e_sisusb_bulkin_msg_fndecl_1878 sisusb_bulkin_msg fndecl 4-2 1878 NULL nohasharray
++e_buf_size_cx18_stream_1878 buf_size cx18_stream 0 1878 &e_sisusb_bulkin_msg_fndecl_1878
++e_num_vmdq_vsis_i40e_pf_1882 num_vmdq_vsis i40e_pf 0 1882 NULL
++e___clear_user_fndecl_1885 __clear_user fndecl 0 1885 NULL
++e_vmxnet3_get_hdr_len_fndecl_1891 vmxnet3_get_hdr_len fndecl 0 1891 NULL
++e_cq_ecount_lpfc_sli4_hba_1907 cq_ecount lpfc_sli4_hba 0 1907 NULL
++e_tx_ch_cnt_xgbe_hw_features_1908 tx_ch_cnt xgbe_hw_features 0 1908 NULL
++e_ca91cx42_master_set_fndecl_1913 ca91cx42_master_set fndecl 4 1913 NULL
++e_fix_unclean_leb_fndecl_1927 fix_unclean_leb fndecl 3 1927 NULL
++e_bfad_iocmd_fcport_disable_fndecl_1932 bfad_iocmd_fcport_disable fndecl 0 1932 NULL
++e_convert_ip_to_linear_fndecl_1933 convert_ip_to_linear fndecl 0 1933 NULL
++e_length_usnic_uiom_reg_1937 length usnic_uiom_reg 0 1937 NULL
++e_usblp_write_fndecl_1945 usblp_write fndecl 3 1945 NULL
++e_sv_resid_sym_ccb_1947 sv_resid sym_ccb 0 1947 NULL
++e_ieee80211_get_mesh_hdrlen_fndecl_1948 ieee80211_get_mesh_hdrlen fndecl 0 1948 NULL
++e_gss_pipe_downcall_fndecl_1949 gss_pipe_downcall fndecl 3 1949 NULL
++e_num_adcs_cs42xx8_driver_data_1953 num_adcs cs42xx8_driver_data 0 1953 NULL
++e_dax_major_vardecl_dax_c_1960 dax_major vardecl_dax.c 0 1960 NULL
++e_shmem_getpage_fndecl_1965 shmem_getpage fndecl 2 1965 NULL
++e_xlog_get_bp_fndecl_1966 xlog_get_bp fndecl 2 1966 NULL nohasharray
++e___read_status_pci_fndecl_1966 __read_status_pci fndecl 0 1966 &e_xlog_get_bp_fndecl_1966
++e_tty_buffer_request_room_fndecl_1967 tty_buffer_request_room fndecl 0-2 1967 NULL
++e_to_dio_submit_1977 to dio_submit 0 1977 NULL nohasharray
++e_partitionLength_partitionDesc_1977 partitionLength partitionDesc 0 1977 &e_to_dio_submit_1977
++e_tipc_sendmcast_fndecl_1981 tipc_sendmcast fndecl 4 1981 NULL
++e_i5k_find_amb_registers_fndecl_1986 i5k_find_amb_registers fndecl 2 1986 NULL
++e_acpi_dev_gpio_irq_get_fndecl_1997 acpi_dev_gpio_irq_get fndecl 0 1997 NULL
++e_total_memory_vbe_ib_1999 total_memory vbe_ib 0 1999 NULL
++e_idx_len_tg3_rx_buffer_desc_2006 idx_len tg3_rx_buffer_desc 0 2006 NULL
++e_alauda_read_block_fndecl_2008 alauda_read_block fndecl 4 2008 NULL
++e_ipv6_skip_exthdr_fndecl_2016 ipv6_skip_exthdr fndecl 0-2 2016 NULL
++e_madvise_vma_fndecl_2019 madvise_vma fndecl 3-4 2019 NULL
++e_complicated_alloc_urb_fndecl_2022 complicated_alloc_urb fndecl 3-2 2022 NULL nohasharray
++e_ec_i2c_count_message_fndecl_2022 ec_i2c_count_message fndecl 0-2 2022 &e_complicated_alloc_urb_fndecl_2022 nohasharray
++e_doc_probe_fndecl_2022 doc_probe fndecl 1 2022 &e_ec_i2c_count_message_fndecl_2022
++e_vga_vram_base_vardecl_vgacon_c_2024 vga_vram_base vardecl_vgacon.c 0 2024 NULL
++e_max_write_fuse_conn_2028 max_write fuse_conn 0 2028 NULL
++e_process_adv_report_fndecl_2030 process_adv_report fndecl 9 2030 NULL
++e_mdc_prep_dma_cyclic_fndecl_2033 mdc_prep_dma_cyclic fndecl 4-3 2033 NULL
++e_ib_umem_odp_map_dma_single_page_fndecl_2040 ib_umem_odp_map_dma_single_page fndecl 0 2040 NULL
++e_brightness_get_led_classdev_2050 brightness_get led_classdev 0 2050 NULL nohasharray
++e_gss_encrypt_xdr_buf_fndecl_2050 gss_encrypt_xdr_buf fndecl 3 2050 &e_brightness_get_led_classdev_2050
++e_set_sock_size_fndecl_2051 set_sock_size fndecl 3 2051 NULL
++e_fscrypt_zeroout_range_fndecl_2052 fscrypt_zeroout_range fndecl 3 2052 NULL
++e_xfs_da_grow_inode_int_fndecl_2058 xfs_da_grow_inode_int fndecl 3 2058 NULL
++e_wdt87xx_i2c_xfer_fndecl_2059 wdt87xx_i2c_xfer fndecl 3-5 2059 NULL nohasharray
++e_getgain_fndecl_2059 getgain fndecl 0 2059 &e_wdt87xx_i2c_xfer_fndecl_2059 nohasharray
++e_rt2x00queue_remove_l2pad_fndecl_2059 rt2x00queue_remove_l2pad fndecl 2 2059 &e_getgain_fndecl_2059
++e_receive_n_bytes_fndecl_2063 receive_n_bytes fndecl 3 2063 NULL
++e_val_bytes_regmap_format_2064 val_bytes regmap_format 0 2064 NULL
++e_usbat_flash_read_data_fndecl_2065 usbat_flash_read_data fndecl 4 2065 NULL
++e_ide_dump_status_fndecl_2068 ide_dump_status fndecl 0 2068 NULL
++e_total_copied_iscsi_segment_2071 total_copied iscsi_segment 0 2071 NULL
++e_dvb_generic_ioctl_fndecl_2081 dvb_generic_ioctl fndecl 2 2081 NULL
++e_mei_io_cb_alloc_buf_fndecl_2088 mei_io_cb_alloc_buf fndecl 2-0 2088 NULL
++e___kernel_write_fndecl_2090 __kernel_write fndecl 0-3 2090 NULL
++e_rxd_size_bdx_priv_2091 rxd_size bdx_priv 0 2091 NULL
++e_sensor_xres_em28xx_v4l2_2095 sensor_xres em28xx_v4l2 0 2095 NULL
++e_libipw_get_hdrlen_fndecl_2099 libipw_get_hdrlen fndecl 0 2099 NULL
++e_size_nfs_fattr_2101 size nfs_fattr 0 2101 NULL
++e_gtp_check_src_ms_fndecl_2109 gtp_check_src_ms fndecl 3 2109 NULL nohasharray
++e_namelen_extended_attribute_2109 namelen extended_attribute 0 2109 &e_gtp_check_src_ms_fndecl_2109
++e_dlen_nft_immediate_expr_2110 dlen nft_immediate_expr 0 2110 NULL
++e_max_pkt_payload_len_nci_conn_info_2111 max_pkt_payload_len nci_conn_info 0 2111 NULL
++e_ecryptfs_truncate_fndecl_2118 ecryptfs_truncate fndecl 2 2118 NULL
++e_untrack_pfn_fndecl_2124 untrack_pfn fndecl 3 2124 NULL
++e_gen_unique_name_fndecl_2127 gen_unique_name fndecl 0 2127 NULL
++e_hdrs_min_io_size_ubi_device_2134 hdrs_min_io_size ubi_device 0 2134 NULL
++e_offset_resp_ies_ndis_80211_assoc_info_2135 offset_resp_ies ndis_80211_assoc_info 0 2135 NULL
++e_req_lim_srp_rdma_ch_2136 req_lim srp_rdma_ch 0 2136 NULL
++e_count_skge_ring_2140 count skge_ring 0 2140 NULL
++e_xfs_do_writepage_fndecl_2144 xfs_do_writepage fndecl 0 2144 NULL nohasharray
++e_capacity_p9_fcall_2144 capacity p9_fcall 0 2144 &e_xfs_do_writepage_fndecl_2144
++e_sisusbcon_bmove_fndecl_2146 sisusbcon_bmove fndecl 7-5-6 2146 NULL
++e_multi_ios_hda_gen_spec_2147 multi_ios hda_gen_spec 0 2147 NULL
++e_synic_set_msr_fndecl_2149 synic_set_msr fndecl 3 2149 NULL
++e_mpc_new_length_vardecl_mpparse_c_2163 mpc_new_length vardecl_mpparse.c 0 2163 NULL nohasharray
++e_block_size__drive_info_struct_2163 block_size _drive_info_struct 0 2163 &e_mpc_new_length_vardecl_mpparse_c_2163
++e___kfifo_dma_out_prepare_fndecl_2165 __kfifo_dma_out_prepare fndecl 4 2165 NULL
++e_read_size_perf_event_2173 read_size perf_event 0 2173 NULL
++e_ext4_setup_next_flex_gd_fndecl_2174 ext4_setup_next_flex_gd fndecl 4 2174 NULL
++e_rate_max_audioformat_2186 rate_max audioformat 0 2186 NULL nohasharray
++e_max_txsz_ulp_iscsi_info_2186 max_txsz ulp_iscsi_info 0 2186 &e_rate_max_audioformat_2186
++e_ast_ttm_tt_create_fndecl_2190 ast_ttm_tt_create fndecl 2 2190 NULL
++e_s_blocks_per_group_ext4_sb_info_2201 s_blocks_per_group ext4_sb_info 0 2201 NULL
++e_ib_map_mr_sg_fndecl_2213 ib_map_mr_sg fndecl 0-5 2213 NULL
++e_eat_fndecl_2215 eat fndecl 1 2215 NULL nohasharray
++e_offs_v_fimc_frame_2215 offs_v fimc_frame 0 2215 &e_eat_fndecl_2215
++e_valuelen_xfs_attr_inactive_list_2216 valuelen xfs_attr_inactive_list 0 2216 NULL
++e_npads_smiapp_subdev_2220 npads smiapp_subdev 0 2220 NULL
++e_nid_of_node_fndecl_2225 nid_of_node fndecl 0 2225 NULL
++e_hdsp_hw_pointer_fndecl_2231 hdsp_hw_pointer fndecl 0 2231 NULL
++e_DH_length_eg_ctrl_info_2234 DH_length eg_ctrl_info 0 2234 NULL
++e_nfs_proc_readdir_fndecl_2240 nfs_proc_readdir fndecl 5 2240 NULL
++e_macb_change_mtu_fndecl_2242 macb_change_mtu fndecl 2 2242 NULL
++e_s_mb_group_prealloc_ext4_sb_info_2246 s_mb_group_prealloc ext4_sb_info 0 2246 NULL
++e_via_aux_read_fndecl_2247 via_aux_read fndecl 4 2247 NULL
++e_SYSC_prctl_fndecl_2255 SYSC_prctl fndecl 4-3 2255 NULL
++e_omfs_get_block_fndecl_2262 omfs_get_block fndecl 2 2262 NULL
++e_big_oops_buf_sz_vardecl_platform_c_2265 big_oops_buf_sz vardecl_platform.c 0 2265 NULL
++e___mmc_switch_fndecl_2268 __mmc_switch fndecl 0 2268 NULL
++e_lm78_isa_device_add_fndecl_2275 lm78_isa_device_add fndecl 1 2275 NULL
++e_transport_init_se_cmd_fndecl_2277 transport_init_se_cmd fndecl 4 2277 NULL nohasharray
++e_size_hi_carm_array_info_2277 size_hi carm_array_info 0 2277 &e_transport_init_se_cmd_fndecl_2277
++e_ext4_mb_init_cache_fndecl_2284 ext4_mb_init_cache fndecl 0 2284 NULL nohasharray
++e_num_touchids_mxt_data_2284 num_touchids mxt_data 0 2284 &e_ext4_mb_init_cache_fndecl_2284
++e_write_phy_fndecl_2290 write_phy fndecl 3 2290 NULL
++e_scrub_extent_fndecl_2293 scrub_extent fndecl 3-2-9-4 2293 NULL
++e_proc_sched_autogroup_set_nice_fndecl_2296 proc_sched_autogroup_set_nice fndecl 2 2296 NULL
++e_bulk_out_endpointAddr_usb_lcd_2303 bulk_out_endpointAddr usb_lcd 0 2303 NULL
++e_sensf_res_len_nfc_target_2304 sensf_res_len nfc_target 0 2304 NULL
++e_skb_do_copy_data_nocache_fndecl_2308 skb_do_copy_data_nocache fndecl 5 2308 NULL
++e_af9033_wr_regs_fndecl_2314 af9033_wr_regs fndecl 4 2314 NULL nohasharray
++e_read_pointer_st_buffer_2314 read_pointer st_buffer 0 2314 &e_af9033_wr_regs_fndecl_2314
++e_clipcount_v4l2_window_2316 clipcount v4l2_window 0 2316 NULL
++e_ieee80211_tdls_prep_mgmt_packet_fndecl_2320 ieee80211_tdls_prep_mgmt_packet fndecl 10 2320 NULL
++e_i915_gem_object_create_from_data_fndecl_2325 i915_gem_object_create_from_data fndecl 3 2325 NULL
++e_sendmsg_proto_ops_2329 sendmsg proto_ops 0 2329 NULL
++e_gfx_partition_size_amdgpu_gds_asic_info_2339 gfx_partition_size amdgpu_gds_asic_info 0 2339 NULL nohasharray
++e_wait_for_matching_downcall_fndecl_2339 wait_for_matching_downcall fndecl 0 2339 &e_gfx_partition_size_amdgpu_gds_asic_info_2339
++e_memsz_kexec_segment_2340 memsz kexec_segment 0 2340 NULL
++e_sg_copy_to_buffer_fndecl_2349 sg_copy_to_buffer fndecl 0-4 2349 NULL
++e_sk_gso_max_size_sock_2353 sk_gso_max_size sock 0 2353 NULL
++e_internal_set_rx_headroom_fndecl_2359 internal_set_rx_headroom fndecl 2 2359 NULL nohasharray
++e_cipso_v4_map_cat_enum_hton_fndecl_2359 cipso_v4_map_cat_enum_hton fndecl 0 2359 &e_internal_set_rx_headroom_fndecl_2359
++e_ReplUnitNum_nftl_uci0_2366 ReplUnitNum nftl_uci0 0 2366 NULL
++e_reserve_mem_lguest_data_2373 reserve_mem lguest_data 0 2373 NULL nohasharray
++e_count_brcmf_pno_scanresults_le_2373 count brcmf_pno_scanresults_le 0 2373 &e_reserve_mem_lguest_data_2373 nohasharray
++e_packet_size_st5481_in_2373 packet_size st5481_in 0 2373 &e_count_brcmf_pno_scanresults_le_2373
++e_status_nvme_completion_2378 status nvme_completion 0 2378 NULL
++e_cache_block_lba_msb_data_2385 cache_block_lba msb_data 0 2385 NULL
++e_tx_buffer_size_peak_usb_adapter_2386 tx_buffer_size peak_usb_adapter 0 2386 NULL nohasharray
++e_batadv_tt_local_client_is_roaming_fndecl_2386 batadv_tt_local_client_is_roaming fndecl 3 2386 &e_tx_buffer_size_peak_usb_adapter_2386
++e_check_and_mark_free_block_fndecl_2391 check_and_mark_free_block fndecl 2 2391 NULL
++e_region_size_acpi_nfit_memory_map_2397 region_size acpi_nfit_memory_map 0 2397 NULL
++e_md_autodetect_dev_fndecl_2405 md_autodetect_dev fndecl 1 2405 NULL
++e_asd_get_cmdctx_size_fndecl_2408 asd_get_cmdctx_size fndecl 0 2408 NULL
++e_pci_cardbus_resource_alignment_fndecl_2410 pci_cardbus_resource_alignment fndecl 0 2410 NULL
++e___jfs_getxattr_fndecl_2412 __jfs_getxattr fndecl 0 2412 NULL
++e_cfi_intelext_write_buffers_fndecl_2417 cfi_intelext_write_buffers fndecl 3 2417 NULL nohasharray
++e_rspq_size_qset_params_2417 rspq_size qset_params 0 2417 &e_cfi_intelext_write_buffers_fndecl_2417
++e_get_count_dm_space_map_2419 get_count dm_space_map 0 2419 NULL
++e_phys_addr_sfi_rtc_table_entry_2421 phys_addr sfi_rtc_table_entry 0 2421 NULL
++e_ocfs2_acl_from_xattr_fndecl_2423 ocfs2_acl_from_xattr fndecl 2 2423 NULL
++e_omtu_l2cap_chan_2424 omtu l2cap_chan 0 2424 NULL
++e_len_xpad_output_packet_2430 len xpad_output_packet 0 2430 NULL
++e_smtcfb_write_fndecl_2433 smtcfb_write fndecl 3 2433 NULL
++e_ib_umem_copy_from_fndecl_2435 ib_umem_copy_from fndecl 3-4 2435 NULL
++e_bcm3510_writebytes_fndecl_2436 bcm3510_writebytes fndecl 4 2436 NULL
++e_mtip_submit_request_fndecl_2437 mtip_submit_request fndecl 0 2437 NULL
++e_init_asiliant_fndecl_2438 init_asiliant fndecl 2 2438 NULL
++e_carl9170_rx_copy_data_fndecl_2443 carl9170_rx_copy_data fndecl 2 2443 NULL
++e_key_len_key_params_2447 key_len key_params 0 2447 NULL
++e_ocfs2_lock_refcount_allocators_fndecl_2461 ocfs2_lock_refcount_allocators fndecl 3-2 2461 NULL nohasharray
++e_fb_base_bochs_device_2461 fb_base bochs_device 0 2461 &e_ocfs2_lock_refcount_allocators_fndecl_2461
++e_tcp_tso_autosize_fndecl_2464 tcp_tso_autosize fndecl 0-2 2464 NULL
++e_regmap_register_patch_fndecl_2466 regmap_register_patch fndecl 3 2466 NULL
++e_maxpacket_usb_ep_2473 maxpacket usb_ep 0 2473 NULL
++e_gpio_devt_vardecl_gpiolib_c_2478 gpio_devt vardecl_gpiolib.c 0 2478 NULL
++e_ixgb_change_mtu_fndecl_2482 ixgb_change_mtu fndecl 2 2482 NULL
++e_tcp_sacktag_one_fndecl_2487 tcp_sacktag_one fndecl 7 2487 NULL
++e_ocfs2_xattr_get_nolock_fndecl_2493 ocfs2_xattr_get_nolock fndecl 0 2493 NULL
++e_btrfs_find_all_leafs_fndecl_2499 btrfs_find_all_leafs fndecl 3 2499 NULL
++e_vfs_copy_file_range_fndecl_2503 vfs_copy_file_range fndecl 0-5 2503 NULL
++e_hard_mtu_lan78xx_net_2507 hard_mtu lan78xx_net 0 2507 NULL
++e_size_arpt_replace_2509 size arpt_replace 0 2509 NULL
++e_unmap_alignment_scsi_disk_2514 unmap_alignment scsi_disk 0 2514 NULL
++e_evdev_ioctl_handler_fndecl_2522 evdev_ioctl_handler fndecl 2 2522 NULL
++e_usbpn_set_mtu_fndecl_2527 usbpn_set_mtu fndecl 2 2527 NULL
++e_vfio_unpin_pages_fndecl_2528 vfio_unpin_pages fndecl 0 2528 NULL
++e___nf_nat_mangle_tcp_packet_fndecl_2531 __nf_nat_mangle_tcp_packet fndecl 6-8 2531 NULL
++e_should_remove_suid_fndecl_2532 should_remove_suid fndecl 0 2532 NULL
++e_process_cmdtypedata_fndecl_2536 process_cmdtypedata fndecl 1 2536 NULL nohasharray
++e_l2down_create_fndecl_2536 l2down_create fndecl 4 2536 &e_process_cmdtypedata_fndecl_2536
++e_mthca_alloc_init_fndecl_2537 mthca_alloc_init fndecl 3-2 2537 NULL
++e_tcp_shifted_skb_fndecl_2543 tcp_shifted_skb fndecl 4 2543 NULL
++e___wa_seg_submit_fndecl_2547 __wa_seg_submit fndecl 0 2547 NULL
++e___kmem_cache_alias_fndecl_2551 __kmem_cache_alias fndecl 3-2 2551 NULL
++e_vm_brk_fndecl_2552 vm_brk fndecl 1-2 2552 NULL
++e_off_fuse_dirent_2561 off fuse_dirent 0 2561 NULL
++e_b_error_xfs_buf_2563 b_error xfs_buf 0 2563 NULL
++e_active_duplex_niu_link_config_2566 active_duplex niu_link_config 0 2566 NULL
++e_hdsp_external_sample_rate_fndecl_2568 hdsp_external_sample_rate fndecl 0 2568 NULL
++e_extend_brk_fndecl_2574 extend_brk fndecl 2-1 2574 NULL
++e___tun_chr_ioctl_fndecl_2575 __tun_chr_ioctl fndecl 4 2575 NULL
++e_skb_checksum_trimmed_fndecl_2576 skb_checksum_trimmed fndecl 2 2576 NULL nohasharray
++e_aio_offset_iocb_2576 aio_offset iocb 0 2576 &e_skb_checksum_trimmed_fndecl_2576
++e_ieee80211_reserve_tid_fndecl_2578 ieee80211_reserve_tid fndecl 2 2578 NULL
++e_len_patch_info_2583 len patch_info 0 2583 NULL
++e_page_cache_tree_insert_fndecl_2600 page_cache_tree_insert fndecl 0 2600 NULL
++e_maxfrsize_bfa_fcs_rport_s_2601 maxfrsize bfa_fcs_rport_s 0 2601 NULL
++e_dst_maxburst_dma_slave_config_2619 dst_maxburst dma_slave_config 0 2619 NULL
++e_len_whc_std_2626 len whc_std 0 2626 NULL
++e_ptn3460_read_bytes_fndecl_2627 ptn3460_read_bytes fndecl 4 2627 NULL
++e_snd_soc_params_to_frame_size_fndecl_2630 snd_soc_params_to_frame_size fndecl 0 2630 NULL nohasharray
++e_total_vm_mm_struct_2630 total_vm mm_struct 0 2630 &e_snd_soc_params_to_frame_size_fndecl_2630
++e_radeon_vram_location_fndecl_2634 radeon_vram_location fndecl 3 2634 NULL
++e_bop_lookup_contig_nilfs_bmap_operations_2637 bop_lookup_contig nilfs_bmap_operations 0 2637 NULL
++e_cube_rtt_scale_vardecl_tcp_cubic_c_2638 cube_rtt_scale vardecl_tcp_cubic.c 0 2638 NULL
++e_regmap_spi_gather_write_fndecl_2639 regmap_spi_gather_write fndecl 3-5 2639 NULL
++e_rx_bufshift_rtl_stats_2641 rx_bufshift rtl_stats 0 2641 NULL
++e_sys_read_fndecl_2644 sys_read fndecl 3 2644 NULL
++e_bitmap_cond_end_sync_fndecl_2649 bitmap_cond_end_sync fndecl 2 2649 NULL
++e_max_low_pfn_mapped_vardecl_2650 max_low_pfn_mapped vardecl 0 2650 NULL
++e_resync_max_mddev_2658 resync_max mddev 0 2658 NULL nohasharray
++e_pktgen_alloc_skb_fndecl_2658 pktgen_alloc_skb fndecl 3 2658 &e_resync_max_mddev_2658
++e_alloc_large_system_hash_fndecl_2660 alloc_large_system_hash fndecl 2 2660 NULL
++e_evdev_ioctl_fndecl_2672 evdev_ioctl fndecl 2 2672 NULL nohasharray
++e_dlen_hci_acl_hdr_2672 dlen hci_acl_hdr 0 2672 &e_evdev_ioctl_fndecl_2672
++e_ee_block_ext4_extent_2673 ee_block ext4_extent 0 2673 NULL
++e_bbt_erase_shift_bbm_info_2675 bbt_erase_shift bbm_info 0 2675 NULL
++e_TmpDcm_zoran_jpg_settings_2679 TmpDcm zoran_jpg_settings 0 2679 NULL
++e_result_ncp_request_reply_2680 result ncp_request_reply 0 2680 NULL
++e_mad_len_ib_mad_recv_wc_2683 mad_len ib_mad_recv_wc 0 2683 NULL
++e_logo_lines_vardecl_fbcon_c_2685 logo_lines vardecl_fbcon.c 0 2685 NULL
++e_disk_size_fndecl_2696 disk_size fndecl 0 2696 NULL
++e_pkt_finish_packet_fndecl_2701 pkt_finish_packet fndecl 2 2701 NULL
++e_zoran_write_fndecl_2711 zoran_write fndecl 3 2711 NULL nohasharray
++e_src_len_ccp_sha_engine_2711 src_len ccp_sha_engine 0 2711 &e_zoran_write_fndecl_2711
++e_u132_hcd_bulk_output_sent_fndecl_2715 u132_hcd_bulk_output_sent fndecl 4 2715 NULL
++e_mt7601u_usb_alloc_buf_fndecl_2716 mt7601u_usb_alloc_buf fndecl 2 2716 NULL
++e_bytesused_v4l2_buffer_2717 bytesused v4l2_buffer 0 2717 NULL
++e_handle_received_packet_fndecl_2730 handle_received_packet fndecl 3 2730 NULL
++e_get_res_add_size_fndecl_2740 get_res_add_size fndecl 0 2740 NULL
++e_reiserfs_mknod_fndecl_2743 reiserfs_mknod fndecl 4 2743 NULL
++e_iov_iter_get_pages_fndecl_2747 iov_iter_get_pages fndecl 0-4-3 2747 NULL
++e_of_flat_dt_translate_address_fndecl_2750 of_flat_dt_translate_address fndecl 0 2750 NULL
++e_mem_vardecl_applicom_c_2753 mem vardecl_applicom.c 0 2753 NULL
++e___get_dev_cell_fndecl_2760 __get_dev_cell fndecl 1 2760 NULL nohasharray
++e_cache_write_procfs_fndecl_2760 cache_write_procfs fndecl 3 2760 &e___get_dev_cell_fndecl_2760 nohasharray
++e_rfcomm_send_test_fndecl_2760 rfcomm_send_test fndecl 4 2760 &e_cache_write_procfs_fndecl_2760
++e_size_rx_module_layout_2762 size_rx module_layout 0 2762 NULL
++e_ecryptfs_write_fndecl_2763 ecryptfs_write fndecl 4-3 2763 NULL
++e_batadv_check_unicast_packet_fndecl_2775 batadv_check_unicast_packet fndecl 3 2775 NULL nohasharray
++e_fw_mon_size_iwl_trans_pcie_2775 fw_mon_size iwl_trans_pcie 0 2775 &e_batadv_check_unicast_packet_fndecl_2775
++e_num_bo_handles_drm_virtgpu_execbuffer_2779 num_bo_handles drm_virtgpu_execbuffer 0 2779 NULL
++e_uhci_result_common_fndecl_2788 uhci_result_common fndecl 0 2788 NULL
++e_pkcs7_sig_note_skid_fndecl_2795 pkcs7_sig_note_skid fndecl 5 2795 NULL
++e_iobase_vardecl_l440gx_c_2797 iobase vardecl_l440gx.c 0 2797 NULL
++e_sb_inodelog_xfs_sb_2799 sb_inodelog xfs_sb 0 2799 NULL
++e_st21nfca_hci_se_io_fndecl_2800 st21nfca_hci_se_io fndecl 4 2800 NULL nohasharray
++e_mp_find_ioapic_pin_fndecl_2800 mp_find_ioapic_pin fndecl 0-2 2800 &e_st21nfca_hci_se_io_fndecl_2800
++e_put_chars_fndecl_2801 put_chars fndecl 3 2801 NULL
++e_bytesused_vb2_plane_2804 bytesused vb2_plane 0 2804 NULL
++e_usb_stor_set_xfer_buf_fndecl_2809 usb_stor_set_xfer_buf fndecl 2 2809 NULL
++e_num_active_queues_i40evf_adapter_2813 num_active_queues i40evf_adapter 0 2813 NULL
++e_num_cnic_queues_bnx2x_2816 num_cnic_queues bnx2x 0 2816 NULL
++e_lo_offset_loop_device_2817 lo_offset loop_device 0 2817 NULL
++e__sp2d_min_pg_fndecl_2819 _sp2d_min_pg fndecl 0 2819 NULL
++e_rtsx_pci_dma_map_sg_fndecl_2820 rtsx_pci_dma_map_sg fndecl 0 2820 NULL
++e_VerDcm_zoran_jpg_settings_2823 VerDcm zoran_jpg_settings 0 2823 NULL
++e_nbufs_dm_verity_fec_io_2825 nbufs dm_verity_fec_io 0 2825 NULL
++e_btrfs_get_16_fndecl_2836 btrfs_get_16 fndecl 0 2836 NULL
++e_max_data_size_ath6kl_bmi_2842 max_data_size ath6kl_bmi 0 2842 NULL
++e_pax_mirror_anon_pte_fndecl_2844 pax_mirror_anon_pte fndecl 2 2844 NULL
++e_dccm2_len_iwl_cfg_2852 dccm2_len iwl_cfg 0 2852 NULL
++e_phys_size_hfs_inode_info_2856 phys_size hfs_inode_info 0 2856 NULL nohasharray
++e_bit_offset_nvmem_cell_2856 bit_offset nvmem_cell 0 2856 &e_phys_size_hfs_inode_info_2856
++e_q_depth_nvme_dev_2866 q_depth nvme_dev 0 2866 NULL
++e_max_sst_algo_control_2868 max sst_algo_control 0 2868 NULL
++e_secondary_bin_size_drm_mga_dma_bootstrap_2869 secondary_bin_size drm_mga_dma_bootstrap 0 2869 NULL nohasharray
++e_sys_recvfrom_fndecl_2869 sys_recvfrom fndecl 3 2869 &e_secondary_bin_size_drm_mga_dma_bootstrap_2869
++e_cmodio_id_vardecl_janz_cmodio_c_2872 cmodio_id vardecl_janz-cmodio.c 0 2872 NULL
++e_drm_gem_object_init_fndecl_2882 drm_gem_object_init fndecl 3 2882 NULL nohasharray
++e_sg_init_one_fndecl_2882 sg_init_one fndecl 3 2882 &e_drm_gem_object_init_fndecl_2882
++e_qlcnic_sriov_pf_enable_fndecl_2884 qlcnic_sriov_pf_enable fndecl 2 2884 NULL
++e_len_falloc_range_2886 len falloc_range 0 2886 NULL
++e_n_notifiers_vmci_ctx_2889 n_notifiers vmci_ctx 0 2889 NULL
++e_make_status_bytes_fndecl_2891 make_status_bytes fndecl 0-4-3-2-1 2891 NULL
++e_pca953x_setup_gpio_fndecl_2892 pca953x_setup_gpio fndecl 2 2892 NULL nohasharray
++e_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892 ieee80211_tdls_add_chan_switch_resp_ies fndecl 7 2892 &e_pca953x_setup_gpio_fndecl_2892
++e_set_max_cos_est_fndecl_2893 set_max_cos_est fndecl 0 2893 NULL
++e_xfs_bmapi_reserve_delalloc_fndecl_2901 xfs_bmapi_reserve_delalloc fndecl 2 2901 NULL nohasharray
++e_nf_ct_seq_adjust_fndecl_2901 nf_ct_seq_adjust fndecl 4 2901 &e_xfs_bmapi_reserve_delalloc_fndecl_2901
++e_mem_rw_fndecl_2902 mem_rw fndecl 3 2902 NULL
++e_chroma_size_s5p_mfc_ctx_2911 chroma_size s5p_mfc_ctx 0 2911 NULL
++e_length_usbhs_pkt_2912 length usbhs_pkt 0 2912 NULL
++e_tda1004x_do_upload_fndecl_2916 tda1004x_do_upload fndecl 3 2916 NULL
++e_discard_swap_cluster_fndecl_2926 discard_swap_cluster fndecl 3-2 2926 NULL
++e_bytes_left_nfs_direct_req_2928 bytes_left nfs_direct_req 0 2928 NULL
++e_rx_num_pgs_tp_params_2929 rx_num_pgs tp_params 0 2929 NULL
++e_tx_cnt_isac_2931 tx_cnt isac 0 2931 NULL nohasharray
++e_pno_blkpg_partition_2931 pno blkpg_partition 0 2931 &e_tx_cnt_isac_2931
++e_fnic_fc_trace_max_pages_vardecl_2932 fnic_fc_trace_max_pages vardecl 0 2932 NULL
++e_tx_ring_count_ixgbevf_adapter_2933 tx_ring_count ixgbevf_adapter 0 2933 NULL
++e_alloc_tty_struct_fndecl_2939 alloc_tty_struct fndecl 2 2939 NULL
++e_max_ndp_size_cdc_ncm_ctx_2942 max_ndp_size cdc_ncm_ctx 0 2942 NULL
++e_sys_remap_file_pages_fndecl_2943 sys_remap_file_pages fndecl 2-1-4 2943 NULL
++e_devm_ioremap_wc_fndecl_2945 devm_ioremap_wc fndecl 3-2 2945 NULL
++e_HorDcm_zoran_jpg_settings_2947 HorDcm zoran_jpg_settings 0 2947 NULL nohasharray
++e_tx_idx_dchannel_2947 tx_idx dchannel 0 2947 &e_HorDcm_zoran_jpg_settings_2947
++e_cydata_ofs_cyttsp4_sysinfo_ofs_2952 cydata_ofs cyttsp4_sysinfo_ofs 0 2952 NULL
++e_alloc_blksz_hfsplus_sb_info_2955 alloc_blksz hfsplus_sb_info 0 2955 NULL
++e___kfifo_alloc_fndecl_2958 __kfifo_alloc fndecl 3 2958 NULL nohasharray
++e_vmci_qp_broker_map_fndecl_2958 vmci_qp_broker_map fndecl 3 2958 &e___kfifo_alloc_fndecl_2958
++e_info_len_ib_ucm_event_2963 info_len ib_ucm_event 0 2963 NULL
++e_s_ipg_ufs_sb_private_info_2965 s_ipg ufs_sb_private_info 0 2965 NULL
++e_do_tcp_sendpages_fndecl_2968 do_tcp_sendpages fndecl 4-3 2968 NULL
++e_pn533_dep_link_up_fndecl_2969 pn533_dep_link_up fndecl 5 2969 NULL
++e_align_ip_set_ext_type_2975 align ip_set_ext_type 0 2975 NULL
++e_mrp_pdu_append_vecattr_hdr_fndecl_2982 mrp_pdu_append_vecattr_hdr fndecl 3 2982 NULL
++e_origin_write_extent_fndecl_2983 origin_write_extent fndecl 2 2983 NULL
++e_reiserfs_cut_from_item_fndecl_2988 reiserfs_cut_from_item fndecl 6-0 2988 NULL nohasharray
++e_h_align_bdisp_fmt_2988 h_align bdisp_fmt 0 2988 &e_reiserfs_cut_from_item_fndecl_2988
++e_iscsi_start_cid_cnic_local_2995 iscsi_start_cid cnic_local 0 2995 NULL
++e_hid_sensor_custom_read_fndecl_2998 hid_sensor_custom_read fndecl 3 2998 NULL
++e_offset_fuse_notify_retrieve_out_2999 offset fuse_notify_retrieve_out 0 2999 NULL
++e_hdr_len_iscsi_task_3003 hdr_len iscsi_task 0 3003 NULL
++e_do_sync_mmap_readahead_fndecl_3008 do_sync_mmap_readahead fndecl 4 3008 NULL
++e_id_rio_mport_3010 id rio_mport 0 3010 NULL
++e_rdma_build_arg_xdr_fndecl_3012 rdma_build_arg_xdr fndecl 3 3012 NULL
++e_mem_write_fndecl_3019 mem_write fndecl 3 3019 NULL
++e_bpw_len_pch_spi_data_3026 bpw_len pch_spi_data 0 3026 NULL
++e_de_rec_len_gfs2_dirent_3029 de_rec_len gfs2_dirent 0 3029 NULL
++e_dual_channel_active_fndecl_3033 dual_channel_active fndecl 0 3033 NULL
++e_num_hwfns_qed_dev_3034 num_hwfns qed_dev 0 3034 NULL
++e_xfs_bulkstat_grab_ichunk_fndecl_3041 xfs_bulkstat_grab_ichunk fndecl 2 3041 NULL
++e_ping_common_sendmsg_fndecl_3046 ping_common_sendmsg fndecl 5 3046 NULL
++e_skb_seq_read_fndecl_3054 skb_seq_read fndecl 0-1 3054 NULL
++e_fsnotify_parent_fndecl_3056 fsnotify_parent fndecl 0 3056 NULL nohasharray
++e_size_ecryptfs_cache_info_3056 size ecryptfs_cache_info 0 3056 &e_fsnotify_parent_fndecl_3056
++e_prepare_to_wait_event_fndecl_3060 prepare_to_wait_event fndecl 0 3060 NULL
++e_ntfs_map_runlist_fndecl_3068 ntfs_map_runlist fndecl 2 3068 NULL nohasharray
++e_dst_addr_width_dma_slave_config_3068 dst_addr_width dma_slave_config 0 3068 &e_ntfs_map_runlist_fndecl_3068
++e_punch_hole_fndecl_3070 punch_hole fndecl 2-3 3070 NULL
++e_hbuf_max_len_mei_hw_ops_3071 hbuf_max_len mei_hw_ops 0 3071 NULL
++e_height_au0828_dev_3073 height au0828_dev 0 3073 NULL
++e_sg_addr_size__MPT_ADAPTER_3079 sg_addr_size _MPT_ADAPTER 0 3079 NULL
++e_mnt_clone_write_fndecl_3080 mnt_clone_write fndecl 0 3080 NULL
++e_ubi_io_read_fndecl_3084 ubi_io_read fndecl 0 3084 NULL
++e_cluster_next_swap_info_struct_3087 cluster_next swap_info_struct 0 3087 NULL
++e_total_h_mt9t031_3088 total_h mt9t031 0 3088 NULL
++e_fb_prepare_logo_fndecl_3092 fb_prepare_logo fndecl 0 3092 NULL
++e_loopstart_soundfont_sample_info_3093 loopstart soundfont_sample_info 0 3093 NULL
++e_gtt_mappable_entries__intel_private_3099 gtt_mappable_entries _intel_private 0 3099 NULL
++e_vol_cdev_direct_write_fndecl_3100 vol_cdev_direct_write fndecl 3 3100 NULL
++e_mt76_init_sband_fndecl_3112 mt76_init_sband fndecl 4 3112 NULL
++e_fb_alloc_cmap_gfp_fndecl_3115 fb_alloc_cmap_gfp fndecl 2 3115 NULL
++e_ipip6_tunnel_change_mtu_fndecl_3119 ipip6_tunnel_change_mtu fndecl 2 3119 NULL nohasharray
++e_blk_rq_map_user_fndecl_3119 blk_rq_map_user fndecl 5 3119 &e_ipip6_tunnel_change_mtu_fndecl_3119 nohasharray
++e_controller_function_ms_boot_attr_info_3119 controller_function ms_boot_attr_info 0 3119 &e_blk_rq_map_user_fndecl_3119
++e_status_whc_qhead_3133 status whc_qhead 0 3133 NULL
++e_ext4_block_zero_page_range_fndecl_3135 ext4_block_zero_page_range fndecl 3-4 3135 NULL
++e_strndup_user_fndecl_3136 strndup_user fndecl 2 3136 NULL
++e_brcmf_usb_dlstart_fndecl_3138 brcmf_usb_dlstart fndecl 3 3138 NULL
++e_fotg210_urb_done_fndecl_3144 fotg210_urb_done fndecl 3 3144 NULL
++e_tx_room_keyspan_pda_private_3146 tx_room keyspan_pda_private 0 3146 NULL
++e_nilfs_scan_dsync_log_fndecl_3148 nilfs_scan_dsync_log fndecl 2 3148 NULL nohasharray
++e_usbhs_read_fndecl_3148 usbhs_read fndecl 0 3148 &e_nilfs_scan_dsync_log_fndecl_3148 nohasharray
++e_fragment_length_zd_usb_rx_3148 fragment_length zd_usb_rx 0 3148 &e_usbhs_read_fndecl_3148
++e_iseg_base_mlx5_core_dev_3151 iseg_base mlx5_core_dev 0 3151 NULL
++e_udf_get_last_session_fndecl_3152 udf_get_last_session fndecl 0 3152 NULL
++e_mmio_size_drm_mga_private_3160 mmio_size drm_mga_private 0 3160 NULL
++e_dmar_readq_fndecl_3162 dmar_readq fndecl 0 3162 NULL nohasharray
++e_prealloc_size_ich_pcm_table_3162 prealloc_size ich_pcm_table 0 3162 &e_dmar_readq_fndecl_3162 nohasharray
++e_sys_sendto_fndecl_3162 sys_sendto fndecl 6-3 3162 &e_prealloc_size_ich_pcm_table_3162
++e_send_ext_msg_udp_fndecl_3163 send_ext_msg_udp fndecl 3 3163 NULL
++e_cfv_alloc_and_copy_skb_fndecl_3167 cfv_alloc_and_copy_skb fndecl 4 3167 NULL
++e_bytes_per_pixel_vivid_dev_3174 bytes_per_pixel vivid_dev 0 3174 NULL
++e_fill_elf_header_fndecl_3182 fill_elf_header fndecl 2 3182 NULL
++e_keyspan_write_fndecl_3189 keyspan_write fndecl 4 3189 NULL
++e_min_io_size_ubi_device_3191 min_io_size ubi_device 0 3191 NULL nohasharray
++e_uvc_alloc_entity_fndecl_3191 uvc_alloc_entity fndecl 3 3191 &e_min_io_size_ubi_device_3191
++e_mspi_apply_cpu_mode_quirks_fndecl_3197 mspi_apply_cpu_mode_quirks fndecl 0-4 3197 NULL
++e_lcd_hblank_len_atyfb_par_3198 lcd_hblank_len atyfb_par 0 3198 NULL nohasharray
++e_p9_tag_alloc_fndecl_3198 p9_tag_alloc fndecl 3 3198 &e_lcd_hblank_len_atyfb_par_3198
++e_import_iovec_fndecl_3201 import_iovec fndecl 3 3201 NULL
++e_chunk_size_mdu_array_info_s_3205 chunk_size mdu_array_info_s 0 3205 NULL
++e_sisusb_send_packet_fndecl_3208 sisusb_send_packet fndecl 2 3208 NULL
++e___led_brightness_to_intensity_fndecl_3214 __led_brightness_to_intensity fndecl 0-2 3214 NULL
++e_snd_pcm_capture_avail_fndecl_3216 snd_pcm_capture_avail fndecl 0 3216 NULL nohasharray
++e_usbvision_set_output_fndecl_3216 usbvision_set_output fndecl 3-2 3216 &e_snd_pcm_capture_avail_fndecl_3216
++e_cw1200_sdio_memcpy_fromio_fndecl_3217 cw1200_sdio_memcpy_fromio fndecl 4 3217 NULL nohasharray
++e_rx_buffer_len_ixgb_adapter_3217 rx_buffer_len ixgb_adapter 0 3217 &e_cw1200_sdio_memcpy_fromio_fndecl_3217
++e_bfad_iocmd_cee_get_stats_fndecl_3228 bfad_iocmd_cee_get_stats fndecl 0 3228 NULL
++e_mad_size_ib_mad_private_3230 mad_size ib_mad_private 0 3230 NULL
++e_ocfs2_del_inode_from_orphan_fndecl_3232 ocfs2_del_inode_from_orphan fndecl 5 3232 NULL
++e_sq_num_entries_c4iw_qp_attributes_3234 sq_num_entries c4iw_qp_attributes 0 3234 NULL
++e_lbs_rdbbp_write_fndecl_3237 lbs_rdbbp_write fndecl 3 3237 NULL
++e_inlen_ib_udata_3242 inlen ib_udata 0 3242 NULL
++e_uniforms_size_drm_vc4_submit_cl_3245 uniforms_size drm_vc4_submit_cl 0 3245 NULL
++e_max_wqe_ocrdma_dev_attr_3246 max_wqe ocrdma_dev_attr 0 3246 NULL
++e_shmem_kernel_file_setup_fndecl_3251 shmem_kernel_file_setup fndecl 2 3251 NULL
++e_vfio_msi_enable_fndecl_3257 vfio_msi_enable fndecl 2 3257 NULL
++e_sbc_check_prot_fndecl_3258 sbc_check_prot fndecl 4 3258 NULL
++e_taglen_cb_compound_hdr_res_3259 taglen cb_compound_hdr_res 0 3259 NULL
++e_imx_pcm_dma_init_fndecl_3260 imx_pcm_dma_init fndecl 2 3260 NULL
++e_eir_append_data_fndecl_3266 eir_append_data fndecl 0-5-2 3266 NULL
++e_vub300_response_error_fndecl_3270 vub300_response_error fndecl 0 3270 NULL
++e_altera_set_ir_post_fndecl_3271 altera_set_ir_post fndecl 2 3271 NULL
++e_check_data_rlimit_fndecl_3275 check_data_rlimit fndecl 5-4-3-2 3275 NULL
++e_error_mmc_data_3279 error mmc_data 0 3279 NULL
++e_doff_tcphdr_3280 doff tcphdr 0 3280 NULL nohasharray
++e_ds1305_nvram_read_fndecl_3280 ds1305_nvram_read fndecl 6 3280 &e_doff_tcphdr_3280
++e_ms_write_bytes_fndecl_3282 ms_write_bytes fndecl 0 3282 NULL
++e_stolen_base_drm_psb_private_3285 stolen_base drm_psb_private 0 3285 NULL nohasharray
++e_cfg80211_rx_assoc_resp_fndecl_3285 cfg80211_rx_assoc_resp fndecl 4 3285 &e_stolen_base_drm_psb_private_3285
++e_htable_bits_fndecl_3286 htable_bits fndecl 0 3286 NULL
++e_read_configfs_bin_attribute_3290 read configfs_bin_attribute 0 3290 NULL
++e_check_eofblocks_fl_fndecl_3293 check_eofblocks_fl fndecl 0 3293 NULL
++e_iov_count_iscsi_data_count_3301 iov_count iscsi_data_count 0 3301 NULL
++e_rds_page_remainder_alloc_fndecl_3303 rds_page_remainder_alloc fndecl 2 3303 NULL
++e_alg_setsockopt_fndecl_3306 alg_setsockopt fndecl 5 3306 NULL
++e_transfer_size_zr364xx_pipeinfo_3312 transfer_size zr364xx_pipeinfo 0 3312 NULL
++e_snd_rme9652_playback_copy_fndecl_3321 snd_rme9652_playback_copy fndecl 5 3321 NULL
++e_bulk_out_ep_irda_usb_cb_3322 bulk_out_ep irda_usb_cb 0 3322 NULL
++e_length_ima_digest_data_3329 length ima_digest_data 0 3329 NULL
++e_i_xattr_loc_ocfs2_dinode_3335 i_xattr_loc ocfs2_dinode 0 3335 NULL
++e_amdtp_dot_set_parameters_fndecl_3341 amdtp_dot_set_parameters fndecl 3 3341 NULL
++e_pkt_setup_dev_fndecl_3344 pkt_setup_dev fndecl 1 3344 NULL
++e_base_drm_agp_head_3348 base drm_agp_head 0 3348 NULL nohasharray
++e_curchunk_hdrlen_drm_dp_sideband_msg_rx_3348 curchunk_hdrlen drm_dp_sideband_msg_rx 0 3348 &e_base_drm_agp_head_3348
++e_ext4_finish_convert_inline_dir_fndecl_3350 ext4_finish_convert_inline_dir fndecl 5 3350 NULL
++e_pgt_bits_nvkm_mmu_func_3353 pgt_bits nvkm_mmu_func 0 3353 NULL nohasharray
++e_max_bands_multiq_sched_data_3353 max_bands multiq_sched_data 0 3353 &e_pgt_bits_nvkm_mmu_func_3353
++e_sysctl_nr_open_vardecl_3355 sysctl_nr_open vardecl 0 3355 NULL
++e_logfs_uncompress_fndecl_3359 logfs_uncompress fndecl 3-4 3359 NULL
++e___process_changed_new_xattr_fndecl_3360 __process_changed_new_xattr fndecl 6-4 3360 NULL
++e_essidlen_zd1201_3366 essidlen zd1201 0 3366 NULL
++e_frame_size_stk_camera_3367 frame_size stk_camera 0 3367 NULL
++e_xfs_dir3_leaf_get_buf_fndecl_3380 xfs_dir3_leaf_get_buf fndecl 2 3380 NULL
++e_phys_hw_bank_3381 phys hw_bank 0 3381 NULL
++e_nvdimm_set_config_data_fndecl_3384 nvdimm_set_config_data fndecl 4 3384 NULL
++e_pgoff_vm_fault_3385 pgoff vm_fault 0 3385 NULL nohasharray
++e_drbd_bm_resize_fndecl_3385 drbd_bm_resize fndecl 2 3385 &e_pgoff_vm_fault_3385
++e_xfs_iext_realloc_direct_fndecl_3386 xfs_iext_realloc_direct fndecl 2 3386 NULL
++e_beacon_ie_len_wmi_connect_event_3388 beacon_ie_len wmi_connect_event 0 3388 NULL nohasharray
++e_rport_priv_size_fc_lport_3388 rport_priv_size fc_lport 0 3388 &e_beacon_ie_len_wmi_connect_event_3388
++e_xz_dec_lzma2_reset_fndecl_3390 xz_dec_lzma2_reset fndecl 2 3390 NULL
++e_st_nci_hci_dm_get_data_fndecl_3395 st_nci_hci_dm_get_data fndecl 3 3395 NULL nohasharray
++e_max_frame_size_nes_vnic_3395 max_frame_size nes_vnic 0 3395 &e_st_nci_hci_dm_get_data_fndecl_3395
++e_xfs_bmap_isaeof_fndecl_3401 xfs_bmap_isaeof fndecl 0 3401 NULL
++e_pos_in_item_treepath_3409 pos_in_item treepath 0 3409 NULL
++e_minLen_group_data_3411 minLen group_data 0 3411 NULL
++e_scsi_report_opcode_fndecl_3412 scsi_report_opcode fndecl 3 3412 NULL
++e_mtu_tipc_link_entry_3415 mtu tipc_link_entry 0 3415 NULL
++e_venus_create_fndecl_3416 venus_create fndecl 4 3416 NULL
++e_opts1_RxDesc_3421 opts1 RxDesc 0 3421 NULL
++e_rionet_change_mtu_fndecl_3422 rionet_change_mtu fndecl 2 3422 NULL nohasharray
++e___gunzip_fndecl_3422 __gunzip fndecl 2-6 3422 &e_rionet_change_mtu_fndecl_3422
++e_bpp_vpfe_device_3423 bpp vpfe_device 0 3423 NULL
++e_rlim_cur_rlimit_3431 rlim_cur rlimit 0 3431 NULL nohasharray
++e_set_secure_conn_fndecl_3431 set_secure_conn fndecl 4 3431 &e_rlim_cur_rlimit_3431
++e_gtp_check_src_ms_ipv4_fndecl_3432 gtp_check_src_ms_ipv4 fndecl 3 3432 NULL
++e_gfs2_meta_read_fndecl_3434 gfs2_meta_read fndecl 2 3434 NULL
++e_udf_getblk_fndecl_3436 udf_getblk fndecl 2 3436 NULL
++e_len_nft_bitwise_3441 len nft_bitwise 0 3441 NULL
++e_uc_inSize_upc_req_3444 uc_inSize upc_req 0 3444 NULL
++e_cifs_read_page_from_socket_fndecl_3452 cifs_read_page_from_socket fndecl 0-3 3452 NULL
++e_rpipe_check_aim_fndecl_3456 rpipe_check_aim fndecl 0 3456 NULL
++e_s_itb_per_group_ext4_sb_info_3459 s_itb_per_group ext4_sb_info 0 3459 NULL
++e_adfs_dir_read_fndecl_3464 adfs_dir_read fndecl 2 3464 NULL
++e_intel_th_populate_fndecl_3473 intel_th_populate fndecl 4 3473 NULL
++e_ngpios_chv_community_3476 ngpios chv_community 0 3476 NULL
++e_namelen_xfs_dir2_sf_entry_3481 namelen xfs_dir2_sf_entry 0 3481 NULL
++e_zlib_tr_flush_block_fndecl_3485 zlib_tr_flush_block fndecl 3 3485 NULL
++e_xfer_len_nvme_trans_io_cdb_3486 xfer_len nvme_trans_io_cdb 0 3486 NULL
++e_fill_node_footer_fndecl_3490 fill_node_footer fndecl 4-2-3 3490 NULL
++e_from_dio_submit_3494 from dio_submit 0 3494 NULL
++e_snd_pcm_oss_prepare_fndecl_3506 snd_pcm_oss_prepare fndecl 0 3506 NULL
++e_kfifo_copy_to_user_fndecl_3509 kfifo_copy_to_user fndecl 0-4-3 3509 NULL
++e_statesize_hash_alg_common_3517 statesize hash_alg_common 0 3517 NULL
++e_cipso_v4_gentag_rng_fndecl_3532 cipso_v4_gentag_rng fndecl 0 3532 NULL
++e_cl_out_max_entry_size_mvumi_hs_page1_3540 cl_out_max_entry_size mvumi_hs_page1 0 3540 NULL
++e_snd_hdsp_playback_copy_fndecl_3543 snd_hdsp_playback_copy fndecl 5 3543 NULL
++e_reserve_top_address_fndecl_3544 reserve_top_address fndecl 1 3544 NULL
++e_dvb_dmxdev_buffer_read_fndecl_3545 dvb_dmxdev_buffer_read fndecl 0-4 3545 NULL
++e_window_size_deflate_state_3549 window_size deflate_state 0 3549 NULL
++e_btrfs_node_blockptr_fndecl_3550 btrfs_node_blockptr fndecl 0 3550 NULL nohasharray
++e_mult_count_ide_drive_s_3550 mult_count ide_drive_s 0 3550 &e_btrfs_node_blockptr_fndecl_3550
++e_ocfs2_read_xattr_bucket_fndecl_3553 ocfs2_read_xattr_bucket fndecl 0-2 3553 NULL
++e_sg_copy_from_buffer_fndecl_3557 sg_copy_from_buffer fndecl 0-4 3557 NULL
++e_mt2063_write_fndecl_3567 mt2063_write fndecl 4 3567 NULL
++e_page_cache_sync_readahead_fndecl_3569 page_cache_sync_readahead fndecl 4 3569 NULL nohasharray
++e_nr_clk_ids_samsung_cmu_info_3569 nr_clk_ids samsung_cmu_info 0 3569 &e_page_cache_sync_readahead_fndecl_3569
++e_encode_diropargs3_fndecl_3574 encode_diropargs3 fndecl 4 3574 NULL
++e_template_size_qla27xx_fwdt_template_3576 template_size qla27xx_fwdt_template 0 3576 NULL
++e_len_capiloaddatapart_3577 len capiloaddatapart 0 3577 NULL
++e_pcpu_page_first_chunk_fndecl_3579 pcpu_page_first_chunk fndecl 1 3579 NULL
++e_pkcs7_view_content_fndecl_3589 pkcs7_view_content fndecl 3 3589 NULL nohasharray
++e_ddr_av_base_mthca_av_table_3589 ddr_av_base mthca_av_table 0 3589 &e_pkcs7_view_content_fndecl_3589
++e_ip_vs_icmp_xmit_fndecl_3590 ip_vs_icmp_xmit fndecl 4 3590 NULL nohasharray
++e_npads_xtpg_device_3590 npads xtpg_device 0 3590 &e_ip_vs_icmp_xmit_fndecl_3590
++e_get_tmp_page_fndecl_3591 get_tmp_page fndecl 2 3591 NULL
++e_buf_size_i1480_3593 buf_size i1480 0 3593 NULL
++e_xfs_alloc_ag_vextent_size_fndecl_3599 xfs_alloc_ag_vextent_size fndecl 0 3599 NULL nohasharray
++e_brcmf_chip_tcm_rambase_fndecl_3599 brcmf_chip_tcm_rambase fndecl 0 3599 &e_xfs_alloc_ag_vextent_size_fndecl_3599
++e_e820_update_range_fndecl_3600 e820_update_range fndecl 1-2 3600 NULL
++e_cdns_uart_get_port_fndecl_3601 cdns_uart_get_port fndecl 1 3601 NULL
++e_xdr_extend_head_fndecl_3606 xdr_extend_head fndecl 3 3606 NULL
++e_engine_len_viafb_dev_3608 engine_len viafb_dev 0 3608 NULL
++e_total_buf_len_fndecl_3609 total_buf_len fndecl 0 3609 NULL
++e_set_rxd_buffer_size_fndecl_3617 set_rxd_buffer_size fndecl 3 3617 NULL
++e_ss_out_channels_hdsp_3619 ss_out_channels hdsp 0 3619 NULL
++e_ns_blocksize_the_nilfs_3624 ns_blocksize the_nilfs 0 3624 NULL nohasharray
++e_bytes_btrfs_dio_private_3624 bytes btrfs_dio_private 0 3624 &e_ns_blocksize_the_nilfs_3624
++e_tail_timestamp_event_queue_3626 tail timestamp_event_queue 0 3626 NULL
++e_cbuf_eat_fndecl_3631 cbuf_eat fndecl 2 3631 NULL
++e_cfg80211_inform_bss_frame_data_fndecl_3632 cfg80211_inform_bss_frame_data fndecl 4 3632 NULL
++e_out_words_ib_uverbs_cmd_hdr_3637 out_words ib_uverbs_cmd_hdr 0 3637 NULL
++e_xfs_attr3_leaf_freextent_fndecl_3639 xfs_attr3_leaf_freextent fndecl 4-3 3639 NULL nohasharray
++e_vmci_transport_queue_pair_alloc_fndecl_3639 vmci_transport_queue_pair_alloc fndecl 4-3 3639 &e_xfs_attr3_leaf_freextent_fndecl_3639
++e_count_phm_clock_voltage_dependency_table_3642 count phm_clock_voltage_dependency_table 0 3642 NULL
++e_s_desc_size_ext4_sb_info_3652 s_desc_size ext4_sb_info 0 3652 NULL
++e_pci_id_imc_uncore_pci_dev_3656 pci_id imc_uncore_pci_dev 0 3656 NULL
++e_im_len_xfs_imap_3661 im_len xfs_imap 0 3661 NULL nohasharray
++e_ext2_get_blocks_fndecl_3661 ext2_get_blocks fndecl 0 3661 &e_im_len_xfs_imap_3661
++e_arch_reserve_mem_area_fndecl_3662 arch_reserve_mem_area fndecl 2 3662 NULL
++e_aper_base_amdgpu_mc_3664 aper_base amdgpu_mc 0 3664 NULL
++e_get_loop_size_fndecl_3667 get_loop_size fndecl 0 3667 NULL nohasharray
++e_child_cnt_ubifs_znode_3667 child_cnt ubifs_znode 0 3667 &e_get_loop_size_fndecl_3667
++e_bio_find_or_create_slab_fndecl_3671 bio_find_or_create_slab fndecl 1 3671 NULL
++e_pcpu_chunk_struct_size_vardecl_percpu_c_3673 pcpu_chunk_struct_size vardecl_percpu.c 0 3673 NULL
++e_ath10k_wmi_tlv_op_gen_vdev_sta_uapsd_fndecl_3692 ath10k_wmi_tlv_op_gen_vdev_sta_uapsd fndecl 5 3692 NULL
++e_vmw_cmdbuf_space_pool_fndecl_3702 vmw_cmdbuf_space_pool fndecl 3 3702 NULL nohasharray
++e_get_urb_error_fndecl_3702 get_urb_error fndecl 0 3702 &e_vmw_cmdbuf_space_pool_fndecl_3702
++e_ceph_msg_data_add_pages_fndecl_3704 ceph_msg_data_add_pages fndecl 3 3704 NULL
++e_vlan_netdev_private_3705 vlan netdev_private 0 3705 NULL
++e_len_sctp_auth_bytes_3715 len sctp_auth_bytes 0 3715 NULL
++e_byte_len_ib_wc_3716 byte_len ib_wc 0 3716 NULL
++e_dvb_create_media_entity_fndecl_3720 dvb_create_media_entity fndecl 3 3720 NULL
++e_test_find_delalloc_fndecl_3723 test_find_delalloc fndecl 1 3723 NULL
++e_len_amp_assoc_3724 len amp_assoc 0 3724 NULL
++e___v4l2_ctrl_modify_range_fndecl_3726 __v4l2_ctrl_modify_range fndecl 3-2-5 3726 NULL
++e_mcs_wrap_fir_skb_fndecl_3729 mcs_wrap_fir_skb fndecl 0 3729 NULL nohasharray
++e_split_leaf_fndecl_3729 split_leaf fndecl 0 3729 &e_mcs_wrap_fir_skb_fndecl_3729
++e_video_ioctl2_fndecl_3735 video_ioctl2 fndecl 2 3735 NULL
++e_tcp_bound_to_half_wnd_fndecl_3750 tcp_bound_to_half_wnd fndecl 0-2 3750 NULL
++e_nr_reserved_tags_blk_mq_tags_3751 nr_reserved_tags blk_mq_tags 0 3751 NULL
++e_e_value_size_f2fs_xattr_entry_3755 e_value_size f2fs_xattr_entry 0 3755 NULL
++e_vchnl_vf_send_del_hmc_objs_req_fndecl_3761 vchnl_vf_send_del_hmc_objs_req fndecl 5 3761 NULL
++e_mem_start_ifmap_3766 mem_start ifmap 0 3766 NULL
++e_private_value_sbmix_elem_3773 private_value sbmix_elem 0 3773 NULL
++e_size_m48t35_priv_3775 size m48t35_priv 0 3775 NULL
++e_ag_shift_befs_sb_info_3778 ag_shift befs_sb_info 0 3778 NULL
++e_fl_starve_thres_sge_3779 fl_starve_thres sge 0 3779 NULL
++e_next_fn_fndecl_3785 next_fn fndecl 0-3 3785 NULL
++e_cxgbi_ppm_init_fndecl_3787 cxgbi_ppm_init fndecl 6 3787 NULL
++e_rx_status_len_ath9k_hw_capabilities_3793 rx_status_len ath9k_hw_capabilities 0 3793 NULL
++e_concat_writev_fndecl_3800 concat_writev fndecl 4 3800 NULL
++e___ertm_hdr_size_fndecl_3801 __ertm_hdr_size fndecl 0 3801 NULL
++e_nfc_hci_send_event_fndecl_3807 nfc_hci_send_event fndecl 5 3807 NULL
++e_nextLineNumber_vardecl_rocket_c_3809 nextLineNumber vardecl_rocket.c 0 3809 NULL
++e_ip_last_used_group_ocfs2_inode_info_3814 ip_last_used_group ocfs2_inode_info 0 3814 NULL
++e_e_cpos_ocfs2_extent_rec_3815 e_cpos ocfs2_extent_rec 0 3815 NULL
++e_fnic_trace_debugfs_lseek_fndecl_3819 fnic_trace_debugfs_lseek fndecl 2 3819 NULL nohasharray
++e_dccp_recvmsg_fndecl_3819 dccp_recvmsg fndecl 3 3819 &e_fnic_trace_debugfs_lseek_fndecl_3819
++e_force_bredr_smp_write_fndecl_3821 force_bredr_smp_write fndecl 3 3821 NULL
++e_bits_per_word_spi_device_3828 bits_per_word spi_device 0 3828 NULL
++e_mei_nfc_send_fndecl_3830 mei_nfc_send fndecl 3 3830 NULL
++e_num_counters_ipt_replace_3837 num_counters ipt_replace 0 3837 NULL
++e_error_btrfs_end_io_wq_3838 error btrfs_end_io_wq 0 3838 NULL
++e_bg_inode_table_hi_ext4_group_desc_3844 bg_inode_table_hi ext4_group_desc 0 3844 NULL
++e_btrfs_dirty_pages_fndecl_3848 btrfs_dirty_pages fndecl 6-5-0 3848 NULL
++e_bfad_iocmd_fcpim_get_del_itn_stats_fndecl_3853 bfad_iocmd_fcpim_get_del_itn_stats fndecl 0 3853 NULL
++e_sb_getblk_fndecl_3856 sb_getblk fndecl 2 3856 NULL
++e_qdisc_tree_reduce_backlog_fndecl_3865 qdisc_tree_reduce_backlog fndecl 2 3865 NULL
++e_ocfs2_free_clusters_fndecl_3866 ocfs2_free_clusters fndecl 4 3866 NULL
++e_size_of_priv_dvb_usb_adapter_fe_properties_3875 size_of_priv dvb_usb_adapter_fe_properties 0 3875 NULL
++e_console_size_ramoops_context_3884 console_size ramoops_context 0 3884 NULL
++e_fs_div_hfs_sb_info_3890 fs_div hfs_sb_info 0 3890 NULL
++e_btrfs_inode_ref_name_len_fndecl_3891 btrfs_inode_ref_name_len fndecl 0 3891 NULL
++e_snd_pcm_lib_preallocate_pages_fndecl_3892 snd_pcm_lib_preallocate_pages fndecl 4 3892 NULL
++e_rootdir_empty_fndecl_3895 rootdir_empty fndecl 2 3895 NULL
++e_xfs_extent_busy_trim_fndecl_3898 xfs_extent_busy_trim fndecl 3-2 3898 NULL
++e_gfs2_meta_wipe_fndecl_3900 gfs2_meta_wipe fndecl 2 3900 NULL
++e_get_enc_strm_size_s5p_mfc_hw_ops_3906 get_enc_strm_size s5p_mfc_hw_ops 0 3906 NULL
++e_endpoint_usb_data_stream_properties_3909 endpoint usb_data_stream_properties 0 3909 NULL
++e_proc_fault_inject_write_fndecl_3921 proc_fault_inject_write fndecl 3 3921 NULL
++e_skb_set_network_header_fndecl_3922 skb_set_network_header fndecl 2 3922 NULL
++e_mp_map_gsi_to_irq_fndecl_3923 mp_map_gsi_to_irq fndecl 1 3923 NULL
++e_cfpkt_set_prio_fndecl_3935 cfpkt_set_prio fndecl 2 3935 NULL
++e_written_nxp_nci_fw_info_3944 written nxp_nci_fw_info 0 3944 NULL nohasharray
++e_unix_dgram_sendmsg_fndecl_3944 unix_dgram_sendmsg fndecl 3 3944 &e_written_nxp_nci_fw_info_3944
++e_atalk_recvmsg_fndecl_3950 atalk_recvmsg fndecl 3 3950 NULL
++e_mem_end_pci_params_3955 mem_end pci_params 0 3955 NULL
++e_resync_min_mddev_3957 resync_min mddev 0 3957 NULL
++e_make_le_item_head_fndecl_3961 make_le_item_head fndecl 6-4-5 3961 NULL
++e_parse_header_ops_3963 parse header_ops 0 3963 NULL
++e_hpfs_de_as_down_as_possible_fndecl_3967 hpfs_de_as_down_as_possible fndecl 0-2 3967 NULL
++e_dgram_sendmsg_fndecl_3972 dgram_sendmsg fndecl 3 3972 NULL
++e_wrbs_per_cxn_hba_parameters_3974 wrbs_per_cxn hba_parameters 0 3974 NULL
++e_num_entries_aper_size_info_lvl2_3983 num_entries aper_size_info_lvl2 0 3983 NULL
++e_max_ti_iu_len_srp_rdma_ch_3984 max_ti_iu_len srp_rdma_ch 0 3984 NULL
++e_num_pages_ttm_mem_reg_3986 num_pages ttm_mem_reg 0 3986 NULL
++e_i2400m_rx_trace_fndecl_3988 i2400m_rx_trace fndecl 3 3988 NULL
++e_tp_len_tpacket2_hdr_3990 tp_len tpacket2_hdr 0 3990 NULL nohasharray
++e___acpi_register_gsi_vardecl_3990 __acpi_register_gsi vardecl 0 3990 &e_tp_len_tpacket2_hdr_3990
++e_rfcomm_sock_recvmsg_fndecl_3992 rfcomm_sock_recvmsg fndecl 3 3992 NULL
++e_opt_nflen_ipv6_txoptions_3998 opt_nflen ipv6_txoptions 0 3998 NULL nohasharray
++e_len_be_queue_info_3998 len be_queue_info 0 3998 &e_opt_nflen_ipv6_txoptions_3998
++e_buffer_bytes_max_snd_pcm_hardware_4001 buffer_bytes_max snd_pcm_hardware 0 4001 NULL
++e_blocks_ide_disk_obj_4007 blocks ide_disk_obj 0 4007 NULL nohasharray
++e_t4_init_clip_tbl_fndecl_4007 t4_init_clip_tbl fndecl 1-2 4007 &e_blocks_ide_disk_obj_4007
++e_onenand_default_block_markbad_fndecl_4011 onenand_default_block_markbad fndecl 2 4011 NULL nohasharray
++e_rx_data_max_size_sst_generic_ipc_4011 rx_data_max_size sst_generic_ipc 0 4011 &e_onenand_default_block_markbad_fndecl_4011
++e_bioset_create_nobvec_fndecl_4015 bioset_create_nobvec fndecl 2 4015 NULL
++e_f1_id_amd64_family_type_4017 f1_id amd64_family_type 0 4017 NULL
++e_rtl2830_regmap_gather_write_fndecl_4018 rtl2830_regmap_gather_write fndecl 5 4018 NULL
++e_b_size_mon_reader_bin_4021 b_size mon_reader_bin 0 4021 NULL
++e_j_start_reiserfs_journal_list_4030 j_start reiserfs_journal_list 0 4030 NULL
++e_length_usb_request_4031 length usb_request 0 4031 NULL
++e_rx_buf_sz_netdev_private_4035 rx_buf_sz netdev_private 0 4035 NULL
++e_MsgLength__MSG_EVENT_NOTIFY_REPLY_4038 MsgLength _MSG_EVENT_NOTIFY_REPLY 0 4038 NULL
++e_brcmf_sdio_txpkt_hdalign_fndecl_4040 brcmf_sdio_txpkt_hdalign fndecl 0 4040 NULL
++e_user_mss_tcp_options_received_4043 user_mss tcp_options_received 0 4043 NULL nohasharray
++e_ipc_rcu_alloc_fndecl_4043 ipc_rcu_alloc fndecl 1 4043 &e_user_mss_tcp_options_received_4043
++e_scsi_execute_req_flags_fndecl_4044 scsi_execute_req_flags fndecl 5 4044 NULL
++e_tx_data_count_hso_serial_4046 tx_data_count hso_serial 0 4046 NULL
++e_prepare_header_fndecl_4047 prepare_header fndecl 0 4047 NULL
++e_ssid_len_cfg80211_connect_params_4052 ssid_len cfg80211_connect_params 0 4052 NULL
++e_m5mols_read_u32_fndecl_4057 m5mols_read_u32 fndecl 2 4057 NULL
++e_cx18_v4l2_read_fndecl_4063 cx18_v4l2_read fndecl 3 4063 NULL
++e_isoc_packet_size_usb_usbvision_4066 isoc_packet_size usb_usbvision 0 4066 NULL
++e_read_tag_block_fndecl_4068 read_tag_block fndecl 0 4068 NULL
++e_max_mm_current_aat1290_led_config_data_4072 max_mm_current aat1290_led_config_data 0 4072 NULL
++e_cfg80211_notify_new_peer_candidate_fndecl_4073 cfg80211_notify_new_peer_candidate fndecl 4 4073 NULL
++e_iscsi_max_snd_data_seg_len_dev_db_entry_4074 iscsi_max_snd_data_seg_len dev_db_entry 0 4074 NULL
++e_do_validate_mem_fndecl_4075 do_validate_mem fndecl 3-2 4075 NULL
++e_IOCRequestFrameSize_mpt3sas_facts_4079 IOCRequestFrameSize mpt3sas_facts 0 4079 NULL
++e_bfad_iocmd_ioc_get_info_fndecl_4081 bfad_iocmd_ioc_get_info fndecl 0 4081 NULL
++e___set_extent_bit_fndecl_4083 __set_extent_bit fndecl 0-3-2 4083 NULL nohasharray
++e_kvm_vcpu_read_guest_page_fndecl_4083 kvm_vcpu_read_guest_page fndecl 2 4083 &e___set_extent_bit_fndecl_4083
++e_n_drm_r128_depth_4085 n drm_r128_depth 0 4085 NULL
++e_skb_copy_and_csum_datagram_fndecl_4086 skb_copy_and_csum_datagram fndecl 4-2 4086 NULL
++e__ocfs2_free_clusters_fndecl_4087 _ocfs2_free_clusters fndecl 4 4087 NULL
++e_base_intel_initial_plane_config_4088 base intel_initial_plane_config 0 4088 NULL nohasharray
++e_get_numpages_fndecl_4088 get_numpages fndecl 0-2-1 4088 &e_base_intel_initial_plane_config_4088
++e_num_pipes_intel_device_info_4092 num_pipes intel_device_info 0 4092 NULL
++e_sca_keylength_sctp_authkey_4095 sca_keylength sctp_authkey 0 4095 NULL
++e_m1_xgene_enet_raw_desc_4097 m1 xgene_enet_raw_desc 0 4097 NULL
++e_ae_res_sd_4099 ae_res sd 0 4099 NULL
++e_ext4_fname_encrypted_size_fndecl_4100 ext4_fname_encrypted_size fndecl 0-2 4100 NULL
++e_special_ixgb_rx_desc_4107 special ixgb_rx_desc 0 4107 NULL nohasharray
++e_nbuttons_tca6416_keys_platform_data_4107 nbuttons tca6416_keys_platform_data 0 4107 &e_special_ixgb_rx_desc_4107
++e_blkno_xfs_da_args_4112 blkno xfs_da_args 0 4112 NULL
++e_memblock_virt_alloc_low_nopanic_fndecl_4113 memblock_virt_alloc_low_nopanic fndecl 2-1 4113 NULL
++e_vringh_iov_pull_kern_fndecl_4115 vringh_iov_pull_kern fndecl 3 4115 NULL
++e_read_reg_fndecl_4120 read_reg fndecl 0 4120 NULL
++e_jffs2_acl_from_medium_fndecl_4129 jffs2_acl_from_medium fndecl 2 4129 NULL
++e_tx_desc_size_rtl8xxxu_fileops_4133 tx_desc_size rtl8xxxu_fileops 0 4133 NULL
++e_ocfs2_read_group_descriptor_fndecl_4136 ocfs2_read_group_descriptor fndecl 3 4136 NULL
++e_readhscx_fndecl_4138 readhscx fndecl 0 4138 NULL
++e_ssid_len_mwifiex_802_11_ssid_4139 ssid_len mwifiex_802_11_ssid 0 4139 NULL nohasharray
++e_v9fs_xattr_handler_get_fndecl_4139 v9fs_xattr_handler_get fndecl 6 4139 &e_ssid_len_mwifiex_802_11_ssid_4139
++e_size_badblocks_4142 size badblocks 0 4142 NULL
++e_interleave_cfi_private_4153 interleave cfi_private 0 4153 NULL
++e_ocfs2_readpages_fndecl_4156 ocfs2_readpages fndecl 4 4156 NULL nohasharray
++e_num_msix_vec_be_adapter_4156 num_msix_vec be_adapter 0 4156 &e_ocfs2_readpages_fndecl_4156
++e_pnpbios_proc_write_fndecl_4157 pnpbios_proc_write fndecl 3 4157 NULL
++e_batadv_tt_local_add_fndecl_4159 batadv_tt_local_add fndecl 3 4159 NULL
++e_epp_write_data_parport_operations_4176 epp_write_data parport_operations 0 4176 NULL
++e_saa7146_vmalloc_build_pgtable_fndecl_4183 saa7146_vmalloc_build_pgtable fndecl 2 4183 NULL
++e_ofs_signature_4185 ofs signature 0 4185 NULL
++e_team_change_mtu_fndecl_4186 team_change_mtu fndecl 2 4186 NULL
++e_stm_char_write_fndecl_4195 stm_char_write fndecl 3 4195 NULL nohasharray
++e_irda_setsockopt_fndecl_4195 irda_setsockopt fndecl 5 4195 &e_stm_char_write_fndecl_4195 nohasharray
++e_iin_ep_usbtmc_device_data_4195 iin_ep usbtmc_device_data 0 4195 &e_irda_setsockopt_fndecl_4195
++e_xfs_bmap_add_extent_hole_real_fndecl_4199 xfs_bmap_add_extent_hole_real fndecl 0 4199 NULL
++e_wBeaconInfoLength_uwb_rc_evt_beacon_WUSB_0100_4200 wBeaconInfoLength uwb_rc_evt_beacon_WUSB_0100 0 4200 NULL
++e_bd_dev_block_device_4202 bd_dev block_device 0 4202 NULL
++e_parent___prelim_ref_4206 parent __prelim_ref 0 4206 NULL nohasharray
++e_sample_bits_snd_soc_dai_4206 sample_bits snd_soc_dai 0 4206 &e_parent___prelim_ref_4206
++e_rx_page_order_il_hw_params_4208 rx_page_order il_hw_params 0 4208 NULL
++e_rx_pkt_offset_rxpd_4210 rx_pkt_offset rxpd 0 4210 NULL
++e_max_vectors_i40e_virtchnl_vf_resource_4213 max_vectors i40e_virtchnl_vf_resource 0 4213 NULL
++e_ext2_setsize_fndecl_4215 ext2_setsize fndecl 2 4215 NULL nohasharray
++e_nci_hci_set_param_fndecl_4215 nci_hci_set_param fndecl 5 4215 &e_ext2_setsize_fndecl_4215
++e_store_pending_adv_report_fndecl_4222 store_pending_adv_report fndecl 7 4222 NULL
++e_nilfs_segbuf_map_fndecl_4225 nilfs_segbuf_map fndecl 3-2 4225 NULL nohasharray
++e_dlm_lock_fndecl_4225 dlm_lock fndecl 6 4225 &e_nilfs_segbuf_map_fndecl_4225
++e___nla_put_fndecl_4226 __nla_put fndecl 3 4226 NULL
++e_len_bpf_prog_4232 len bpf_prog 0 4232 NULL
++e_data_len_nci_data_4237 data_len nci_data 0 4237 NULL
++e_ip6gre_err_fndecl_4238 ip6gre_err fndecl 5 4238 NULL
++e_alloc_size_debug_buffer_4240 alloc_size debug_buffer 0 4240 NULL
++e_subpage_sft_mtd_info_4249 subpage_sft mtd_info 0 4249 NULL
++e_ieee80211_mesh_rx_mgmt_action_fndecl_4250 ieee80211_mesh_rx_mgmt_action fndecl 3 4250 NULL nohasharray
++e_duplex_ethtool_cmd_4250 duplex ethtool_cmd 0 4250 &e_ieee80211_mesh_rx_mgmt_action_fndecl_4250
++e_fb_y_vmw_fb_par_4260 fb_y vmw_fb_par 0 4260 NULL
++e_user_width_soc_camera_device_4262 user_width soc_camera_device 0 4262 NULL
++e_ntids_tid_info_4263 ntids tid_info 0 4263 NULL
++e_nilfs_gccache_submit_read_node_fndecl_4267 nilfs_gccache_submit_read_node fndecl 2-3 4267 NULL
++e_ide_set_pio_fndecl_4272 ide_set_pio fndecl 2 4272 NULL
++e_mp_map_pin_to_irq_fndecl_4276 mp_map_pin_to_irq fndecl 1 4276 NULL
++e_fuse_ioctl_copy_user_fndecl_4279 fuse_ioctl_copy_user fndecl 4-3 4279 NULL
++e_rx_packet_len_nci_uart_4280 rx_packet_len nci_uart 0 4280 NULL
++e_mrp_request_join_fndecl_4281 mrp_request_join fndecl 4 4281 NULL
++e_gfs2_getbuf_fndecl_4283 gfs2_getbuf fndecl 2 4283 NULL
++e_route_mtu_cached_xfrm_dst_4288 route_mtu_cached xfrm_dst 0 4288 NULL
++e_connector_count_drm_fb_helper_4290 connector_count drm_fb_helper 0 4290 NULL
++e_h_next_leaf_blk_ocfs2_extent_block_4292 h_next_leaf_blk ocfs2_extent_block 0 4292 NULL
++e_cgroup_task_count_fndecl_4297 cgroup_task_count fndecl 0 4297 NULL
++e_key_size_pkcs1pad_ctx_4303 key_size pkcs1pad_ctx 0 4303 NULL nohasharray
++e_maxpacket_musb_qh_4303 maxpacket musb_qh 0 4303 &e_key_size_pkcs1pad_ctx_4303
++e_rx_frm_len_mask_macb_4310 rx_frm_len_mask macb 0 4310 NULL
++e_bufsize_i2c_hid_4318 bufsize i2c_hid 0 4318 NULL
++e_bfad_iocmd_rport_get_stats_fndecl_4323 bfad_iocmd_rport_get_stats fndecl 0 4323 NULL
++e_old_chunk_dm_exception_4333 old_chunk dm_exception 0 4333 NULL
++e_ax25_send_frame_fndecl_4335 ax25_send_frame fndecl 2 4335 NULL
++e_length_rbd_obj_request_4337 length rbd_obj_request 0 4337 NULL
++e_v4l2_ctrl_new_fndecl_4341 v4l2_ctrl_new fndecl 8-7-10-12 4341 NULL
++e_key_len_neigh_table_4347 key_len neigh_table 0 4347 NULL
++e_scrbuf_size_sisusb_usb_data_4350 scrbuf_size sisusb_usb_data 0 4350 NULL
++e_len_mwifiex_ds_misc_gen_ie_4351 len mwifiex_ds_misc_gen_ie 0 4351 NULL
++e_musb_giveback_fndecl_4352 musb_giveback fndecl 3 4352 NULL
++e_offset_v2_k_type_fndecl_4355 offset_v2_k_type fndecl 0 4355 NULL
++e_o_size_x509_parse_context_4358 o_size x509_parse_context 0 4358 NULL
++e_usb_fill_int_urb_fndecl_4360 usb_fill_int_urb fndecl 5-3 4360 NULL
++e_snd_emu10k1_synth_alloc_fndecl_4366 snd_emu10k1_synth_alloc fndecl 2 4366 NULL
++e_nilfs_sufile_resize_fndecl_4376 nilfs_sufile_resize fndecl 2 4376 NULL nohasharray
++e_isdn_tty_edit_at_fndecl_4376 isdn_tty_edit_at fndecl 0 4376 &e_nilfs_sufile_resize_fndecl_4376
++e_ip_vs_conn_tab_bits_vardecl_ip_vs_conn_c_4379 ip_vs_conn_tab_bits vardecl_ip_vs_conn.c 0 4379 NULL
++e_ts_packet_size_cx8802_dev_4383 ts_packet_size cx8802_dev 0 4383 NULL nohasharray
++e_dir_entries_msdos_sb_info_4383 dir_entries msdos_sb_info 0 4383 &e_ts_packet_size_cx8802_dev_4383
++e_ext4_add_new_descs_fndecl_4390 ext4_add_new_descs fndecl 3 4390 NULL nohasharray
++e_mc13xxx_max_brightness_fndecl_4390 mc13xxx_max_brightness fndecl 0 4390 &e_ext4_add_new_descs_fndecl_4390
++e_err_vlan_tg3_rx_buffer_desc_4391 err_vlan tg3_rx_buffer_desc 0 4391 NULL
++e_ivtv_udma_setup_fndecl_4395 ivtv_udma_setup fndecl 4 4395 NULL
++e_mgag200_bo_create_fndecl_4398 mgag200_bo_create fndecl 2 4398 NULL nohasharray
++e_dev_alloc_skb_fndecl_4398 dev_alloc_skb fndecl 1 4398 &e_mgag200_bo_create_fndecl_4398
++e_skb_realloc_headroom_fndecl_4399 skb_realloc_headroom fndecl 2 4399 NULL
++e_page_ofs__ntfs_inode_4407 page_ofs _ntfs_inode 0 4407 NULL
++e_new_bytenr_backref_node_4416 new_bytenr backref_node 0 4416 NULL
++e_howmany_64_fndecl_4431 howmany_64 fndecl 0-1 4431 NULL
++e_accesses_per_ms_NCR5380_hostdata_4435 accesses_per_ms NCR5380_hostdata 0 4435 NULL
++e_jfs_fsync_fndecl_4436 jfs_fsync fndecl 2 4436 NULL
++e_hot_add_disk_fndecl_4442 hot_add_disk fndecl 2 4442 NULL
++e_bRefresh_usb_endpoint_descriptor_4444 bRefresh usb_endpoint_descriptor 0 4444 NULL
++e_number_mdu_disk_info_s_4445 number mdu_disk_info_s 0 4445 NULL
++e_submit_bio_hook_extent_io_ops_4446 submit_bio_hook extent_io_ops 0 4446 NULL
++e_width_simplefb_params_4449 width simplefb_params 0 4449 NULL
++e_nfsd_read_fndecl_4451 nfsd_read fndecl 5-3 4451 NULL
++e_ieee80211_key_alloc_fndecl_4452 ieee80211_key_alloc fndecl 3 4452 NULL
++e_mnt_want_write_file_fndecl_4456 mnt_want_write_file fndecl 0 4456 NULL
++e_sftid_base_tid_info_4462 sftid_base tid_info 0 4462 NULL
++e_fifo_size_fritz_bcs_4463 fifo_size fritz_bcs 0 4463 NULL
++e_gunzip_fndecl_4465 gunzip fndecl 2 4465 NULL
++e_kernel_read_fndecl_4468 kernel_read fndecl 0-4 4468 NULL
++e_sddr09_read22_fndecl_4476 sddr09_read22 fndecl 4-3-6 4476 NULL
++e_sys_ustat_fndecl_4477 sys_ustat fndecl 1 4477 NULL
++e_nxp_nci_probe_fndecl_4478 nxp_nci_probe fndecl 4 4478 NULL nohasharray
++e_wlcore_hw_get_rx_packet_len_fndecl_4478 wlcore_hw_get_rx_packet_len fndecl 0 4478 &e_nxp_nci_probe_fndecl_4478
++e_ocfs2_control_message_fndecl_4479 ocfs2_control_message fndecl 3 4479 NULL nohasharray
++e_complete_request_fndecl_4479 complete_request fndecl 2 4479 &e_ocfs2_control_message_fndecl_4479
++e___spi_split_transfer_maxsize_fndecl_4482 __spi_split_transfer_maxsize fndecl 4 4482 NULL
++e_hdmi_create_eld_ctl_fndecl_4485 hdmi_create_eld_ctl fndecl 2 4485 NULL
++e_hdr_len_l2tp_session_4486 hdr_len l2tp_session 0 4486 NULL nohasharray
++e_fragments_squashfs_super_block_4486 fragments squashfs_super_block 0 4486 &e_hdr_len_l2tp_session_4486
++e_fw_size_amdgpu_firmware_4488 fw_size amdgpu_firmware 0 4488 NULL
++e_fallocate_chunk_fndecl_4489 fallocate_chunk fndecl 3 4489 NULL
++e_trans_tx_fail_type_hisi_sas_err_record_v2_4494 trans_tx_fail_type hisi_sas_err_record_v2 0 4494 NULL
++e_load_xattr_datum_fndecl_4505 load_xattr_datum fndecl 0 4505 NULL
++e___dccp_hdr_len_fndecl_4518 __dccp_hdr_len fndecl 0 4518 NULL
++e___mei_cl_recv_fndecl_4519 __mei_cl_recv fndecl 0-3 4519 NULL
++e_result_MOSDOpReply_4530 result MOSDOpReply 0 4530 NULL
++e_to_irq_gpio_chip_4534 to_irq gpio_chip 0 4534 NULL
++e_map_private_extent_buffer_fndecl_4542 map_private_extent_buffer fndecl 0 4542 NULL
++e_nfs3_proc_readdir_fndecl_4544 nfs3_proc_readdir fndecl 5 4544 NULL
++e_BlocksPerUnit_partition_t_4545 BlocksPerUnit partition_t 0 4545 NULL
++e_uhci_giveback_urb_fndecl_4547 uhci_giveback_urb fndecl 4 4547 NULL
++e_data_size_cz_buffer_entry_4548 data_size cz_buffer_entry 0 4548 NULL
++e_qdepth_uas_dev_info_4551 qdepth uas_dev_info 0 4551 NULL
++e_data_len_o2net_msg_4553 data_len o2net_msg 0 4553 NULL
++e_hwcursor_size_sis_video_info_4560 hwcursor_size sis_video_info 0 4560 NULL
++e_channels_snd_korg1212_4562 channels snd_korg1212 0 4562 NULL
++e_usbvision_rvmalloc_fndecl_4564 usbvision_rvmalloc fndecl 1 4564 NULL
++e_word1_pkt_stat_desc_4565 word1 pkt_stat_desc 0 4565 NULL
++e_LoadBitmap_fndecl_4569 LoadBitmap fndecl 2 4569 NULL
++e_far_copies_geom_4570 far_copies geom 0 4570 NULL
++e_dlen_nft_set_4577 dlen nft_set 0 4577 NULL
++e_netvsc_recv_callback_fndecl_4592 netvsc_recv_callback fndecl 6 4592 NULL
++e_cxd2841er_read_regs_fndecl_4593 cxd2841er_read_regs fndecl 5 4593 NULL nohasharray
++e_rx_buf_sz_gem_4593 rx_buf_sz gem 0 4593 &e_cxd2841er_read_regs_fndecl_4593
++e_bio_detain_fndecl_4601 bio_detain fndecl 2 4601 NULL
++e_header_size_partition_4606 header_size partition 0 4606 NULL
++e_max_event_log_size_iwl_base_params_4612 max_event_log_size iwl_base_params 0 4612 NULL
++e_sxgbe_change_mtu_fndecl_4613 sxgbe_change_mtu fndecl 2 4613 NULL
++e_mbox_test_message_write_fndecl_4627 mbox_test_message_write fndecl 3 4627 NULL
++e_cksumlength_gss_krb5_enctype_4630 cksumlength gss_krb5_enctype 0 4630 NULL
++e_total_bytes__osd_req_data_segment_4634 total_bytes _osd_req_data_segment 0 4634 NULL
++e_group_depth_ore_layout_4635 group_depth ore_layout 0 4635 NULL
++e_irq_nvecs_bnx2_4644 irq_nvecs bnx2 0 4644 NULL
++e_read_eeprom_bytes_fndecl_4649 read_eeprom_bytes fndecl 4 4649 NULL
++e_size_simple_transaction_argresp_4650 size simple_transaction_argresp 0 4650 NULL
++e_buffer_size_smsusb_device_t_4667 buffer_size smsusb_device_t 0 4667 NULL
++e_overridesize_vardecl_nandsim_c_4668 overridesize vardecl_nandsim.c 0 4668 NULL
++e_r10_sync_page_io_fndecl_4672 r10_sync_page_io fndecl 3-2 4672 NULL
++e_l1_dirbase_vardecl_acpi_extlog_c_4681 l1_dirbase vardecl_acpi_extlog.c 0 4681 NULL
++e__rtl92s_get_h2c_cmdlen_fndecl_4683 _rtl92s_get_h2c_cmdlen fndecl 0 4683 NULL
++e_snd_pcm_hw_param_near_fndecl_4691 snd_pcm_hw_param_near fndecl 4 4691 NULL
++e_optlen_ip_options_4698 optlen ip_options 0 4698 NULL
++e_bpf_func_bpf_prog_4701 bpf_func bpf_prog 0 4701 NULL
++e_xdr_decode_word_fndecl_4707 xdr_decode_word fndecl 2 4707 NULL
++e_count_user_sgentry64_4714 count user_sgentry64 0 4714 NULL
++e_hpfs_ea_remove_fndecl_4717 hpfs_ea_remove fndecl 4-2 4717 NULL
++e_next_fpm_addr_i40iw_hmc_pble_rsrc_4719 next_fpm_addr i40iw_hmc_pble_rsrc 0 4719 NULL
++e_alloc_pidmap_fndecl_4720 alloc_pidmap fndecl 0 4720 NULL nohasharray
++e_svga3dsurface_get_serialized_size_fndecl_4720 svga3dsurface_get_serialized_size fndecl 0-4 4720 &e_alloc_pidmap_fndecl_4720
++e_next_page_mpage_da_data_4726 next_page mpage_da_data 0 4726 NULL
++e_bnxt_copy_skb_fndecl_4728 bnxt_copy_skb fndecl 3 4728 NULL nohasharray
++e_displacement_bts_phys_4728 displacement bts_phys 0 4728 &e_bnxt_copy_skb_fndecl_4728
++e_net2272_read_packet_fndecl_4735 net2272_read_packet fndecl 4 4735 NULL
++e_qla82xx_pci_mem_read_direct_fndecl_4739 qla82xx_pci_mem_read_direct fndecl 2 4739 NULL
++e_smk_set_cipso_fndecl_4744 smk_set_cipso fndecl 3 4744 NULL
++e_num_srq_mthca_profile_4747 num_srq mthca_profile 0 4747 NULL
++e_size_mmc_part_4748 size mmc_part 0 4748 NULL
++e_netlbl_catmap_setrng_fndecl_4749 netlbl_catmap_setrng fndecl 2 4749 NULL
++e_page_offset_i40e_rx_buffer_4750 page_offset i40e_rx_buffer 0 4750 NULL
++e_format_count_drm_plane_4754 format_count drm_plane 0 4754 NULL
++e_desc_len_ata_eh_info_4755 desc_len ata_eh_info 0 4755 NULL nohasharray
++e_maxpacket_sl811h_ep_4755 maxpacket sl811h_ep 0 4755 &e_desc_len_ata_eh_info_4755
++e_igbvf_receive_skb_fndecl_4757 igbvf_receive_skb fndecl 5 4757 NULL
++e_ep_ctrl_r_line6_properties_4758 ep_ctrl_r line6_properties 0 4758 NULL
++e_read_reg_cc770_priv_4760 read_reg cc770_priv 0 4760 NULL
++e_max_i2s_chan_img_i2s_in_4765 max_i2s_chan img_i2s_in 0 4765 NULL
++e_map_sz_cyttsp4_sysinfo_ofs_4769 map_sz cyttsp4_sysinfo_ofs 0 4769 NULL
++e_acpi_rs_set_resource_source_fndecl_4776 acpi_rs_set_resource_source fndecl 0-2 4776 NULL
++e_length_property_4777 length property 0 4777 NULL
++e_stride_snd_usb_endpoint_4779 stride snd_usb_endpoint 0 4779 NULL
++e_max_tfr_mmc_test_area_4780 max_tfr mmc_test_area 0 4780 NULL nohasharray
++e_qed_ilt_cli_blk_fill_fndecl_4780 qed_ilt_cli_blk_fill fndecl 5-4 4780 &e_max_tfr_mmc_test_area_4780
++e_crtc_vsync_start_drm_display_mode_4785 crtc_vsync_start drm_display_mode 0 4785 NULL nohasharray
++e_n_channels_cfg80211_scan_request_4785 n_channels cfg80211_scan_request 0 4785 &e_crtc_vsync_start_drm_display_mode_4785
++e_pax_mirror_huge_pte_fndecl_4792 pax_mirror_huge_pte fndecl 2 4792 NULL
++e_img_height_s5p_mfc_ctx_4793 img_height s5p_mfc_ctx 0 4793 NULL
++e___kfifo_from_user_fndecl_4796 __kfifo_from_user fndecl 3 4796 NULL
++e_fmc_send_cmd_fndecl_4800 fmc_send_cmd fndecl 0-5 4800 NULL
++e_ncp_finish_request_fndecl_4808 ncp_finish_request fndecl 3 4808 NULL
++e_set_indirect_ea_fndecl_4810 set_indirect_ea fndecl 5-3 4810 NULL
++e_INFTL_deleteblock_fndecl_4811 INFTL_deleteblock fndecl 2 4811 NULL
++e_length_reiserfs_security_handle_4813 length reiserfs_security_handle 0 4813 NULL
++e_buffer_size_ide_tape_obj_4815 buffer_size ide_tape_obj 0 4815 NULL nohasharray
++e_width_tw686x_video_channel_4815 width tw686x_video_channel 0 4815 &e_buffer_size_ide_tape_obj_4815
++e_drm_mode_vrefresh_fndecl_4817 drm_mode_vrefresh fndecl 0 4817 NULL
++e_ov534_reg_read_fndecl_4820 ov534_reg_read fndecl 0 4820 NULL
++e_ext4_dir_llseek_fndecl_4826 ext4_dir_llseek fndecl 2 4826 NULL
++e_new_orphans_ubifs_info_4827 new_orphans ubifs_info 0 4827 NULL
++e_i2c_read_fndecl_4828 i2c_read fndecl 4-6 4828 NULL nohasharray
++e_period_bytes_snd_card_asihpi_pcm_4828 period_bytes snd_card_asihpi_pcm 0 4828 &e_i2c_read_fndecl_4828
++e_nelems_cciss_scsi_cmd_stack_t_4829 nelems cciss_scsi_cmd_stack_t 0 4829 NULL
++e_read_buf_fndecl_4838 read_buf fndecl 2 4838 NULL
++e_bio_trim_fndecl_4843 bio_trim fndecl 2-3 4843 NULL
++e_start_service_discovery_fndecl_4846 start_service_discovery fndecl 4 4846 NULL
++e_btrfs_get_32_fndecl_4847 btrfs_get_32 fndecl 0 4847 NULL
++e_hash_size_cache_detail_4852 hash_size cache_detail 0 4852 NULL
++e_iommu_bit_gk20a_instmem_4857 iommu_bit gk20a_instmem 0 4857 NULL nohasharray
++e_start__iohandle_4857 start _iohandle 0 4857 &e_iommu_bit_gk20a_instmem_4857
++e_max_tgts_snic_fw_info_4861 max_tgts snic_fw_info 0 4861 NULL
++e_devfn_irq_info_4862 devfn irq_info 0 4862 NULL
++e_encode_path_fndecl_4865 encode_path fndecl 3 4865 NULL
++e_s_desc_per_block_ext4_sb_info_4867 s_desc_per_block ext4_sb_info 0 4867 NULL nohasharray
++e_gfn_to_hva_memslot_prot_fndecl_4867 gfn_to_hva_memslot_prot fndecl 2 4867 &e_s_desc_per_block_ext4_sb_info_4867
++e_i40e_reserve_msix_vectors_fndecl_4870 i40e_reserve_msix_vectors fndecl 0 4870 NULL
++e_find_overflow_devnum_fndecl_4872 find_overflow_devnum fndecl 0 4872 NULL nohasharray
++e_i_lenEAttr_udf_inode_info_4872 i_lenEAttr udf_inode_info 0 4872 &e_find_overflow_devnum_fndecl_4872
++e_out_args_qlcnic_mailbox_metadata_4881 out_args qlcnic_mailbox_metadata 0 4881 NULL
++e_sc_datablk_cnt_nilfs_sc_info_4894 sc_datablk_cnt nilfs_sc_info 0 4894 NULL nohasharray
++e_snd_interval_refine_min_fndecl_4894 snd_interval_refine_min fndecl 2 4894 &e_sc_datablk_cnt_nilfs_sc_info_4894
++e_head_circ_buf_4897 head circ_buf 0 4897 NULL
++e_wMaxSegmentSize_usb_cdc_ether_desc_4898 wMaxSegmentSize usb_cdc_ether_desc 0 4898 NULL
++e_upper_size_to_lower_size_fndecl_4899 upper_size_to_lower_size fndecl 0-2 4899 NULL
++e_fbcon_bmove_rec_fndecl_4901 fbcon_bmove_rec fndecl 5-3-9 4901 NULL
++e_need_tx_headroom_prism2_helper_functions_4902 need_tx_headroom prism2_helper_functions 0 4902 NULL
++e_SYSC_fgetxattr_fndecl_4904 SYSC_fgetxattr fndecl 4 4904 NULL
++e_smsc911x_reg_read_fndecl_4905 smsc911x_reg_read fndecl 0 4905 NULL
++e_leaf_copy_items_fndecl_4923 leaf_copy_items fndecl 5 4923 NULL
++e_ui_size_ubifs_inode_4934 ui_size ubifs_inode 0 4934 NULL
++e_bpp_drm_mode_fb_cmd_4936 bpp drm_mode_fb_cmd 0 4936 NULL
++e_update_tind_extent_range_fndecl_4950 update_tind_extent_range fndecl 3 4950 NULL nohasharray
++e_read_tape_fndecl_4950 read_tape fndecl 2 4950 &e_update_tind_extent_range_fndecl_4950 nohasharray
++e_mlx5_ib_db_map_user_fndecl_4950 mlx5_ib_db_map_user fndecl 2 4950 &e_read_tape_fndecl_4950
++e_clear_extent_uptodate_fndecl_4952 clear_extent_uptodate fndecl 2-3 4952 NULL
++e_myri10ge_get_txrx_fndecl_4953 myri10ge_get_txrx fndecl 2 4953 NULL
++e_radeon_align_pitch_fndecl_4969 radeon_align_pitch fndecl 0-2 4969 NULL
++e_reiserfs_dir_fsync_fndecl_4971 reiserfs_dir_fsync fndecl 2 4971 NULL
++e_len_htc_record_hdr_4978 len htc_record_hdr 0 4978 NULL
++e_len_i40iw_sge_4979 len i40iw_sge 0 4979 NULL
++e_t_data_nents_se_cmd_4981 t_data_nents se_cmd 0 4981 NULL
++e_btrfs_pin_extent_for_log_replay_fndecl_4982 btrfs_pin_extent_for_log_replay fndecl 3-2 4982 NULL
++e_phy_duplex_pxa168_eth_private_4990 phy_duplex pxa168_eth_private 0 4990 NULL
++e_stripe_unit_ore_layout_4991 stripe_unit ore_layout 0 4991 NULL
++e___mt7601u_dma_fw_fndecl_4994 __mt7601u_dma_fw fndecl 4 4994 NULL
++e_kmem_cache_create_fndecl_5007 kmem_cache_create fndecl 2-3 5007 NULL
++e_read_int_fndecl_5009 read_int fndecl 0 5009 NULL
++e_numEntries__ATOM_PPLIB_SAMClk_Voltage_Limit_Table_5010 numEntries _ATOM_PPLIB_SAMClk_Voltage_Limit_Table 0 5010 NULL
++e_xfs_qm_dqget_fndecl_5012 xfs_qm_dqget fndecl 0 5012 NULL nohasharray
++e_mgmt_limited_event_fndecl_5012 mgmt_limited_event fndecl 4 5012 &e_xfs_qm_dqget_fndecl_5012 nohasharray
++e_o2net_send_message_fndecl_5012 o2net_send_message fndecl 4 5012 &e_mgmt_limited_event_fndecl_5012
++e_info1_htt_rx_indication_hdr_5016 info1 htt_rx_indication_hdr 0 5016 NULL
++e_mmc_part_add_fndecl_5020 mmc_part_add fndecl 2 5020 NULL
++e_hard_header_len_net_device_5025 hard_header_len net_device 0 5025 NULL
++e_ubifs_unpack_bits_fndecl_5033 ubifs_unpack_bits fndecl 0-3 5033 NULL
++e_ext2_xattr_security_set_fndecl_5039 ext2_xattr_security_set fndecl 6 5039 NULL nohasharray
++e_nr_pages_firmware_buf_5039 nr_pages firmware_buf 0 5039 &e_ext2_xattr_security_set_fndecl_5039
++e_device_tg3_dev_id_5042 device tg3_dev_id 0 5042 NULL
++e_jffs2_fsync_fndecl_5052 jffs2_fsync fndecl 2 5052 NULL
++e_index_squashfs_dir_index_5053 index squashfs_dir_index 0 5053 NULL
++e_compress_raw_buf_fndecl_5055 compress_raw_buf fndecl 0 5055 NULL nohasharray
++e_rcvidx_IsdnCardState_5055 rcvidx IsdnCardState 0 5055 &e_compress_raw_buf_fndecl_5055
++e_offset_SVGAGuestPtr_5056 offset SVGAGuestPtr 0 5056 NULL
++e_ssc_id_at73c213_board_info_5060 ssc_id at73c213_board_info 0 5060 NULL nohasharray
++e_ext4_llseek_fndecl_5060 ext4_llseek fndecl 2 5060 &e_ssc_id_at73c213_board_info_5060
++e_reg_create_fndecl_5061 reg_create fndecl 6 5061 NULL
++e_kvm_vcpu_gfn_to_pfn_atomic_fndecl_5062 kvm_vcpu_gfn_to_pfn_atomic fndecl 2 5062 NULL
++e_bufsz_nfp_net_rx_ring_5067 bufsz nfp_net_rx_ring 0 5067 NULL
++e_len_BufferControl_5068 len BufferControl 0 5068 NULL
++e_size_compat_arpt_replace_5071 size compat_arpt_replace 0 5071 NULL
++e_ie_len_cfg80211_scan_request_5073 ie_len cfg80211_scan_request 0 5073 NULL
++e_brcmf_sdiod_txglomsz_vardecl_common_c_5079 brcmf_sdiod_txglomsz vardecl_common.c 0 5079 NULL
++e_domain_a_len_ccp_ecc_point_math_5093 domain_a_len ccp_ecc_point_math 0 5093 NULL
++e_at25_ee_write_fndecl_5099 at25_ee_write fndecl 4-2 5099 NULL
++e_default_file_splice_write_fndecl_5103 default_file_splice_write fndecl 4 5103 NULL
++e_bfad_iocmd_fcpim_cfg_lunmask_fndecl_5112 bfad_iocmd_fcpim_cfg_lunmask fndecl 0 5112 NULL nohasharray
++e_mem_eni_dev_5112 mem eni_dev 0 5112 &e_bfad_iocmd_fcpim_cfg_lunmask_fndecl_5112
++e_num_banks_adf_hw_device_data_5115 num_banks adf_hw_device_data 0 5115 NULL
++e_spi_bits_per_word_cw1200_platform_data_spi_5117 spi_bits_per_word cw1200_platform_data_spi 0 5117 NULL nohasharray
++e___link_buffer_fndecl_5117 __link_buffer fndecl 2 5117 &e_spi_bits_per_word_cw1200_platform_data_spi_5117
++e_num_gpio_tc3589x_5118 num_gpio tc3589x 0 5118 NULL
++e_replay_log_leb_fndecl_5123 replay_log_leb fndecl 3 5123 NULL
++e_ocfs2_trim_extent_fndecl_5124 ocfs2_trim_extent fndecl 0-4-3 5124 NULL
++e_ccp_init_sg_workarea_fndecl_5128 ccp_init_sg_workarea fndecl 4 5128 NULL
++e_spu_read_u16_fndecl_5130 spu_read_u16 fndecl 0 5130 NULL
++e_fuse_dev_splice_write_fndecl_5131 fuse_dev_splice_write fndecl 4 5131 NULL
++e_nfs4_init_callback_netid_fndecl_5134 nfs4_init_callback_netid fndecl 0 5134 NULL
++e_rate_num_snd_pcm_hw_params_5135 rate_num snd_pcm_hw_params 0 5135 NULL
++e_rlen_si2157_cmd_5138 rlen si2157_cmd 0 5138 NULL nohasharray
++e_channel_count_il_priv_5138 channel_count il_priv 0 5138 &e_rlen_si2157_cmd_5138
++e___nvme_submit_user_cmd_fndecl_5142 __nvme_submit_user_cmd fndecl 6-7-4 5142 NULL
++e_csio_scsi_eqsize_vardecl_5146 csio_scsi_eqsize vardecl 0 5146 NULL
++e_ocfs2_iget_fndecl_5154 ocfs2_iget fndecl 2 5154 NULL
++e_bt_dev_xfs_buftarg_5155 bt_dev xfs_buftarg 0 5155 NULL nohasharray
++e_total_in_z_stream_s_5155 total_in z_stream_s 0 5155 &e_bt_dev_xfs_buftarg_5155
++e_stv0297_readregs_fndecl_5156 stv0297_readregs fndecl 4 5156 NULL nohasharray
++e_fw_cfg_p_base_vardecl_qemu_fw_cfg_c_5156 fw_cfg_p_base vardecl_qemu_fw_cfg.c 0 5156 &e_stv0297_readregs_fndecl_5156
++e_tx_hdr_len_p54_common_5164 tx_hdr_len p54_common 0 5164 NULL
++e_indices_ixgbe_ring_feature_5170 indices ixgbe_ring_feature 0 5170 NULL
++e_batadv_tt_local_remove_fndecl_5177 batadv_tt_local_remove fndecl 3 5177 NULL
++e_ext4_es_insert_extent_fndecl_5178 ext4_es_insert_extent fndecl 0-2-3-4-5 5178 NULL nohasharray
++e_len_bts_file_action_5178 len bts_file_action 0 5178 &e_ext4_es_insert_extent_fndecl_5178
++e_lpfc_issue_ct_rsp_fndecl_5182 lpfc_issue_ct_rsp fndecl 6 5182 NULL
++e_size_drm_amdgpu_gem_userptr_5196 size drm_amdgpu_gem_userptr 0 5196 NULL
++e_hidp_raw_request_fndecl_5198 hidp_raw_request fndecl 4 5198 NULL
++e_nr_nvkm_fifo_5199 nr nvkm_fifo 0 5199 NULL nohasharray
++e_alloc_fcdev_fndecl_5199 alloc_fcdev fndecl 1 5199 &e_nr_nvkm_fifo_5199
++e_vtbl_size_ubi_device_5209 vtbl_size ubi_device 0 5209 NULL
++e_snd_midi_event_encode_fndecl_5210 snd_midi_event_encode fndecl 0 5210 NULL
++e_drm_gem_private_object_init_fndecl_5217 drm_gem_private_object_init fndecl 3 5217 NULL
++e_phys_ichxrom_window_5221 phys ichxrom_window 0 5221 NULL nohasharray
++e_mutex_lock_killable_nested_fndecl_5221 mutex_lock_killable_nested fndecl 0 5221 &e_phys_ichxrom_window_5221 nohasharray
++e_range_is_allowed_fndecl_5221 range_is_allowed fndecl 1 5221 &e_mutex_lock_killable_nested_fndecl_5221
++e_mmc_test_broken_transfer_fndecl_5224 mmc_test_broken_transfer fndecl 3-2 5224 NULL
++e_madvise_hwpoison_fndecl_5231 madvise_hwpoison fndecl 2 5231 NULL
++e_rx_tpa_end_cmp_misc_v1_rx_tpa_end_cmp_5235 rx_tpa_end_cmp_misc_v1 rx_tpa_end_cmp 0 5235 NULL
++e___ieee80211_stop_rx_ba_session_fndecl_5236 __ieee80211_stop_rx_ba_session fndecl 2 5236 NULL
++e_feednum_dvb_demux_5252 feednum dvb_demux 0 5252 NULL
++e_ovl_mknod_fndecl_5254 ovl_mknod fndecl 4 5254 NULL
++e_len_fstrim_range_5265 len fstrim_range 0 5265 NULL
++e_h_total_aty128_crtc_5275 h_total aty128_crtc 0 5275 NULL
++e_upload_data_fndecl_5277 upload_data fndecl 2 5277 NULL nohasharray
++e_fi_extents_max_fiemap_extent_info_5277 fi_extents_max fiemap_extent_info 0 5277 &e_upload_data_fndecl_5277
++e_xlog_find_verify_log_record_fndecl_5285 xlog_find_verify_log_record fndecl 2 5285 NULL
++e_count_mpc8xxx_spi_5287 count mpc8xxx_spi 0 5287 NULL
++e_pointer_snd_pcm_ops_5295 pointer snd_pcm_ops 0 5295 NULL
++e_dma_offset_freelQ_5299 dma_offset freelQ 0 5299 NULL nohasharray
++e_lpt_hght_ubifs_info_5299 lpt_hght ubifs_info 0 5299 &e_dma_offset_freelQ_5299
++e_drm_ht_create_fndecl_5302 drm_ht_create fndecl 2 5302 NULL
++e_tx_nr_rings_bnxt_5306 tx_nr_rings bnxt 0 5306 NULL
++e_error_ide_atapi_pc_5308 error ide_atapi_pc 0 5308 NULL
++e_sctp_setsockopt_events_fndecl_5309 sctp_setsockopt_events fndecl 3 5309 NULL
++e_beep_amp_alc_spec_5315 beep_amp alc_spec 0 5315 NULL
++e_matchsize_xt_match_5320 matchsize xt_match 0 5320 NULL
++e_mmc_blk_alloc_req_fndecl_5324 mmc_blk_alloc_req fndecl 3 5324 NULL
++e____alloc_bootmem_node_fndecl_5329 ___alloc_bootmem_node fndecl 3-2-4-5 5329 NULL
++e_devcd_read_from_sgtable_fndecl_5341 devcd_read_from_sgtable fndecl 2-5-3 5341 NULL nohasharray
++e_jfs_quota_read_fndecl_5341 jfs_quota_read fndecl 5 5341 &e_devcd_read_from_sgtable_fndecl_5341
++e_lock_and_cleanup_extent_if_need_fndecl_5347 lock_and_cleanup_extent_if_need fndecl 5-4-0 5347 NULL nohasharray
++e_get_cr3_kvm_mmu_5347 get_cr3 kvm_mmu 0 5347 &e_lock_and_cleanup_extent_if_need_fndecl_5347
++e_data_count_iscsi_task_5350 data_count iscsi_task 0 5350 NULL
++e_brcmf_usb_send_ctl_fndecl_5357 brcmf_usb_send_ctl fndecl 3 5357 NULL
++e_michael_mic_fndecl_5363 michael_mic fndecl 5 5363 NULL
++e_nfs4_proc_readdir_fndecl_5367 nfs4_proc_readdir fndecl 5 5367 NULL
++e_xfs_buf_read_uncached_fndecl_5369 xfs_buf_read_uncached fndecl 3-2 5369 NULL
++e_mangle_packet_fndecl_5371 mangle_packet fndecl 7-9 5371 NULL
++e_ieee80211_rx_mgmt_disassoc_fndecl_5372 ieee80211_rx_mgmt_disassoc fndecl 3 5372 NULL
++e_mwifiex_write_data_to_card_fndecl_5375 mwifiex_write_data_to_card fndecl 3 5375 NULL
++e_block_size_squashfs_sb_info_5378 block_size squashfs_sb_info 0 5378 NULL
++e_flash_dev_cache_miss_fndecl_5381 flash_dev_cache_miss fndecl 4 5381 NULL nohasharray
++e_skbprio_ip_set_ext_5381 skbprio ip_set_ext 0 5381 &e_flash_dev_cache_miss_fndecl_5381
++e_fuse_perform_write_fndecl_5386 fuse_perform_write fndecl 4-0 5386 NULL
++e_pcibios_window_alignment_fndecl_5391 pcibios_window_alignment fndecl 0 5391 NULL
++e_error_thin_bio_list_fndecl_5394 error_thin_bio_list fndecl 3 5394 NULL
++e_sysv_set_inode_fndecl_5403 sysv_set_inode fndecl 2 5403 NULL
++e_len_iw_mgmt_info_element_5411 len iw_mgmt_info_element 0 5411 NULL
++e_udpv6_setsockopt_fndecl_5412 udpv6_setsockopt fndecl 5 5412 NULL
++e_allocmin_nilfs_sufile_info_5418 allocmin nilfs_sufile_info 0 5418 NULL
++e_reg_size_intel_iommu_5423 reg_size intel_iommu 0 5423 NULL nohasharray
++e_nilfs_sufile_truncate_range_fndecl_5423 nilfs_sufile_truncate_range fndecl 3-2 5423 &e_reg_size_intel_iommu_5423
++e_isp116x_read_data16_fndecl_5433 isp116x_read_data16 fndecl 0 5433 NULL
++e_port_mad_size_fndecl_5434 port_mad_size fndecl 0 5434 NULL
++e_sigmadsp_read_i2c_fndecl_5435 sigmadsp_read_i2c fndecl 4 5435 NULL
++e_size_drm_radeon_gem_create_5440 size drm_radeon_gem_create 0 5440 NULL
++e_snd_gus_dram_poke_fndecl_5454 snd_gus_dram_poke fndecl 4 5454 NULL
++e_vlen_nfsd_writeargs_5461 vlen nfsd_writeargs 0 5461 NULL
++e_btrfs_fiemap_fndecl_5462 btrfs_fiemap fndecl 4-3 5462 NULL
++e___copy_user_zeroing_intel_fndecl_5469 __copy_user_zeroing_intel fndecl 0 5469 NULL
++e_acpi_register_gsi_ioapic_fndecl_5477 acpi_register_gsi_ioapic fndecl 2 5477 NULL
++e_max_pkeys_mthca_dev_lim_5481 max_pkeys mthca_dev_lim 0 5481 NULL
++e_valuelen_xfs_attr_sf_entry_5490 valuelen xfs_attr_sf_entry 0 5490 NULL
++e_block_isofs_fid_5500 block isofs_fid 0 5500 NULL
++e_s_fpb_ufs_sb_private_info_5504 s_fpb ufs_sb_private_info 0 5504 NULL
++e_f_width_camif_frame_5509 f_width camif_frame 0 5509 NULL
++e___tipc_sendmsg_fndecl_5510 __tipc_sendmsg fndecl 3 5510 NULL
++e_vmw_execbuf_submit_cmdbuf_fndecl_5516 vmw_execbuf_submit_cmdbuf fndecl 3 5516 NULL
++e_smk_write_rules_list_fndecl_5526 smk_write_rules_list fndecl 3 5526 NULL
++e_line_slgt_info_5527 line slgt_info 0 5527 NULL
++e_ceph_tcp_sendpage_fndecl_5531 ceph_tcp_sendpage fndecl 0-4 5531 NULL
++e_fbcon_putc_fndecl_5534 fbcon_putc fndecl 3 5534 NULL
++e_batadv_arp_get_type_fndecl_5538 batadv_arp_get_type fndecl 3 5538 NULL
++e_vector_acpi_hest_notify_5540 vector acpi_hest_notify 0 5540 NULL
++e_logical_ext4_allocation_request_5548 logical ext4_allocation_request 0 5548 NULL
++e___netdev_alloc_skb_fndecl_5552 __netdev_alloc_skb fndecl 2 5552 NULL
++e_hpfs_search_hotfix_map_fndecl_5559 hpfs_search_hotfix_map fndecl 0-2 5559 NULL
++e_filemap_fdatawait_range_fndecl_5563 filemap_fdatawait_range fndecl 0 5563 NULL
++e_nfs41_maxread_overhead_vardecl_5564 nfs41_maxread_overhead vardecl 0 5564 NULL
++e_iowarrior_write_fndecl_5567 iowarrior_write fndecl 3 5567 NULL
++e_ihl_xfrm_mode_skb_cb_5571 ihl xfrm_mode_skb_cb 0 5571 NULL nohasharray
++e_session_udf_options_5571 session udf_options 0 5571 &e_ihl_xfrm_mode_skb_cb_5571
++e___dev_set_mtu_fndecl_5572 __dev_set_mtu fndecl 2 5572 NULL
++e_nblocks_range2trim_5574 nblocks range2trim 0 5574 NULL
++e_target_check_max_data_sg_nents_fndecl_5575 target_check_max_data_sg_nents fndecl 3 5575 NULL
++e_i2c_read_eeprom_fndecl_5583 i2c_read_eeprom fndecl 5 5583 NULL
++e_from_buffer_fndecl_5586 from_buffer fndecl 3 5586 NULL nohasharray
++e_nfqnl_get_sk_secctx_fndecl_5586 nfqnl_get_sk_secctx fndecl 0 5586 &e_from_buffer_fndecl_5586
++e_bg_itable_unused_lo_ext4_group_desc_5594 bg_itable_unused_lo ext4_group_desc 0 5594 NULL
++e_nftl_write_fndecl_5605 nftl_write fndecl 2 5605 NULL
++e_pbl_base_rdma_info_5607 pbl_base rdma_info 0 5607 NULL
++e_snd_pcm_oss_write3_fndecl_5618 snd_pcm_oss_write3 fndecl 0-3 5618 NULL
++e_odata_dma_usb_xpad_5619 odata_dma usb_xpad 0 5619 NULL
++e_shmem_fallocate_fndecl_5621 shmem_fallocate fndecl 4-3 5621 NULL
++e_max_volume_radio_isa_driver_5623 max_volume radio_isa_driver 0 5623 NULL
++e_xfs_iext_insert_fndecl_5624 xfs_iext_insert fndecl 3 5624 NULL
++e_gtt_end_radeon_mc_5628 gtt_end radeon_mc 0 5628 NULL
++e_max_sectors_ide_port_info_5629 max_sectors ide_port_info 0 5629 NULL
++e_id_iio_dev_5631 id iio_dev 0 5631 NULL
++e_screen_width_vardecl_hyperv_fb_c_5635 screen_width vardecl_hyperv_fb.c 0 5635 NULL
++e_num_counters_compat_ip6t_replace_5636 num_counters compat_ip6t_replace 0 5636 NULL
++e_udpv6_recvmsg_fndecl_5638 udpv6_recvmsg fndecl 3 5638 NULL
++e_snd_mask_max_fndecl_5643 snd_mask_max fndecl 0 5643 NULL
++e_snd_pcm_capture_rewind_fndecl_5646 snd_pcm_capture_rewind fndecl 2 5646 NULL nohasharray
++e_qrtr_sendmsg_fndecl_5646 qrtr_sendmsg fndecl 3 5646 &e_snd_pcm_capture_rewind_fndecl_5646
++e_efi_memdesc_size_efi_info_5654 efi_memdesc_size efi_info 0 5654 NULL
++e_dev_id_pci_id_descr_5657 dev_id pci_id_descr 0 5657 NULL nohasharray
++e___spi_map_msg_fndecl_5657 __spi_map_msg fndecl 0 5657 &e_dev_id_pci_id_descr_5657
++e_vmw_kms_stdu_dma_fndecl_5659 vmw_kms_stdu_dma fndecl 7 5659 NULL
++e_isert_put_login_tx_fndecl_5660 isert_put_login_tx fndecl 3 5660 NULL
++e_block_mask_htc_target_5671 block_mask htc_target 0 5671 NULL
++e_fbcon_redraw_fndecl_5672 fbcon_redraw fndecl 3 5672 NULL nohasharray
++e_sgl_read_to_frags_fndecl_5672 sgl_read_to_frags fndecl 3-2 5672 &e_fbcon_redraw_fndecl_5672
++e_mtu_ppp_channel_5679 mtu ppp_channel 0 5679 NULL nohasharray
++e_blklen_regcache_rbtree_node_5679 blklen regcache_rbtree_node 0 5679 &e_mtu_ppp_channel_5679
++e_ext4_es_alloc_extent_fndecl_5681 ext4_es_alloc_extent fndecl 3-2-4 5681 NULL
++e_mmc_hs200_to_hs400_fndecl_5686 mmc_hs200_to_hs400 fndecl 0 5686 NULL
++e_s_blocks_count_ext2_super_block_5695 s_blocks_count ext2_super_block 0 5695 NULL
++e_write_bytes_to_xdr_buf_fndecl_5702 write_bytes_to_xdr_buf fndecl 4-2 5702 NULL
++e_io_mapping_map_wc_fndecl_5703 io_mapping_map_wc fndecl 2 5703 NULL
++e_cfg80211_rx_unprot_mlme_mgmt_fndecl_5707 cfg80211_rx_unprot_mlme_mgmt fndecl 3 5707 NULL
++e_virtnet_change_mtu_fndecl_5709 virtnet_change_mtu fndecl 2 5709 NULL
++e_setup_shmem_window_fndecl_5711 setup_shmem_window fndecl 4-2 5711 NULL
++e_sys_fcntl_fndecl_5712 sys_fcntl fndecl 3 5712 NULL
++e_in_attr_len_ore_io_state_5713 in_attr_len ore_io_state 0 5713 NULL
++e_vt_hdr_vxfs_typed_5715 vt_hdr vxfs_typed 0 5715 NULL
++e_hfsplus_get_block_fndecl_5725 hfsplus_get_block fndecl 2 5725 NULL
++e_tile_alloc_offset_vc4_exec_info_5733 tile_alloc_offset vc4_exec_info 0 5733 NULL
++e_max_order_mlx4_buddy_5738 max_order mlx4_buddy 0 5738 NULL
++e_SYSC_sendfile64_fndecl_5740 SYSC_sendfile64 fndecl 4 5740 NULL
++e_max_phys_sect_nvm_dev_ops_5745 max_phys_sect nvm_dev_ops 0 5745 NULL
++e_scrbuf_sisusb_usb_data_5749 scrbuf sisusb_usb_data 0 5749 NULL
++e_skb_checksum_maybe_trim_fndecl_5755 skb_checksum_maybe_trim fndecl 2 5755 NULL
++e_nci_prop_cmd_fndecl_5756 nci_prop_cmd fndecl 3 5756 NULL
++e_setup_extent_mapping_fndecl_5768 setup_extent_mapping fndecl 3-2-4 5768 NULL
++e_entry_end_fndecl_5777 entry_end fndecl 0 5777 NULL
++e_xfs_map_at_offset_fndecl_5785 xfs_map_at_offset fndecl 4 5785 NULL
++e_bq32k_read_fndecl_5789 bq32k_read fndecl 4 5789 NULL
++e_pci_mem_start_vardecl_5790 pci_mem_start vardecl 0 5790 NULL
++e_msix_count_i40e_info_5794 msix_count i40e_info 0 5794 NULL
++e_msi_domain_populate_irqs_fndecl_5802 msi_domain_populate_irqs fndecl 3 5802 NULL
++e_p9_check_zc_errors_fndecl_5806 p9_check_zc_errors fndecl 4 5806 NULL
++e_usb_ftdi_elan_edset_output_fndecl_5808 usb_ftdi_elan_edset_output fndecl 0 5808 NULL
++e_ubifs_recover_size_accum_fndecl_5809 ubifs_recover_size_accum fndecl 4 5809 NULL nohasharray
++e_NumPhys__CONFIG_PAGE_SAS_EXPANDER_0_5809 NumPhys _CONFIG_PAGE_SAS_EXPANDER_0 0 5809 &e_ubifs_recover_size_accum_fndecl_5809
++e_firmware_data_write_fndecl_5811 firmware_data_write fndecl 6-5 5811 NULL nohasharray
++e_length_uwb_ie_hdr_5811 length uwb_ie_hdr 0 5811 &e_firmware_data_write_fndecl_5811
++e_ncp_read_bounce_fndecl_5812 ncp_read_bounce fndecl 8 5812 NULL
++e_compr_flush_fndecl_5826 compr_flush fndecl 2 5826 NULL
++e_zlib_decompress_biovec_fndecl_5829 zlib_decompress_biovec fndecl 6 5829 NULL
++e_dvbdmx_write_fndecl_5836 dvbdmx_write fndecl 3 5836 NULL
++e_synproxy_options_size_fndecl_5837 synproxy_options_size fndecl 0 5837 NULL
++e_i2c_mux_add_adapter_fndecl_5840 i2c_mux_add_adapter fndecl 2 5840 NULL
++e_interpret_user_input_fndecl_5842 interpret_user_input fndecl 2 5842 NULL
++e_transferred_vardecl_shuttle_usbat_c_5845 transferred vardecl_shuttle_usbat.c 0 5845 NULL
++e_sound_insert_unit_fndecl_5861 sound_insert_unit fndecl 3-4 5861 NULL
++e_ypan_up_fndecl_5864 ypan_up fndecl 2 5864 NULL nohasharray
++e_len_hv_mpb_array_5864 len hv_mpb_array 0 5864 &e_ypan_up_fndecl_5864
++e_um_size_bcm5974_config_5867 um_size bcm5974_config 0 5867 NULL
++e_e1000_receive_skb_fndecl_5875 e1000_receive_skb fndecl 5 5875 NULL
++e_sq_db_page_mthca_create_qp_5878 sq_db_page mthca_create_qp 0 5878 NULL nohasharray
++e_get_rx_status_altera_dmaops_5878 get_rx_status altera_dmaops 0 5878 &e_sq_db_page_mthca_create_qp_5878
++e_cydata_ofsh_cyttsp4_sysinfo_data_5887 cydata_ofsh cyttsp4_sysinfo_data 0 5887 NULL
++e_max_sg_count_hpt_iop_request_get_config_5890 max_sg_count hpt_iop_request_get_config 0 5890 NULL nohasharray
++e_entity_internal_idx_max_media_device_5890 entity_internal_idx_max media_device 0 5890 &e_max_sg_count_hpt_iop_request_get_config_5890
++e_force_max_req_size_vardecl_vub300_c_5891 force_max_req_size vardecl_vub300.c 0 5891 NULL
++e_dma_common_pages_remap_fndecl_5893 dma_common_pages_remap fndecl 2 5893 NULL
++e_size_squashfs_dir_entry_5896 size squashfs_dir_entry 0 5896 NULL
++e___nla_reserve_fndecl_5901 __nla_reserve fndecl 3 5901 NULL
++e_set_extent_bits_fndecl_5904 set_extent_bits fndecl 3-2 5904 NULL
++e_alloc_rx_slot_fndecl_5908 alloc_rx_slot fndecl 0 5908 NULL
++e_sctp_tsnmap_num_gabs_fndecl_5915 sctp_tsnmap_num_gabs fndecl 0 5915 NULL
++e_rtsx_usb_led_control_fndecl_5916 rtsx_usb_led_control fndecl 2 5916 NULL
++e_buffer_len_async_pdu_handle_5928 buffer_len async_pdu_handle 0 5928 NULL
++e_ocfs2_reflink_xattr_buckets_fndecl_5931 ocfs2_reflink_xattr_buckets fndecl 7 5931 NULL
++e_intel_gtt_unmap_memory_fndecl_5935 intel_gtt_unmap_memory fndecl 2 5935 NULL
++e_num_of_paging_blk_iwl_mvm_5936 num_of_paging_blk iwl_mvm 0 5936 NULL
++e_max_attributes_pmbus_data_5939 max_attributes pmbus_data 0 5939 NULL
++e_ide_config_drive_speed_fndecl_5940 ide_config_drive_speed fndecl 2 5940 NULL
++e_gfn_to_pfn_atomic_fndecl_5942 gfn_to_pfn_atomic fndecl 2 5942 NULL
++e_buffer_blocks_osst_buffer_5944 buffer_blocks osst_buffer 0 5944 NULL
++e_height_tm6000_fh_5952 height tm6000_fh 0 5952 NULL
++e_count_w6692B_hw_5953 count w6692B_hw 0 5953 NULL
++e_skb_split_inside_header_fndecl_5956 skb_split_inside_header fndecl 3-4 5956 NULL
++e_len_ias_value_5959 len ias_value 0 5959 NULL
++e_tx_hdrlen_brcmf_sdio_5961 tx_hdrlen brcmf_sdio 0 5961 NULL
++e_viafb_second_size_vardecl_viafbdev_c_5965 viafb_second_size vardecl_viafbdev.c 0 5965 NULL
++e_allocmax_nilfs_sufile_info_5969 allocmax nilfs_sufile_info 0 5969 NULL
++e_new_state_tpacpi_led_classdev_5974 new_state tpacpi_led_classdev 0 5974 NULL
++e_f2fs_setxattr_fndecl_5975 f2fs_setxattr fndecl 5 5975 NULL
++e_nfsd4_encode_dirent_fndecl_5983 nfsd4_encode_dirent fndecl 3 5983 NULL
++e_btrfs_chunk_stripe_len_fndecl_5988 btrfs_chunk_stripe_len fndecl 0 5988 NULL
++e_acpi_install_table_fndecl_6000 acpi_install_table fndecl 1 6000 NULL nohasharray
++e_revalidate_fndecl_6000 revalidate fndecl 2 6000 &e_acpi_install_table_fndecl_6000 nohasharray
++e_snd_hdac_read_parm_uncached_fndecl_6000 snd_hdac_read_parm_uncached fndecl 0 6000 &e_revalidate_fndecl_6000
++e_clk_recalc_fndecl_6001 clk_recalc fndecl 0-2 6001 NULL
++e_afs_vnode_store_data_fndecl_6011 afs_vnode_store_data fndecl 4-5 6011 NULL
++e_sun6i_dma_prep_dma_cyclic_fndecl_6013 sun6i_dma_prep_dma_cyclic fndecl 4 6013 NULL nohasharray
++e_mmc_send_status_fndecl_6013 mmc_send_status fndecl 0 6013 &e_sun6i_dma_prep_dma_cyclic_fndecl_6013 nohasharray
++e_code_size_fw_bl_desc_6013 code_size fw_bl_desc 0 6013 &e_mmc_send_status_fndecl_6013
++e_sys_process_vm_readv_fndecl_6017 sys_process_vm_readv fndecl 5-3 6017 NULL
++e_max_discard_sectors_queue_limits_6023 max_discard_sectors queue_limits 0 6023 NULL
++e_wqe_cnt_mlx5_ib_wq_6024 wqe_cnt mlx5_ib_wq 0 6024 NULL nohasharray
++e_bfad_iocmd_porglog_get_fndecl_6024 bfad_iocmd_porglog_get fndecl 0 6024 &e_wqe_cnt_mlx5_ib_wq_6024
++e_icv_trunc_len_ah_data_6025 icv_trunc_len ah_data 0 6025 NULL nohasharray
++e_flags_rtl8180_rx_desc_6025 flags rtl8180_rx_desc 0 6025 &e_icv_trunc_len_ah_data_6025
++e_xlog_bwrite_fndecl_6028 xlog_bwrite fndecl 2 6028 NULL
++e_size_drm_vc4_create_shader_bo_6033 size drm_vc4_create_shader_bo 0 6033 NULL
++e_msix_map_region_fndecl_6035 msix_map_region fndecl 2 6035 NULL
++e_ceph_create_snap_context_fndecl_6041 ceph_create_snap_context fndecl 1 6041 NULL
++e_cmipci_sb_reg_decode_fndecl_6048 cmipci_sb_reg_decode fndecl 2 6048 NULL
++e_n_ssids_cfg80211_scan_request_6049 n_ssids cfg80211_scan_request 0 6049 NULL
++e_dmi_len_vardecl_dmi_scan_c_6054 dmi_len vardecl_dmi_scan.c 0 6054 NULL nohasharray
++e_ext4_inode_table_fndecl_6054 ext4_inode_table fndecl 0 6054 &e_dmi_len_vardecl_dmi_scan_c_6054
++e_map_base_tpm_inf_dev_6056 map_base tpm_inf_dev 0 6056 NULL
++e_length_hci_ev_le_advertising_info_6074 length hci_ev_le_advertising_info 0 6074 NULL
++e_elog_len_extlog_l1_head_6075 elog_len extlog_l1_head 0 6075 NULL
++e_ioctx_alloc_fndecl_6081 ioctx_alloc fndecl 1 6081 NULL
++e_remote_miu_nfc_llcp_sock_6088 remote_miu nfc_llcp_sock 0 6088 NULL
++e_channel_num_ad9523_channel_spec_6095 channel_num ad9523_channel_spec 0 6095 NULL
++e_sdmmc_execute_tuning_fndecl_6102 sdmmc_execute_tuning fndecl 2 6102 NULL
++e_alloc_irdadev_fndecl_6103 alloc_irdadev fndecl 1 6103 NULL
++e_rate_min_snd_pcm_hardware_6109 rate_min snd_pcm_hardware 0 6109 NULL nohasharray
++e_blkdev_issue_discard_fndecl_6109 blkdev_issue_discard fndecl 0-3-2 6109 &e_rate_min_snd_pcm_hardware_6109
++e_resid_scsi_data_buffer_6113 resid scsi_data_buffer 0 6113 NULL
++e_ilf_blkno_xfs_inode_log_format_6118 ilf_blkno xfs_inode_log_format 0 6118 NULL
++e_hblank_panel_info_6122 hblank panel_info 0 6122 NULL
++e_pwc_get_fps_Kiara_fndecl_6127 pwc_get_fps_Kiara fndecl 0 6127 NULL
++e_smk_write_access2_fndecl_6129 smk_write_access2 fndecl 3 6129 NULL
++e_buf_count_slgt_desc_6140 buf_count slgt_desc 0 6140 NULL
++e_max_gs_mlx5_ib_wq_6148 max_gs mlx5_ib_wq 0 6148 NULL
++e_bytes_per_sector_mspro_devinfo_6149 bytes_per_sector mspro_devinfo 0 6149 NULL
++e_name_len_f2fs_dir_entry_6154 name_len f2fs_dir_entry 0 6154 NULL
++e_filemap_fdatawait_fndecl_6155 filemap_fdatawait fndecl 0 6155 NULL
++e_gfn_to_pfn_memslot_fndecl_6158 gfn_to_pfn_memslot fndecl 2 6158 NULL
++e_udf_read_tagged_fndecl_6160 udf_read_tagged fndecl 2 6160 NULL nohasharray
++e_buf_size_rte_log_le_6160 buf_size rte_log_le 0 6160 &e_udf_read_tagged_fndecl_6160
++e_kernel_write_fndecl_6162 kernel_write fndecl 3-0 6162 NULL
++e_qgroup_account_snapshot_fndecl_6169 qgroup_account_snapshot fndecl 5 6169 NULL
++e_dsp_tone_hw_message_fndecl_6173 dsp_tone_hw_message fndecl 3 6173 NULL
++e_m_agirotor_xfs_mount_6177 m_agirotor xfs_mount 0 6177 NULL
++e_ubifs_xattr_set_fndecl_6192 ubifs_xattr_set fndecl 6 6192 NULL
++e_start_mtd_oob_buf64_6198 start mtd_oob_buf64 0 6198 NULL
++e___geneve_change_mtu_fndecl_6199 __geneve_change_mtu fndecl 2 6199 NULL
++e_venus_rename_fndecl_6200 venus_rename fndecl 4-5 6200 NULL nohasharray
++e_fec_interleave_fndecl_6200 fec_interleave fndecl 0-2 6200 &e_venus_rename_fndecl_6200
++e___send_write_same_fndecl_6201 __send_write_same fndecl 0 6201 NULL
++e_height_linux_logo_6207 height linux_logo 0 6207 NULL nohasharray
++e_digi_write_oob_command_fndecl_6207 digi_write_oob_command fndecl 3 6207 &e_height_linux_logo_6207
++e_index_lola_stream_6210 index lola_stream 0 6210 NULL nohasharray
++e_dac_channels_pcm_oxygen_model_6210 dac_channels_pcm oxygen_model 0 6210 &e_index_lola_stream_6210
++e_bnxt_calc_nr_ring_pages_fndecl_6213 bnxt_calc_nr_ring_pages fndecl 0-2-1 6213 NULL
++e_val_bits_regmap_config_6218 val_bits regmap_config 0 6218 NULL
++e_sc_ssid_len_wl18xx_event_mailbox_6223 sc_ssid_len wl18xx_event_mailbox 0 6223 NULL
++e_bictcp_update_fndecl_6224 bictcp_update fndecl 2 6224 NULL
++e_SYSC_mmap_pgoff_fndecl_6227 SYSC_mmap_pgoff fndecl 2 6227 NULL nohasharray
++e_nr_sects_rrpc_6227 nr_sects rrpc 0 6227 &e_SYSC_mmap_pgoff_fndecl_6227
++e_exofs_read_lookup_dev_table_fndecl_6230 exofs_read_lookup_dev_table fndecl 3 6230 NULL
++e_cxgbit_ppod_write_idata_fndecl_6234 cxgbit_ppod_write_idata fndecl 5 6234 NULL
++e_sctpprobe_read_fndecl_6238 sctpprobe_read fndecl 3 6238 NULL nohasharray
++e_bytenr_backref_node_6238 bytenr backref_node 0 6238 &e_sctpprobe_read_fndecl_6238
++e_setup_sgl_fndecl_6242 setup_sgl fndecl 4-5 6242 NULL
++e_ag_xfs_fstrm_item_6243 ag xfs_fstrm_item 0 6243 NULL
++e_buffer_size_bna_rxq_6244 buffer_size bna_rxq 0 6244 NULL
++e_mode_offset_pktcdvd_device_6248 mode_offset pktcdvd_device 0 6248 NULL
++e_rxq_cnt_tg3_6249 rxq_cnt tg3 0 6249 NULL
++e_ubifs_leb_change_fndecl_6254 ubifs_leb_change fndecl 4 6254 NULL
++e_blkno_xfs_bmalloca_6265 blkno xfs_bmalloca 0 6265 NULL nohasharray
++e_bNumInterfaces_usb_config_descriptor_6265 bNumInterfaces usb_config_descriptor 0 6265 &e_blkno_xfs_bmalloca_6265
++e_xs_setup_xprt_fndecl_6266 xs_setup_xprt fndecl 3-2 6266 NULL
++e_size_drm_vmw_alloc_dmabuf_req_6273 size drm_vmw_alloc_dmabuf_req 0 6273 NULL
++e_vb2_dma_sg_get_userptr_fndecl_6274 vb2_dma_sg_get_userptr fndecl 2-3 6274 NULL
++e_sb_nextnum_nilfs_segment_buffer_6275 sb_nextnum nilfs_segment_buffer 0 6275 NULL
++e_dm_cell_error_fndecl_6277 dm_cell_error fndecl 3 6277 NULL
++e_copy_out_args_fndecl_6283 copy_out_args fndecl 3 6283 NULL
++e_regmap_i2c_gather_write_fndecl_6284 regmap_i2c_gather_write fndecl 3-5 6284 NULL nohasharray
++e_data_len_op_arr_write_6284 data_len op_arr_write 0 6284 &e_regmap_i2c_gather_write_fndecl_6284
++e_gnet_stats_copy_app_fndecl_6286 gnet_stats_copy_app fndecl 3 6286 NULL
++e__snd_pcm_lib_alloc_vmalloc_buffer_fndecl_6287 _snd_pcm_lib_alloc_vmalloc_buffer fndecl 2 6287 NULL
++e_SYSC_truncate_fndecl_6290 SYSC_truncate fndecl 2 6290 NULL
++e_hOver_plus_panel_info_6297 hOver_plus panel_info 0 6297 NULL
++e_lpuart_copy_rx_to_tty_fndecl_6298 lpuart_copy_rx_to_tty fndecl 3 6298 NULL
++e_iin_wMaxPacketSize_usbtmc_device_data_6306 iin_wMaxPacketSize usbtmc_device_data 0 6306 NULL
++e_em28xx_audio_ep_packet_size_fndecl_6311 em28xx_audio_ep_packet_size fndecl 0 6311 NULL
++e_sectors_r1bio_6323 sectors r1bio 0 6323 NULL
++e_totalhigh_sysinfo_6327 totalhigh sysinfo 0 6327 NULL nohasharray
++e_max_ustore_icp_qat_fw_loader_hal_handle_6327 max_ustore icp_qat_fw_loader_hal_handle 0 6327 &e_totalhigh_sysinfo_6327
++e_cipso_v4_gentag_rbm_fndecl_6335 cipso_v4_gentag_rbm fndecl 0 6335 NULL nohasharray
++e_raid5_build_block_fndecl_6335 raid5_build_block fndecl 2 6335 &e_cipso_v4_gentag_rbm_fndecl_6335 nohasharray
++e_asd_get_devctx_size_fndecl_6335 asd_get_devctx_size fndecl 0 6335 &e_raid5_build_block_fndecl_6335
++e_ray_cs_essid_proc_write_fndecl_6336 ray_cs_essid_proc_write fndecl 3 6336 NULL
++e_virtio_cread32_fndecl_6338 virtio_cread32 fndecl 0 6338 NULL nohasharray
++e_min_pix_clk_div_smiapp_pll_branch_limits_6338 min_pix_clk_div smiapp_pll_branch_limits 0 6338 &e_virtio_cread32_fndecl_6338
++e_h_max_out_saa7146_standard_6339 h_max_out saa7146_standard 0 6339 NULL
++e_orinoco_set_key_fndecl_6341 orinoco_set_key fndecl 5-7 6341 NULL
++e_n_o_ps_usb_stream_kernel_6346 n_o_ps usb_stream_kernel 0 6346 NULL
++e_wbuf_ofs_jffs2_sb_info_6347 wbuf_ofs jffs2_sb_info 0 6347 NULL
++e_hsmmc_command_incomplete_fndecl_6348 hsmmc_command_incomplete fndecl 2 6348 NULL
++e_flags_fcoe_fcf_6349 flags fcoe_fcf 0 6349 NULL
++e_chipid_to_nrcores_fndecl_6352 chipid_to_nrcores fndecl 0 6352 NULL
++e_pci_mmconfig_insert_fndecl_6353 pci_mmconfig_insert fndecl 3-4-5 6353 NULL
++e_lrf_body_len_nfsd4_layoutreturn_6359 lrf_body_len nfsd4_layoutreturn 0 6359 NULL
++e_len_p54_rx_data_6362 len p54_rx_data 0 6362 NULL
++e_sisusb_send_bulk_msg_fndecl_6363 sisusb_send_bulk_msg fndecl 3-2 6363 NULL
++e_alloc_sja1000dev_fndecl_6367 alloc_sja1000dev fndecl 1 6367 NULL
++e_elants_i2c_execute_command_fndecl_6371 elants_i2c_execute_command fndecl 3-5 6371 NULL nohasharray
++e_recover_head_fndecl_6371 recover_head fndecl 3 6371 &e_elants_i2c_execute_command_fndecl_6371
++e_xfs_buf_associate_memory_fndecl_6376 xfs_buf_associate_memory fndecl 3 6376 NULL
++e_blkfactor_dio_submit_6380 blkfactor dio_submit 0 6380 NULL nohasharray
++e_cur_inode_size_send_ctx_6380 cur_inode_size send_ctx 0 6380 &e_blkfactor_dio_submit_6380
++e_tail_hid_debug_list_6381 tail hid_debug_list 0 6381 NULL
++e_xfs_rtallocate_extent_near_fndecl_6383 xfs_rtallocate_extent_near fndecl 9-3-5-0 6383 NULL
++e_snd_info_entry_llseek_fndecl_6384 snd_info_entry_llseek fndecl 2 6384 NULL
++e_max_agbno_xfs_alloc_arg_6395 max_agbno xfs_alloc_arg 0 6395 NULL
++e_i_file_acl_ext2_inode_info_6396 i_file_acl ext2_inode_info 0 6396 NULL
++e_alloc_blocks_hfs_inode_info_6406 alloc_blocks hfs_inode_info 0 6406 NULL
++e_brcmf_chip_sysmem_ramsize_fndecl_6407 brcmf_chip_sysmem_ramsize fndecl 0 6407 NULL
++e_copy_from_iter_fndecl_6410 copy_from_iter fndecl 0-2 6410 NULL
++e_paravirt_read_msr_safe_fndecl_6416 paravirt_read_msr_safe fndecl 0 6416 NULL
++e_fwnet_change_mtu_fndecl_6424 fwnet_change_mtu fndecl 2 6424 NULL
++e_de_entrylen_reiserfs_dir_entry_6426 de_entrylen reiserfs_dir_entry 0 6426 NULL
++e_dib9000_write16_attr_fndecl_6428 dib9000_write16_attr fndecl 4 6428 NULL
++e_SyS_mknod_fndecl_6433 SyS_mknod fndecl 3 6433 NULL
++e_sys_brk_fndecl_6435 sys_brk fndecl 1 6435 NULL
++e___ref_totlen_fndecl_6438 __ref_totlen fndecl 0 6438 NULL
++e_probe_bios_fndecl_6440 probe_bios fndecl 1 6440 NULL nohasharray
++e_parse_dcb20_entry_fndecl_6440 parse_dcb20_entry fndecl 3 6440 &e_probe_bios_fndecl_6440
++e_nvme_iod_alloc_size_fndecl_6444 nvme_iod_alloc_size fndecl 2-0-3 6444 NULL
++e_i40iw_qp_roundup_fndecl_6447 i40iw_qp_roundup fndecl 0 6447 NULL
++e_max_packet_sz_tx_musb_hw_ep_6448 max_packet_sz_tx musb_hw_ep 0 6448 NULL
++e_snd_hammerfall_get_buffer_fndecl_6450 snd_hammerfall_get_buffer fndecl 3 6450 NULL nohasharray
++e_SYSC_fcntl_fndecl_6450 SYSC_fcntl fndecl 3 6450 &e_snd_hammerfall_get_buffer_fndecl_6450
++e_out_epnum_usb_gadget_6453 out_epnum usb_gadget 0 6453 NULL
++e_iov_iter_advance_fndecl_6457 iov_iter_advance fndecl 2 6457 NULL
++e_xtTruncate_fndecl_6468 xtTruncate fndecl 3 6468 NULL
++e_dm_end_request_fndecl_6471 dm_end_request fndecl 2 6471 NULL
++e_dx_fb_image_6483 dx fb_image 0 6483 NULL
++e_datasize_vub300_mmc_host_6490 datasize vub300_mmc_host 0 6490 NULL nohasharray
++e_beep_amp_ad198x_spec_6490 beep_amp ad198x_spec 0 6490 &e_datasize_vub300_mmc_host_6490
++e_size_blk_dax_ctl_6491 size blk_dax_ctl 0 6491 NULL nohasharray
++e_isac_ale_bkm_hw_6491 isac_ale bkm_hw 0 6491 &e_size_blk_dax_ctl_6491
++e_curr_dma_words_tegra_spi_data_6500 curr_dma_words tegra_spi_data 0 6500 NULL
++e_inc_remap_and_issue_cell_fndecl_6505 inc_remap_and_issue_cell fndecl 3 6505 NULL
++e_hugetlb_file_setup_fndecl_6506 hugetlb_file_setup fndecl 2 6506 NULL
++e_vfs_setpos_fndecl_6511 vfs_setpos fndecl 2 6511 NULL
++e_base_size_aac_dev_6512 base_size aac_dev 0 6512 NULL
++e_l2_fhdr_vlan_tag_l2_fhdr_6516 l2_fhdr_vlan_tag l2_fhdr 0 6516 NULL
++e_lbs_highrssi_write_fndecl_6520 lbs_highrssi_write fndecl 3 6520 NULL
++e_copy_page_from_iter_fndecl_6523 copy_page_from_iter fndecl 0-3 6523 NULL
++e_sector_start_dm_target_spec_6526 sector_start dm_target_spec 0 6526 NULL
++e_copy_from_user_fndecl_6532 copy_from_user fndecl 0-3 6532 NULL
++e_bytes_cifs_readdata_6533 bytes cifs_readdata 0 6533 NULL
++e_size_i40iw_kmem_info_6537 size i40iw_kmem_info 0 6537 NULL nohasharray
++e_size_ubifs_wbuf_6537 size ubifs_wbuf 0 6537 &e_size_i40iw_kmem_info_6537
++e_tx_ring_size_vmxnet3_adapter_6541 tx_ring_size vmxnet3_adapter 0 6541 NULL
++e_fe_logical_ext4_free_extent_6542 fe_logical ext4_free_extent 0 6542 NULL
++e_FPU_exception_fndecl_6543 FPU_exception fndecl 1 6543 NULL
++e_max_vfs_vardecl_igb_main_c_6547 max_vfs vardecl_igb_main.c 0 6547 NULL
++e_pcm_snd_bebob_stream_formation_6548 pcm snd_bebob_stream_formation 0 6548 NULL nohasharray
++e_count_ixgb_desc_ring_6548 count ixgb_desc_ring 0 6548 &e_pcm_snd_bebob_stream_formation_6548
++e_jffs2_security_setxattr_fndecl_6550 jffs2_security_setxattr fndecl 6 6550 NULL
++e_xlog_do_log_recovery_fndecl_6557 xlog_do_log_recovery fndecl 3 6557 NULL
++e_active_duplex_tg3_link_config_6559 active_duplex tg3_link_config 0 6559 NULL
++e_cxgbit_xmit_pdu_fndecl_6562 cxgbit_xmit_pdu fndecl 5 6562 NULL
++e_verity_verify_io_fndecl_6564 verity_verify_io fndecl 0 6564 NULL
++e_sddr09_read21_fndecl_6568 sddr09_read21 fndecl 4-3-6 6568 NULL
++e_ath6kl_wmi_connect_cmd_fndecl_6571 ath6kl_wmi_connect_cmd fndecl 2 6571 NULL
++e_rts51x_write_mem_fndecl_6573 rts51x_write_mem fndecl 4 6573 NULL
++e_log_num_qps_mlx4_init_hca_param_6574 log_num_qps mlx4_init_hca_param 0 6574 NULL
++e_gcd_fndecl_6579 gcd fndecl 0 6579 NULL
++e_argc_tomoyo_condition_6587 argc tomoyo_condition 0 6587 NULL
++e_wil_write_file_rxon_fndecl_6590 wil_write_file_rxon fndecl 3 6590 NULL
++e_capture_frlog_rme96_6593 capture_frlog rme96 0 6593 NULL
++e_bfad_iocmd_vport_clr_stats_fndecl_6597 bfad_iocmd_vport_clr_stats fndecl 0 6597 NULL
++e_pci_get_device_fndecl_6606 pci_get_device fndecl 2 6606 NULL
++e_dma_map_page_fndecl_6607 dma_map_page fndecl 0 6607 NULL
++e_osst_execute_fndecl_6612 osst_execute fndecl 3-6 6612 NULL nohasharray
++e_irda_sendmsg_ultra_fndecl_6612 irda_sendmsg_ultra fndecl 3 6612 &e_osst_execute_fndecl_6612
++e_length_v4l2_mbus_frame_desc_entry_6616 length v4l2_mbus_frame_desc_entry 0 6616 NULL
++e_ocfs2_mark_extent_written_fndecl_6620 ocfs2_mark_extent_written fndecl 6-4 6620 NULL
++e_ath_recv_fndecl_6621 ath_recv fndecl 3 6621 NULL
++e_num_outputs_drm_vmw_update_layout_arg_6623 num_outputs drm_vmw_update_layout_arg 0 6623 NULL
++e_hw_queue_depth_vardecl_null_blk_c_6624 hw_queue_depth vardecl_null_blk.c 0 6624 NULL
++e_cifs_setsize_fndecl_6630 cifs_setsize fndecl 2 6630 NULL nohasharray
++e_copy_for_split_fndecl_6630 copy_for_split fndecl 7-8 6630 &e_cifs_setsize_fndecl_6630
++e_sample_rate_echoaudio_6631 sample_rate echoaudio 0 6631 NULL
++e_integrity_read_file_fndecl_6633 integrity_read_file fndecl 0 6633 NULL
++e_packet_setsockopt_fndecl_6637 packet_setsockopt fndecl 5 6637 NULL nohasharray
++e_ubi_io_read_data_fndecl_6637 ubi_io_read_data fndecl 0 6637 &e_packet_setsockopt_fndecl_6637
++e_xmit_count_modem_info_6639 xmit_count modem_info 0 6639 NULL
++e_bpp_xvip_video_format_6640 bpp xvip_video_format 0 6640 NULL
++e_local_payload_max_nfc_digital_dev_6651 local_payload_max nfc_digital_dev 0 6651 NULL
++e_length_acpi_namestring_info_6654 length acpi_namestring_info 0 6654 NULL
++e_async_error_osd_request_6658 async_error osd_request 0 6658 NULL
++e_persistent_commit_merge_fndecl_6660 persistent_commit_merge fndecl 2 6660 NULL
++e_nilfs_segment_list_add_fndecl_6665 nilfs_segment_list_add fndecl 2 6665 NULL
++e_orinoco_add_extscan_result_fndecl_6668 orinoco_add_extscan_result fndecl 3 6668 NULL nohasharray
++e_io_reserve_memtype_fndecl_6668 io_reserve_memtype fndecl 1-2 6668 &e_orinoco_add_extscan_result_fndecl_6668
++e_pkt_size_meta_sock_cmd_6669 pkt_size meta_sock_cmd 0 6669 NULL
++e_img_imem_size_fw_hdr_6675 img_imem_size fw_hdr 0 6675 NULL
++e_compatsize_xt_match_6677 compatsize xt_match 0 6677 NULL
++e_issue_discard_fndecl_6682 issue_discard fndecl 0-2-3 6682 NULL
++e_present_pages_zone_6685 present_pages zone 0 6685 NULL
++e_ac_2order_ext4_allocation_context_6690 ac_2order ext4_allocation_context 0 6690 NULL
++e_param_ssp_completion_resp_6691 param ssp_completion_resp 0 6691 NULL
++e_esize___kfifo_6692 esize __kfifo 0 6692 NULL
++e_gsm_control_message_fndecl_6706 gsm_control_message fndecl 4 6706 NULL nohasharray
++e_nroots_rs_control_6706 nroots rs_control 0 6706 &e_gsm_control_message_fndecl_6706
++e_logfs_mtd_erase_fndecl_6708 logfs_mtd_erase fndecl 3 6708 NULL nohasharray
++e_do_ipv6_setsockopt_fndecl_6708 do_ipv6_setsockopt fndecl 5 6708 &e_logfs_mtd_erase_fndecl_6708 nohasharray
++e_length_p_header80_6708 length p_header80 0 6708 &e_do_ipv6_setsockopt_fndecl_6708
++e_raw_recvmsg_fndecl_6710 raw_recvmsg fndecl 3 6710 NULL
++e_device_create_groups_vargs_fndecl_6715 device_create_groups_vargs fndecl 3 6715 NULL
++e_sample_rate_mixart_mgr_6716 sample_rate mixart_mgr 0 6716 NULL
++e_ssb_sdio_block_read_fndecl_6721 ssb_sdio_block_read fndecl 3 6721 NULL
++e_logfs_write_end_fndecl_6725 logfs_write_end fndecl 5-3 6725 NULL
++e_ieee_il_rate_info_6732 ieee il_rate_info 0 6732 NULL
++e_mtd_ooblayout_set_databytes_fndecl_6733 mtd_ooblayout_set_databytes fndecl 4 6733 NULL
++e_end_discard_fndecl_6736 end_discard fndecl 2 6736 NULL nohasharray
++e_size_ORANGEFS_sys_attr_s_6736 size ORANGEFS_sys_attr_s 0 6736 &e_end_discard_fndecl_6736
++e_queue_limit_discard_alignment_fndecl_6739 queue_limit_discard_alignment fndecl 0-2 6739 NULL
++e_num_vectors_qed_int_param_6741 num_vectors qed_int_param 0 6741 NULL
++e_fb_xdev_nfs_fhbase_old_6747 fb_xdev nfs_fhbase_old 0 6747 NULL nohasharray
++e__read_and_match_data_map_fndecl_6747 _read_and_match_data_map fndecl 2 6747 &e_fb_xdev_nfs_fhbase_old_6747
++e_rfcomm_sock_setsockopt_fndecl_6749 rfcomm_sock_setsockopt fndecl 5 6749 NULL
++e_bfad_iocmd_diag_queuetest_fndecl_6752 bfad_iocmd_diag_queuetest fndecl 0 6752 NULL
++e_alloc_size__osd_req_data_segment_6757 alloc_size _osd_req_data_segment 0 6757 NULL
++e_um_idi_write_fndecl_6758 um_idi_write fndecl 3 6758 NULL
++e_tun_opts_len_sw_flow_key_6759 tun_opts_len sw_flow_key 0 6759 NULL
++e_rbd_obj_request_submit_fndecl_6760 rbd_obj_request_submit fndecl 0 6760 NULL
++e_al_stripe_size_resize_parms_6766 al_stripe_size resize_parms 0 6766 NULL
++e_start_mtd_oob_buf_6767 start mtd_oob_buf 0 6767 NULL
++e_rx_pkt_ram_iadev_priv_6768 rx_pkt_ram iadev_priv 0 6768 NULL nohasharray
++e_gfs2_alloc_sort_buffer_fndecl_6768 gfs2_alloc_sort_buffer fndecl 1 6768 &e_rx_pkt_ram_iadev_priv_6768
++e_sg_tablesize_Scsi_Host_6769 sg_tablesize Scsi_Host 0 6769 NULL
++e_dn_recvmsg_fndecl_6774 dn_recvmsg fndecl 3 6774 NULL
++e_ext4_readpages_fndecl_6776 ext4_readpages fndecl 4 6776 NULL
++e_asn_1_decode_fndecl_6777 asn_1_decode fndecl 0 6777 NULL
++e_bio_phys_segments_fndecl_6778 bio_phys_segments fndecl 0 6778 NULL
++e_mmc_send_bus_test_fndecl_6782 mmc_send_bus_test fndecl 4-3 6782 NULL
++e_ecryptfs_send_message_fndecl_6785 ecryptfs_send_message fndecl 2 6785 NULL
++e_alloc_and_copy_string_fndecl_6786 alloc_and_copy_string fndecl 2 6786 NULL
++e_bio_integrity_advance_fndecl_6791 bio_integrity_advance fndecl 2 6791 NULL
++e_st21nfca_im_send_atr_req_fndecl_6792 st21nfca_im_send_atr_req fndecl 3 6792 NULL
++e_length_nbpf_desc_6795 length nbpf_desc 0 6795 NULL
++e_xfs_da_shrink_inode_fndecl_6796 xfs_da_shrink_inode fndecl 2 6796 NULL
++e_pop_tx_fndecl_6799 pop_tx fndecl 2 6799 NULL
++e_bankwidth_map_info_6800 bankwidth map_info 0 6800 NULL
++e_pfn_mlx4_uar_6801 pfn mlx4_uar 0 6801 NULL
++e_vga_r_fndecl_6805 vga_r fndecl 0 6805 NULL
++e_ctrl_dma_acm_6806 ctrl_dma acm 0 6806 NULL
++e_ip6ip6_err_fndecl_6807 ip6ip6_err fndecl 5 6807 NULL
++e_tx_pipe_at76_priv_6815 tx_pipe at76_priv 0 6815 NULL
++e_minor_miscdevice_6818 minor miscdevice 0 6818 NULL
++e_bfs_iget_fndecl_6821 bfs_iget fndecl 2 6821 NULL
++e_centre_vertically_fndecl_6833 centre_vertically fndecl 2 6833 NULL
++e_xfs_dialloc_ag_finobt_near_fndecl_6835 xfs_dialloc_ag_finobt_near fndecl 1 6835 NULL
++e_copy_page_to_iter_fndecl_6842 copy_page_to_iter fndecl 3-0 6842 NULL
++e_lcd_proc_write_fndecl_6844 lcd_proc_write fndecl 3 6844 NULL
++e_intel_framebuffer_size_for_mode_fndecl_6849 intel_framebuffer_size_for_mode fndecl 0-2 6849 NULL nohasharray
++e___ceph_getxattr_fndecl_6849 __ceph_getxattr fndecl 0 6849 &e_intel_framebuffer_size_for_mode_fndecl_6849
++e_hpfs_file_fsync_fndecl_6851 hpfs_file_fsync fndecl 2 6851 NULL
++e_kclist_add_private_fndecl_6853 kclist_add_private fndecl 1-2 6853 NULL
++e_bg_channels_libipw_geo_6854 bg_channels libipw_geo 0 6854 NULL
++e_ci_role_write_fndecl_6855 ci_role_write fndecl 3 6855 NULL
++e_atmel_aes_cpu_start_fndecl_6856 atmel_aes_cpu_start fndecl 4 6856 NULL
++e_hdlc_empty_fifo_fndecl_6862 hdlc_empty_fifo fndecl 2 6862 NULL
++e_buffer_kbs_vardecl_st_c_6866 buffer_kbs vardecl_st.c 0 6866 NULL
++e_size_vb2_fileio_buf_6875 size vb2_fileio_buf 0 6875 NULL nohasharray
++e_offset_amp_assoc_6875 offset amp_assoc 0 6875 &e_size_vb2_fileio_buf_6875
++e_ima_collect_measurement_fndecl_6876 ima_collect_measurement fndecl 4 6876 NULL
++e_xres_fb_videomode_6878 xres fb_videomode 0 6878 NULL
++e_rxbufferhandle_kaweth_device_6883 rxbufferhandle kaweth_device 0 6883 NULL
++e_memblock_virt_alloc_node_nopanic_fndecl_6892 memblock_virt_alloc_node_nopanic fndecl 1 6892 NULL nohasharray
++e___kfifo_in_r_fndecl_6892 __kfifo_in_r fndecl 4-3 6892 &e_memblock_virt_alloc_node_nopanic_fndecl_6892 nohasharray
++e_jffs2_zlib_decompress_fndecl_6892 jffs2_zlib_decompress fndecl 3-4 6892 &e___kfifo_in_r_fndecl_6892
++e_hpfs_bplus_lookup_fndecl_6896 hpfs_bplus_lookup fndecl 0-4 6896 NULL nohasharray
++e_index_mlx5_uar_6896 index mlx5_uar 0 6896 &e_hpfs_bplus_lookup_fndecl_6896
++e_link_duplex_e1000_adapter_6902 link_duplex e1000_adapter 0 6902 NULL
++e_jfs_quota_write_fndecl_6903 jfs_quota_write fndecl 4-5 6903 NULL
++e_offset_clone_root_6907 offset clone_root 0 6907 NULL nohasharray
++e_write_inflate_state_6907 write inflate_state 0 6907 &e_offset_clone_root_6907
++e_i_block_group_ext4_inode_info_6909 i_block_group ext4_inode_info 0 6909 NULL
++e_table_size_radeon_gart_6911 table_size radeon_gart 0 6911 NULL
++e_error_dm_io_6915 error dm_io 0 6915 NULL
++e_maxbufsize__isdn_driver_6917 maxbufsize _isdn_driver 0 6917 NULL
++e_drm_gtf_mode_complex_fndecl_6918 drm_gtf_mode_complex fndecl 3-2-4-7-9-10-8 6918 NULL
++e_buflen_packet_command_6926 buflen packet_command 0 6926 NULL
++e_multi_src_desc_6933 multi src_desc 0 6933 NULL
++e_nbytes_ide_cmd_6945 nbytes ide_cmd 0 6945 NULL
++e_max_namelen_fscrypt_operations_6956 max_namelen fscrypt_operations 0 6956 NULL
++e_doffset_cxgbit_lro_pdu_cb_6960 doffset cxgbit_lro_pdu_cb 0 6960 NULL nohasharray
++e_enic_rxcopybreak_fndecl_6960 enic_rxcopybreak fndecl 4 6960 &e_doffset_cxgbit_lro_pdu_cb_6960
++e_af9013_write_ofsm_regs_fndecl_6965 af9013_write_ofsm_regs fndecl 4 6965 NULL
++e_ufs_free_blocks_fndecl_6968 ufs_free_blocks fndecl 3-2 6968 NULL nohasharray
++e_tlv_put_u64_fndecl_6968 tlv_put_u64 fndecl 0 6968 &e_ufs_free_blocks_fndecl_6968
++e_odm_group_width_pnfs_osd_data_map_6977 odm_group_width pnfs_osd_data_map 0 6977 NULL
++e_ext4_num_overhead_clusters_fndecl_6978 ext4_num_overhead_clusters fndecl 2 6978 NULL nohasharray
++e_mq_msg_max_ipc_namespace_6978 mq_msg_max ipc_namespace 0 6978 &e_ext4_num_overhead_clusters_fndecl_6978 nohasharray
++e_size_perf_raw_record_6978 size perf_raw_record 0 6978 &e_mq_msg_max_ipc_namespace_6978
++e_async_set_registers_fndecl_6987 async_set_registers fndecl 3 6987 NULL
++e_log_start_r5l_log_6989 log_start r5l_log 0 6989 NULL
++e_sq_spare_wqes_mlx4_ib_qp_6994 sq_spare_wqes mlx4_ib_qp 0 6994 NULL
++e_bits_from_user_fndecl_6996 bits_from_user fndecl 3-2 6996 NULL
++e_smk_write_cipso_fndecl_6998 smk_write_cipso fndecl 3 6998 NULL
++e_rx_agg_nr_pages_bnxt_7000 rx_agg_nr_pages bnxt 0 7000 NULL
++e_hugetlb_no_page_fndecl_7005 hugetlb_no_page fndecl 5 7005 NULL
++e_p_start_nilfs_period_7008 p_start nilfs_period 0 7008 NULL nohasharray
++e_calc_tx_descs_ofld_fndecl_7008 calc_tx_descs_ofld fndecl 0 7008 &e_p_start_nilfs_period_7008
++e_num_rss_qede_dev_7011 num_rss qede_dev 0 7011 NULL
++e_s_groups_count_ext4_sb_info_7012 s_groups_count ext4_sb_info 0 7012 NULL
++e_ocfs2_cache_cluster_dealloc_fndecl_7016 ocfs2_cache_cluster_dealloc fndecl 3-2 7016 NULL
++e_qlcnic_get_cap_size_fndecl_7017 qlcnic_get_cap_size fndecl 0 7017 NULL
++e_attr_bytes_osdv2_attributes_list_element_7018 attr_bytes osdv2_attributes_list_element 0 7018 NULL
++e_shmem_mknod_fndecl_7026 shmem_mknod fndecl 4 7026 NULL nohasharray
++e_channels_snd_pcm_plugin_format_7026 channels snd_pcm_plugin_format 0 7026 &e_shmem_mknod_fndecl_7026
++e_ip_tun_to_nlattr_fndecl_7028 ip_tun_to_nlattr fndecl 4 7028 NULL
++e_virtio_gpu_alloc_object_fndecl_7030 virtio_gpu_alloc_object fndecl 2 7030 NULL
++e_h_sync_strt_wid_crtc_7033 h_sync_strt_wid crtc 0 7033 NULL
++e_fat_short2lower_uni_fndecl_7036 fat_short2lower_uni fndecl 0 7036 NULL
++e_mq_msg_default_ipc_namespace_7041 mq_msg_default ipc_namespace 0 7041 NULL
++e_fp_msix_cnt_qed_int_params_7045 fp_msix_cnt qed_int_params 0 7045 NULL
++e_kvm_read_guest_page_fndecl_7049 kvm_read_guest_page fndecl 2 7049 NULL
++e_iforce_send_packet_fndecl_7050 iforce_send_packet fndecl 2 7050 NULL
++e_init_special_inode_fndecl_7054 init_special_inode fndecl 3 7054 NULL
++e_SYSC_pselect6_fndecl_7055 SYSC_pselect6 fndecl 1 7055 NULL
++e_packet_size_usbatm_channel_7056 packet_size usbatm_channel 0 7056 NULL
++e___btrfs_drop_extents_fndecl_7058 __btrfs_drop_extents fndecl 6-5 7058 NULL nohasharray
++e_txd_cnt_nfp_net_7058 txd_cnt nfp_net 0 7058 &e___btrfs_drop_extents_fndecl_7058
++e_dccph_doff_dccp_hdr_7060 dccph_doff dccp_hdr 0 7060 NULL
++e_total_VFs_pci_sriov_7061 total_VFs pci_sriov 0 7061 NULL
++e_i_dir_start_lookup_ext4_inode_info_7062 i_dir_start_lookup ext4_inode_info 0 7062 NULL
++e_jt_size_gfx_firmware_header_v1_0_7064 jt_size gfx_firmware_header_v1_0 0 7064 NULL
++e_zisofs_fill_pages_fndecl_7066 zisofs_fill_pages fndecl 3 7066 NULL
++e_msdc_tune_response_fndecl_7073 msdc_tune_response fndecl 2 7073 NULL
++e_orangefs_bufmap_size_query_fndecl_7085 orangefs_bufmap_size_query fndecl 0 7085 NULL
++e_pref_height_vmw_display_unit_7089 pref_height vmw_display_unit 0 7089 NULL
++e_get_vm_area_fndecl_7091 get_vm_area fndecl 1 7091 NULL
++e_dma_mt7601u_dma_buf_7098 dma mt7601u_dma_buf 0 7098 NULL
++e_rtl8139_change_mtu_fndecl_7099 rtl8139_change_mtu fndecl 2 7099 NULL
++e_nvkm_fifo_chan_ctor_fndecl_7101 nvkm_fifo_chan_ctor fndecl 11 7101 NULL
++e_paging32_gpte_to_gfn_lvl_fndecl_7104 paging32_gpte_to_gfn_lvl fndecl 0-2-1 7104 NULL nohasharray
++e_scan_ies_len_ieee80211_local_7104 scan_ies_len ieee80211_local 0 7104 &e_paging32_gpte_to_gfn_lvl_fndecl_7104
++e_nfsd4_encode_readv_fndecl_7110 nfsd4_encode_readv fndecl 4 7110 NULL
++e_rsxx_dma_queue_bio_fndecl_7118 rsxx_dma_queue_bio fndecl 0 7118 NULL
++e_report_size_hid_global_7127 report_size hid_global 0 7127 NULL
++e_svc_getnl_fndecl_7131 svc_getnl fndecl 0 7131 NULL nohasharray
++e_acpi_rs_set_resource_length_fndecl_7131 acpi_rs_set_resource_length fndecl 1 7131 &e_svc_getnl_fndecl_7131
++e_nchannels_vadc_priv_7138 nchannels vadc_priv 0 7138 NULL
++e_nstids_tid_info_7139 nstids tid_info 0 7139 NULL
++e_do_swap_page_fndecl_7145 do_swap_page fndecl 3 7145 NULL
++e_vc_origin_vc_data_7148 vc_origin vc_data 0 7148 NULL
++e_ea_secno_fnode_7151 ea_secno fnode 0 7151 NULL
++e_newblocks_xfs_growfs_rt_7154 newblocks xfs_growfs_rt 0 7154 NULL
++e_num_packets_st5481_in_7161 num_packets st5481_in 0 7161 NULL
++e___add_to_page_cache_locked_fndecl_7168 __add_to_page_cache_locked fndecl 0 7168 NULL
++e_platform_device_register_data_fndecl_7175 platform_device_register_data fndecl 3 7175 NULL
++e_get_rxfh_key_size_ethtool_ops_7178 get_rxfh_key_size ethtool_ops 0 7178 NULL
++e_ax88179_write_cmd_async_fndecl_7180 ax88179_write_cmd_async fndecl 5 7180 NULL
++e_cf_eof_cifs_fattr_7182 cf_eof cifs_fattr 0 7182 NULL
++e_vdisplay_moderec_7183 vdisplay moderec 0 7183 NULL nohasharray
++e_mfd_add_devices_fndecl_7183 mfd_add_devices fndecl 2-6 7183 &e_vdisplay_moderec_7183
++e_ino_node_footer_7185 ino node_footer 0 7185 NULL
++e_acc_accl_accessdata_dn_7186 acc_accl accessdata_dn 0 7186 NULL
++e_vc_rows_vc_data_7192 vc_rows vc_data 0 7192 NULL nohasharray
++e_btrfs_get_token_32_fndecl_7192 btrfs_get_token_32 fndecl 0 7192 &e_vc_rows_vc_data_7192 nohasharray
++e_ic_size_xlog_in_core_7192 ic_size xlog_in_core 0 7192 &e_btrfs_get_token_32_fndecl_7192 nohasharray
++e___shmem_file_setup_fndecl_7192 __shmem_file_setup fndecl 2 7192 &e_ic_size_xlog_in_core_7192
++e_mmc_calc_max_discard_fndecl_7198 mmc_calc_max_discard fndecl 0 7198 NULL
++e_z_incomp_fndecl_7201 z_incomp fndecl 3 7201 NULL
++e_length_pnfs_layout_range_7207 length pnfs_layout_range 0 7207 NULL
++e___wa_populate_dto_urb_fndecl_7208 __wa_populate_dto_urb fndecl 4-3 7208 NULL
++e_size_srp_iu_7210 size srp_iu 0 7210 NULL nohasharray
++e_drbd_drain_block_fndecl_7210 drbd_drain_block fndecl 2 7210 &e_size_srp_iu_7210
++e_gfs2_mknod_fndecl_7211 gfs2_mknod fndecl 4 7211 NULL
++e_rivafb_do_maximize_fndecl_7212 rivafb_do_maximize fndecl 3-4 7212 NULL nohasharray
++e_eq_ecount_lpfc_sli4_hba_7212 eq_ecount lpfc_sli4_hba 0 7212 &e_rivafb_do_maximize_fndecl_7212
++e_max_id_Scsi_Host_7217 max_id Scsi_Host 0 7217 NULL
++e_num_chipselect_spi_gpio_platform_data_7218 num_chipselect spi_gpio_platform_data 0 7218 NULL
++e_bfad_iocmd_qos_get_attr_fndecl_7226 bfad_iocmd_qos_get_attr fndecl 0 7226 NULL
++e___inet_lookup_listener_fndecl_7235 __inet_lookup_listener fndecl 4 7235 NULL
++e_s_mb_last_group_ext4_sb_info_7240 s_mb_last_group ext4_sb_info 0 7240 NULL
++e_xfs_attr3_leaf_create_fndecl_7243 xfs_attr3_leaf_create fndecl 2 7243 NULL
++e_len_session_key_7253 len session_key 0 7253 NULL
++e_num_pports_csio_hw_7255 num_pports csio_hw 0 7255 NULL
++e_bpp_cobalt_stream_7263 bpp cobalt_stream 0 7263 NULL
++e_iscsi_recv_pdu_fndecl_7264 iscsi_recv_pdu fndecl 4 7264 NULL
++e_xlog_bread_fndecl_7272 xlog_bread fndecl 2 7272 NULL
++e_vc_saved_x_vc_data_7275 vc_saved_x vc_data 0 7275 NULL
++e_hsync_psb_pipe_7286 hsync psb_pipe 0 7286 NULL
++e_trailer_len_dst_entry_7294 trailer_len dst_entry 0 7294 NULL nohasharray
++e_pci_default_setup_fndecl_7294 pci_default_setup fndecl 4 7294 &e_trailer_len_dst_entry_7294
++e_cmd_size_vmw_view_7295 cmd_size vmw_view 0 7295 NULL nohasharray
++e_ubifs_update_one_lp_fndecl_7295 ubifs_update_one_lp fndecl 3 7295 &e_cmd_size_vmw_view_7295
++e_get_third_component_fndecl_7303 get_third_component fndecl 0 7303 NULL nohasharray
++e_height_vpe_q_data_7303 height vpe_q_data 0 7303 &e_get_third_component_fndecl_7303
++e_value_apei_exec_context_7318 value apei_exec_context 0 7318 NULL
++e_bus_num_dw_pci_controller_7324 bus_num dw_pci_controller 0 7324 NULL nohasharray
++e_check_index_in_prev_nodes_fndecl_7324 check_index_in_prev_nodes fndecl 2 7324 &e_bus_num_dw_pci_controller_7324
++e_generic_write_end_fndecl_7325 generic_write_end fndecl 5-3 7325 NULL
++e_wsize_inflate_state_7329 wsize inflate_state 0 7329 NULL
++e_mtd_ooblayout_get_databytes_fndecl_7335 mtd_ooblayout_get_databytes fndecl 4 7335 NULL nohasharray
++e_control_cnt_pvr2_hdw_7335 control_cnt pvr2_hdw 0 7335 &e_mtd_ooblayout_get_databytes_fndecl_7335
++e_drm_malloc_ab_fndecl_7340 drm_malloc_ab fndecl 1-2 7340 NULL
++e_pvr2_i2c_read_fndecl_7344 pvr2_i2c_read fndecl 4-6 7344 NULL
++e_jpegqual_s2255_vc_7351 jpegqual s2255_vc 0 7351 NULL nohasharray
++e_btusb_recv_intr_fndecl_7351 btusb_recv_intr fndecl 3 7351 &e_jpegqual_s2255_vc_7351
++e_automute_vardecl_bttv_driver_c_7353 automute vardecl_bttv-driver.c 0 7353 NULL nohasharray
++e_mesh_fwd_csa_frame_fndecl_7353 mesh_fwd_csa_frame fndecl 3 7353 &e_automute_vardecl_bttv_driver_c_7353
++e_mcp251x_spi_trans_fndecl_7356 mcp251x_spi_trans fndecl 2 7356 NULL
++e_dm_vcalloc_fndecl_7357 dm_vcalloc fndecl 2-1 7357 NULL
++e_sysctl_tcp_base_mss_netns_ipv4_7363 sysctl_tcp_base_mss netns_ipv4 0 7363 NULL
++e_sys_fadvise64_fndecl_7365 sys_fadvise64 fndecl 2 7365 NULL
++e_hfsplus_min_io_size_fndecl_7368 hfsplus_min_io_size fndecl 0 7368 NULL
++e_check_left_item_operations_7369 check_left item_operations 0 7369 NULL
++e_e_value_size_ext2_xattr_entry_7373 e_value_size ext2_xattr_entry 0 7373 NULL
++e_bufsize_pstore_info_7375 bufsize pstore_info 0 7375 NULL
++e_shmem_swapin_fndecl_7376 shmem_swapin fndecl 4 7376 NULL nohasharray
++e_scsi_mode_sense_fndecl_7376 scsi_mode_sense fndecl 5 7376 &e_shmem_swapin_fndecl_7376
++e_c67x00_create_td_fndecl_7377 c67x00_create_td fndecl 4-0 7377 NULL
++e_fs_ablocks_hfs_sb_info_7381 fs_ablocks hfs_sb_info 0 7381 NULL
++e_amd8111e_change_mtu_fndecl_7389 amd8111e_change_mtu fndecl 2 7389 NULL
++e_v_tot_disp_crtc_7400 v_tot_disp crtc 0 7400 NULL
++e_sun6i_get_chan_size_fndecl_7403 sun6i_get_chan_size fndecl 0 7403 NULL
++e_ext4_ext_zeroout_fndecl_7404 ext4_ext_zeroout fndecl 0 7404 NULL
++e_fw_sent_bcm203x_data_7405 fw_sent bcm203x_data 0 7405 NULL
++e___ip_append_data_fndecl_7411 __ip_append_data fndecl 9-8 7411 NULL
++e_default_value_cx88_ctrl_7412 default_value cx88_ctrl 0 7412 NULL
++e_htotal_psb_pipe_7415 htotal psb_pipe 0 7415 NULL nohasharray
++e_xfs_dialloc_ag_fndecl_7415 xfs_dialloc_ag fndecl 3 7415 &e_htotal_psb_pipe_7415 nohasharray
++e_block_ack_param_set_host_cmd_ds_11n_addba_req_7415 block_ack_param_set host_cmd_ds_11n_addba_req 0 7415 &e_xfs_dialloc_ag_fndecl_7415
++e_st_write_fndecl_7417 st_write fndecl 3 7417 NULL
++e___kfifo_peek_n_fndecl_7422 __kfifo_peek_n fndecl 0 7422 NULL
++e_diva_os_malloc_fndecl_7429 diva_os_malloc fndecl 2 7429 NULL
++e_mirror_sd_gl860_7430 mirror sd_gl860 0 7430 NULL
++e_residue_dma_tx_state_7432 residue dma_tx_state 0 7432 NULL nohasharray
++e_hdrsize_genl_family_7432 hdrsize genl_family 0 7432 &e_residue_dma_tx_state_7432
++e_xfs_file_fsync_fndecl_7433 xfs_file_fsync fndecl 2 7433 NULL
++e_data_len_sk_buff_7447 data_len sk_buff 0 7447 NULL
++e_shdma_prep_memcpy_fndecl_7451 shdma_prep_memcpy fndecl 4-3 7451 NULL
++e_size_vmci_handle_arr_7457 size vmci_handle_arr 0 7457 NULL
++e_len_sk_buff_7460 len sk_buff 0 7460 NULL
++e_hpfs_alloc_sector_fndecl_7462 hpfs_alloc_sector fndecl 0-4-3-2 7462 NULL
++e_Length__SECURITY_BUFFER_7467 Length _SECURITY_BUFFER 0 7467 NULL
++e_minors_gigaset_driver_7468 minors gigaset_driver 0 7468 NULL nohasharray
++e_multipath_size_fndecl_7468 multipath_size fndecl 0 7468 &e_minors_gigaset_driver_7468 nohasharray
++e_buffer_dma_ehci_qtd_7468 buffer_dma ehci_qtd 0 7468 &e_multipath_size_fndecl_7468
++e_devmem_is_allowed_fndecl_7475 devmem_is_allowed fndecl 1 7475 NULL
++e_status_c67x00_urb_priv_7480 status c67x00_urb_priv 0 7480 NULL
++e_rxrpc_server_keyring_fndecl_7484 rxrpc_server_keyring fndecl 3 7484 NULL
++e_f_width_fimc_frame_7488 f_width fimc_frame 0 7488 NULL nohasharray
++e_header_len_eth_fast_path_rx_tpa_start_cqe_7488 header_len eth_fast_path_rx_tpa_start_cqe 0 7488 &e_f_width_fimc_frame_7488 nohasharray
++e___skb_push_fndecl_7488 __skb_push fndecl 2 7488 &e_header_len_eth_fast_path_rx_tpa_start_cqe_7488
++e_s_log_block_size_ext2_super_block_7490 s_log_block_size ext2_super_block 0 7490 NULL
++e_can_nice_fndecl_7498 can_nice fndecl 2 7498 NULL
++e_ri_lsegs_start_nilfs_recovery_info_7501 ri_lsegs_start nilfs_recovery_info 0 7501 NULL
++e_all_tables_size_vardecl_tables_c_7504 all_tables_size vardecl_tables.c 0 7504 NULL
++e_btrfs_truncate_inode_items_fndecl_7511 btrfs_truncate_inode_items fndecl 4 7511 NULL
++e_alloc_disk_node_fndecl_7513 alloc_disk_node fndecl 1 7513 NULL
++e_netlink_change_ngroups_fndecl_7514 netlink_change_ngroups fndecl 2 7514 NULL
++e_va_vmci_qp_set_va_info_7523 va vmci_qp_set_va_info 0 7523 NULL
++e_ext4_mb_load_buddy_gfp_fndecl_7524 ext4_mb_load_buddy_gfp fndecl 2-0 7524 NULL
++e_src_len_akcipher_request_7526 src_len akcipher_request 0 7526 NULL
++e_xfs_iomap_eof_want_preallocate_fndecl_7527 xfs_iomap_eof_want_preallocate fndecl 4-3 7527 NULL
++e_ncells_sta2x11_mfd_bar_setup_data_7528 ncells sta2x11_mfd_bar_setup_data 0 7528 NULL
++e_filemap_write_and_wait_fndecl_7529 filemap_write_and_wait fndecl 0 7529 NULL
++e_cfg_hba_queue_depth_lpfc_hba_7534 cfg_hba_queue_depth lpfc_hba 0 7534 NULL
++e_delta_mmap_mm_struct_7536 delta_mmap mm_struct 0 7536 NULL
++e_length_ndis_80211_ssid_7537 length ndis_80211_ssid 0 7537 NULL
++e_snd_interval_max_fndecl_7554 snd_interval_max fndecl 0 7554 NULL
++e_raid10_resize_fndecl_7562 raid10_resize fndecl 2 7562 NULL
++e_duplicateIXtree_fndecl_7568 duplicateIXtree fndecl 3-2 7568 NULL
++e_wqe_fcoe_cqe_7572 wqe fcoe_cqe 0 7572 NULL
++e_rtsx_usb_send_cmd_fndecl_7578 rtsx_usb_send_cmd fndecl 0 7578 NULL
++e_tcp_manip_pkt_fndecl_7584 tcp_manip_pkt fndecl 4 7584 NULL nohasharray
++e_mISDN_sock_sendmsg_fndecl_7584 mISDN_sock_sendmsg fndecl 3 7584 &e_tcp_manip_pkt_fndecl_7584
++e_tuple_size_blk_integrity_7585 tuple_size blk_integrity 0 7585 NULL
++e_count_ivtvfb_dma_frame_7586 count ivtvfb_dma_frame 0 7586 NULL
++e_ftdi_elan_edset_input_fndecl_7588 ftdi_elan_edset_input fndecl 0 7588 NULL
++e_scan_index_iio_chan_spec_7597 scan_index iio_chan_spec 0 7597 NULL nohasharray
++e_num_regions_wm_adsp_fw_caps_7597 num_regions wm_adsp_fw_caps 0 7597 &e_scan_index_iio_chan_spec_7597
++e_q_blkno_xfs_dquot_7601 q_blkno xfs_dquot 0 7601 NULL
++e_pathmtu_sctp_transport_7603 pathmtu sctp_transport 0 7603 NULL
++e_fuse_listxattr_fndecl_7605 fuse_listxattr fndecl 3 7605 NULL
++e_pzl_urb_dequeue_fndecl_7607 pzl_urb_dequeue fndecl 3 7607 NULL
++e_rcvidx_w6692B_hw_7613 rcvidx w6692B_hw 0 7613 NULL nohasharray
++e_wFormatVersion_ms_bootblock_header_7613 wFormatVersion ms_bootblock_header 0 7613 &e_rcvidx_w6692B_hw_7613
++e_id_hid_report_7618 id hid_report 0 7618 NULL
++e_drm_fb_helper_fill_var_fndecl_7619 drm_fb_helper_fill_var fndecl 3-4 7619 NULL
++e_physical_scrub_page_7621 physical scrub_page 0 7621 NULL
++e_block_udf_vds_record_7623 block udf_vds_record 0 7623 NULL
++e_read_cr2_fndecl_7624 read_cr2 fndecl 0 7624 NULL
++e_ocfs2_free_suballoc_bits_fndecl_7627 ocfs2_free_suballoc_bits fndecl 5 7627 NULL
++e_agp_allocate_memory_wrap_fndecl_7635 agp_allocate_memory_wrap fndecl 1 7635 NULL
++e_virt_to_scatterlist_fndecl_7637 virt_to_scatterlist fndecl 2 7637 NULL
++e_read_cable_det_adv76xx_chip_info_7641 read_cable_det adv76xx_chip_info 0 7641 NULL
++e_num_sge_ib_uverbs_recv_wr_7647 num_sge ib_uverbs_recv_wr 0 7647 NULL
++e_tuner_i2c_xfer_send_fndecl_7654 tuner_i2c_xfer_send fndecl 3 7654 NULL
++e_xpt_remotelen_svc_xprt_7655 xpt_remotelen svc_xprt 0 7655 NULL
++e_s_fsize_ufs_sb_private_info_7659 s_fsize ufs_sb_private_info 0 7659 NULL nohasharray
++e_maxwritelen_proc_data_7659 maxwritelen proc_data 0 7659 &e_s_fsize_ufs_sb_private_info_7659
++e_mmio_start_bnad_7660 mmio_start bnad 0 7660 NULL
++e_brcmf_proto_bcdc_txdata_fndecl_7662 brcmf_proto_bcdc_txdata fndecl 3 7662 NULL
++e_to_perf_branch_entry_7663 to perf_branch_entry 0 7663 NULL
++e_nfsd_max_blksize_vardecl_7678 nfsd_max_blksize vardecl 0 7678 NULL
++e_nfp_net_shadow_rx_rings_prepare_fndecl_7679 nfp_net_shadow_rx_rings_prepare fndecl 2 7679 NULL
++e_shmem_read_mapping_page_gfp_fndecl_7681 shmem_read_mapping_page_gfp fndecl 2 7681 NULL
++e_UniStrnlen_fndecl_7682 UniStrnlen fndecl 0 7682 NULL
++e_pm860x_page_bulk_read_fndecl_7685 pm860x_page_bulk_read fndecl 3 7685 NULL nohasharray
++e_l1oip_socket_send_fndecl_7685 l1oip_socket_send fndecl 7 7685 &e_pm860x_page_bulk_read_fndecl_7685
++e_orangefs_i_size_write_fndecl_7686 orangefs_i_size_write fndecl 2 7686 NULL
++e_num_gpios_stmpe_7689 num_gpios stmpe 0 7689 NULL
++e_di_extsize_xfs_icdinode_7693 di_extsize xfs_icdinode 0 7693 NULL
++e_n_tty_receive_buf_real_raw_fndecl_7696 n_tty_receive_buf_real_raw fndecl 4 7696 NULL
++e_rf_cpos_ocfs2_refcount_block_7704 rf_cpos ocfs2_refcount_block 0 7704 NULL nohasharray
++e_hdr_len_virtio_net_hdr_7704 hdr_len virtio_net_hdr 0 7704 &e_rf_cpos_ocfs2_refcount_block_7704
++e_fd_vfid_fip_fab_desc_7711 fd_vfid fip_fab_desc 0 7711 NULL
++e_stride_pci_sriov_7712 stride pci_sriov 0 7712 NULL
++e_i915_gem_get_gtt_size_fndecl_7714 i915_gem_get_gtt_size fndecl 0-2 7714 NULL
++e_controller_number_ms_boot_attr_info_7716 controller_number ms_boot_attr_info 0 7716 NULL
++e_ceph_pool_perm_check_fndecl_7729 ceph_pool_perm_check fndecl 0 7729 NULL
++e_get_num_rx_queues_rtnl_link_ops_7733 get_num_rx_queues rtnl_link_ops 0 7733 NULL
++e_access_remote_vm_fndecl_7734 access_remote_vm fndecl 0-4-2 7734 NULL
++e_iscsit_find_cmd_from_itt_or_dump_fndecl_7737 iscsit_find_cmd_from_itt_or_dump fndecl 3 7737 NULL
++e_vxres_aty128_crtc_7753 vxres aty128_crtc 0 7753 NULL
++e_ide_get_best_pio_mode_fndecl_7756 ide_get_best_pio_mode fndecl 0-2-3 7756 NULL nohasharray
++e_mlx4_enable_sriov_fndecl_7756 mlx4_enable_sriov fndecl 4-3 7756 &e_ide_get_best_pio_mode_fndecl_7756 nohasharray
++e_max_eq_lpfc_max_cfg_param_7756 max_eq lpfc_max_cfg_param 0 7756 &e_mlx4_enable_sriov_fndecl_7756
++e_xfs_dir2_free_read_fndecl_7759 xfs_dir2_free_read fndecl 3 7759 NULL
++e_ext4_fname_crypto_alloc_buffer_fndecl_7767 ext4_fname_crypto_alloc_buffer fndecl 2 7767 NULL
++e_pps_devt_vardecl_pps_c_7772 pps_devt vardecl_pps.c 0 7772 NULL
++e_ocfs2_get_suballoc_slot_bit_fndecl_7773 ocfs2_get_suballoc_slot_bit fndecl 2 7773 NULL
++e_t_data_nents_orig_se_cmd_7775 t_data_nents_orig se_cmd 0 7775 NULL
++e_split_mem_range_fndecl_7776 split_mem_range fndecl 3-4 7776 NULL
++e_record_one_subtree_extent_fndecl_7780 record_one_subtree_extent fndecl 3 7780 NULL nohasharray
++e_mode_size_cyttsp4_sysinfo_ofs_7780 mode_size cyttsp4_sysinfo_ofs 0 7780 &e_record_one_subtree_extent_fndecl_7780
++e_mmu_private_affs_inode_info_7785 mmu_private affs_inode_info 0 7785 NULL
++e_read_index_wm_adsp_compr_buf_7788 read_index wm_adsp_compr_buf 0 7788 NULL
++e_st_do_scsi_fndecl_7789 st_do_scsi fndecl 4 7789 NULL
++e_qxl_framebuffer_surface_dirty_fndecl_7791 qxl_framebuffer_surface_dirty fndecl 6 7791 NULL
++e_sysctl_perf_event_max_stack_vardecl_7792 sysctl_perf_event_max_stack vardecl 0 7792 NULL
++e_inode_getblk_fndecl_7794 inode_getblk fndecl 2-0 7794 NULL
++e___clk_speculate_rates_fndecl_7795 __clk_speculate_rates fndecl 2 7795 NULL
++e_ssc_request_fndecl_7798 ssc_request fndecl 1 7798 NULL nohasharray
++e_remove_advertising_fndecl_7798 remove_advertising fndecl 4 7798 &e_ssc_request_fndecl_7798
++e_pfn_base_dma_coherent_mem_7800 pfn_base dma_coherent_mem 0 7800 NULL
++e_cciss_max_sectors_ctlr_info_7811 cciss_max_sectors ctlr_info 0 7811 NULL nohasharray
++e_len_nfs_diropargs_7811 len nfs_diropargs 0 7811 &e_cciss_max_sectors_ctlr_info_7811
++e_plen_hci_event_hdr_7815 plen hci_event_hdr 0 7815 NULL
++e_length_scsi_mode_data_7819 length scsi_mode_data 0 7819 NULL
++e_get_pipe_fndecl_7825 get_pipe fndecl 0-2 7825 NULL
++e_nabs_joydev_7827 nabs joydev 0 7827 NULL
++e_x1_virtio_gpu_framebuffer_7830 x1 virtio_gpu_framebuffer 0 7830 NULL
++e_rtpref_nfs_fsinfo_7835 rtpref nfs_fsinfo 0 7835 NULL
++e_nonstatic_find_mem_region_fndecl_7838 nonstatic_find_mem_region fndecl 1-2 7838 NULL
++e_sys_truncate_fndecl_7846 sys_truncate fndecl 2 7846 NULL
++e_SYSC_pread64_fndecl_7850 SYSC_pread64 fndecl 3 7850 NULL
++e_tcp_rtt_estimator_fndecl_7853 tcp_rtt_estimator fndecl 2 7853 NULL
++e_pcf2123_write_fndecl_7856 pcf2123_write fndecl 3 7856 NULL
++e_sl_datalen_nfsd4_slot_7859 sl_datalen nfsd4_slot 0 7859 NULL
++e_wqe_shift_mlx4_ib_wq_7860 wqe_shift mlx4_ib_wq 0 7860 NULL
++e_n_vifs_ath10k_mac_change_chanctx_arg_7864 n_vifs ath10k_mac_change_chanctx_arg 0 7864 NULL
++e_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
++e_s_fpbshift_ufs_sb_private_info_7865 s_fpbshift ufs_sb_private_info 0 7865 &e_block_aligned_filename_size_ecryptfs_parse_tag_70_packet_silly_stack_7865
++e_cyapa_i2c_read_fndecl_7870 cyapa_i2c_read fndecl 3 7870 NULL
++e_mapped_vram_mb862xxfb_par_7872 mapped_vram mb862xxfb_par 0 7872 NULL
++e_iscsi_tcp_dgst_header_fndecl_7878 iscsi_tcp_dgst_header fndecl 3 7878 NULL
++e_ext4_dax_get_block_fndecl_7879 ext4_dax_get_block fndecl 2 7879 NULL
++e_sd_read_data_fndecl_7884 sd_read_data fndecl 3-0 7884 NULL nohasharray
++e_freecom_readdata_fndecl_7884 freecom_readdata fndecl 3-4 7884 &e_sd_read_data_fndecl_7884 nohasharray
++e_rxstatus_epic_rx_desc_7884 rxstatus epic_rx_desc 0 7884 &e_freecom_readdata_fndecl_7884
++e_ath6kl_wmi_send_mgmt_cmd_fndecl_7888 ath6kl_wmi_send_mgmt_cmd fndecl 2-7 7888 NULL
++e_vc4_lbm_size_fndecl_7899 vc4_lbm_size fndecl 0 7899 NULL nohasharray
++e_irq_domain_alloc_irqs_fndecl_7899 irq_domain_alloc_irqs fndecl 0 7899 &e_vc4_lbm_size_fndecl_7899
++e_ath6kl_wmi_info_req_cmd_fndecl_7906 ath6kl_wmi_info_req_cmd fndecl 2 7906 NULL nohasharray
++e_vdi_size_vxfs_inode_info_7906 vdi_size vxfs_inode_info 0 7906 &e_ath6kl_wmi_info_req_cmd_fndecl_7906
++e_mode_id_vbe_mode_ib_7913 mode_id vbe_mode_ib 0 7913 NULL
++e_depth_s5p_jpeg_fmt_7914 depth s5p_jpeg_fmt 0 7914 NULL
++e_rx_ring_size_vmxnet3_adapter_7917 rx_ring_size vmxnet3_adapter 0 7917 NULL
++e_ccw_bmove_fndecl_7918 ccw_bmove fndecl 8-6-5-7-3-4 7918 NULL
++e_uvesafb_setpalette_fndecl_7922 uvesafb_setpalette fndecl 2 7922 NULL
++e_copy_pud_range_fndecl_7924 copy_pud_range fndecl 6 7924 NULL
++e_raid5_size_fndecl_7933 raid5_size fndecl 0-3-2 7933 NULL
++e_jp_journal_size_journal_params_7943 jp_journal_size journal_params 0 7943 NULL
++e_psb_unlocked_ioctl_fndecl_7949 psb_unlocked_ioctl fndecl 2 7949 NULL
++e_jme_change_mtu_fndecl_7964 jme_change_mtu fndecl 2 7964 NULL
++e_ticket_len_rxk5_key_7970 ticket_len rxk5_key 0 7970 NULL nohasharray
++e_squashfs_read_table_fndecl_7970 squashfs_read_table fndecl 3 7970 &e_ticket_len_rxk5_key_7970
++e__sp2d_alloc_fndecl_7971 _sp2d_alloc fndecl 1 7971 NULL
++e_peb_count_ubi_device_7987 peb_count ubi_device 0 7987 NULL
++e_bin_buffer_size_configfs_buffer_7988 bin_buffer_size configfs_buffer 0 7988 NULL
++e_initrd_end_vardecl_7989 initrd_end vardecl 0 7989 NULL
++e_ip_append_data_fndecl_7997 ip_append_data fndecl 6-5 7997 NULL
++e_ieee80211_agg_tx_operational_fndecl_8006 ieee80211_agg_tx_operational fndecl 3 8006 NULL
++e_find_resource_fndecl_8013 find_resource fndecl 3 8013 NULL nohasharray
++e_encode_opaque_fixed_fndecl_8013 encode_opaque_fixed fndecl 3 8013 &e_find_resource_fndecl_8013 nohasharray
++e_ocfs2_read_quota_phys_block_fndecl_8013 ocfs2_read_quota_phys_block fndecl 2 8013 &e_encode_opaque_fixed_fndecl_8013
++e_max_mtu_mlx4_en_priv_8015 max_mtu mlx4_en_priv 0 8015 NULL
++e_keyctl_instantiate_key_iov_fndecl_8026 keyctl_instantiate_key_iov fndecl 3 8026 NULL
++e_period_size_snd_pcm_runtime_8027 period_size snd_pcm_runtime 0 8027 NULL
++e_length_e1000_rx_desc_8032 length e1000_rx_desc 0 8032 NULL
++e_mcast_mtu_ipoib_dev_priv_8033 mcast_mtu ipoib_dev_priv 0 8033 NULL
++e_gtt_base_align_radeon_mc_8035 gtt_base_align radeon_mc 0 8035 NULL
++e_vbi_width_au0828_dev_8038 vbi_width au0828_dev 0 8038 NULL
++e_size_nvkm_fifo_chan_8052 size nvkm_fifo_chan 0 8052 NULL
++e_ieee80211_tdls_build_mgmt_packet_data_fndecl_8053 ieee80211_tdls_build_mgmt_packet_data fndecl 8 8053 NULL
++e_cb710_check_event_fndecl_8054 cb710_check_event fndecl 0 8054 NULL
++e_mmio_megabytes_vmbus_channel_offer_8058 mmio_megabytes vmbus_channel_offer 0 8058 NULL nohasharray
++e_goldfish_tty_line_count_vardecl_goldfish_c_8058 goldfish_tty_line_count vardecl_goldfish.c 0 8058 &e_mmio_megabytes_vmbus_channel_offer_8058
++e_btrfs_unlink_inode_fndecl_8064 btrfs_unlink_inode fndecl 6 8064 NULL
++e_savage_map_video_fndecl_8078 savage_map_video fndecl 2 8078 NULL
++e_jumpshot_bulk_read_fndecl_8079 jumpshot_bulk_read fndecl 3 8079 NULL nohasharray
++e_encode_string_fndecl_8079 encode_string fndecl 2 8079 &e_jumpshot_bulk_read_fndecl_8079
++e_copy_counters_to_user_fndecl_8080 copy_counters_to_user fndecl 5 8080 NULL
++e_out_pipe_usbtest_dev_8085 out_pipe usbtest_dev 0 8085 NULL
++e_length_packet_8086 length packet 0 8086 NULL
++e_lpt_lnum_bits_ubifs_info_8094 lpt_lnum_bits ubifs_info 0 8094 NULL
++e_ali1535_smba_vardecl_i2c_ali1535_c_8095 ali1535_smba vardecl_i2c-ali1535.c 0 8095 NULL
++e_sd_complete_frame_fndecl_8096 sd_complete_frame fndecl 3 8096 NULL
++e_dvb_dvr_read_fndecl_8098 dvb_dvr_read fndecl 3 8098 NULL
++e_sddr55_read_data_fndecl_8099 sddr55_read_data fndecl 4-3 8099 NULL
++e_rx_cmp_meta_data_rx_cmp_ext_8103 rx_cmp_meta_data rx_cmp_ext 0 8103 NULL
++e_tgt_count_blogic_adapter_8109 tgt_count blogic_adapter 0 8109 NULL
++e_acpi_ut_get_resource_header_length_fndecl_8110 acpi_ut_get_resource_header_length fndecl 0 8110 NULL
++e_speed_channel_8113 speed channel 0 8113 NULL
++e_up_dnode_8116 up dnode 0 8116 NULL
++e_m_pblk_f2fs_map_blocks_8129 m_pblk f2fs_map_blocks 0 8129 NULL
++e_jffs2_scan_inode_node_fndecl_8132 jffs2_scan_inode_node fndecl 4 8132 NULL
++e_cfg_size_pci_dev_8134 cfg_size pci_dev 0 8134 NULL
++e_write_mem_fndecl_8137 write_mem fndecl 3 8137 NULL nohasharray
++e_wpa_ie_len_libipw_network_8137 wpa_ie_len libipw_network 0 8137 &e_write_mem_fndecl_8137 nohasharray
++e_ucNumDPMLevels__ATOM_PPLIB_STATE_V2_8137 ucNumDPMLevels _ATOM_PPLIB_STATE_V2 0 8137 &e_wpa_ie_len_libipw_network_8137
++e_nct6683_find_fndecl_8139 nct6683_find fndecl 0 8139 NULL nohasharray
++e_max_xmit_dlength_iscsi_conn_8139 max_xmit_dlength iscsi_conn 0 8139 &e_nct6683_find_fndecl_8139
++e_iic_tpm_write_long_fndecl_8143 iic_tpm_write_long fndecl 3 8143 NULL
++e_entry_length_fndecl_8150 entry_length fndecl 0 8150 NULL
++e_sys_preadv_fndecl_8159 sys_preadv fndecl 3 8159 NULL
++e_hr_start_block_o2hb_region_8162 hr_start_block o2hb_region 0 8162 NULL
++e_num_custom_params_pinctrl_desc_8163 num_custom_params pinctrl_desc 0 8163 NULL
++e_devnum_denali_nand_info_8164 devnum denali_nand_info 0 8164 NULL nohasharray
++e_read_len_ddb_flashio_8164 read_len ddb_flashio 0 8164 &e_devnum_denali_nand_info_8164
++e_pax_unmap_mirror_pte_fndecl_8168 pax_unmap_mirror_pte fndecl 2 8168 NULL
++e_tx_ring_count_igb_adapter_8171 tx_ring_count igb_adapter 0 8171 NULL
++e_jumpshot_write_data_fndecl_8172 jumpshot_write_data fndecl 4 8172 NULL
++e_blksz_mmc_data_8174 blksz mmc_data 0 8174 NULL
++e_avail_ubifs_wbuf_8176 avail ubifs_wbuf 0 8176 NULL
++e_pdu_read_fndecl_8183 pdu_read fndecl 3 8183 NULL
++e_nsftids_tid_info_8187 nsftids tid_info 0 8187 NULL
++e_brcms_c_get_header_len_fndecl_8189 brcms_c_get_header_len fndecl 0 8189 NULL
++e_resource_alignment_fndecl_8199 resource_alignment fndecl 0 8199 NULL
++e_tx_ring_count_fm10k_intfc_8210 tx_ring_count fm10k_intfc 0 8210 NULL
++e_mmap_size_kioctx_8213 mmap_size kioctx 0 8213 NULL
++e_clear_extent_bit_fndecl_8215 clear_extent_bit fndecl 2-3 8215 NULL nohasharray
++e_pci_scan_bus_fndecl_8215 pci_scan_bus fndecl 1 8215 &e_clear_extent_bit_fndecl_8215
++e_be_f_offset_pnfs_block_extent_8222 be_f_offset pnfs_block_extent 0 8222 NULL
++e_eeprom_size_iwl_base_params_8231 eeprom_size iwl_base_params 0 8231 NULL
++e_ir_freecount_xfs_inobt_rec_incore_8237 ir_freecount xfs_inobt_rec_incore 0 8237 NULL
++e_SYSC_llistxattr_fndecl_8238 SYSC_llistxattr fndecl 3 8238 NULL
++e_ocfs2_remove_extent_fndecl_8243 ocfs2_remove_extent fndecl 4-3 8243 NULL
++e_skb_set_transport_header_fndecl_8245 skb_set_transport_header fndecl 2 8245 NULL
++e_num_tasks_per_conn_iscsi_kwqe_init1_8249 num_tasks_per_conn iscsi_kwqe_init1 0 8249 NULL
++e_sys_sched_setaffinity_fndecl_8253 sys_sched_setaffinity fndecl 2 8253 NULL
++e_vmw_cursor_update_dmabuf_fndecl_8254 vmw_cursor_update_dmabuf fndecl 4-3 8254 NULL
++e_default_erasesize_fndecl_8255 default_erasesize fndecl 0 8255 NULL
++e_datablkcnt_capi_register_params_8263 datablkcnt capi_register_params 0 8263 NULL
++e_cow_file_range_inline_fndecl_8264 cow_file_range_inline fndecl 4-3 8264 NULL
++e_num_u3_ports_xhci_hcd_mtk_8272 num_u3_ports xhci_hcd_mtk 0 8272 NULL
++e_proc_scsi_devinfo_write_fndecl_8275 proc_scsi_devinfo_write fndecl 3 8275 NULL nohasharray
++e_datablklen_capi_register_params_8275 datablklen capi_register_params 0 8275 &e_proc_scsi_devinfo_write_fndecl_8275
++e_cdc_ncm_check_tx_max_fndecl_8278 cdc_ncm_check_tx_max fndecl 0-2 8278 NULL nohasharray
++e_nlmsg_put_fndecl_8278 nlmsg_put fndecl 5 8278 &e_cdc_ncm_check_tx_max_fndecl_8278
++e_msg_len_rndis_message_8281 msg_len rndis_message 0 8281 NULL
++e___sg_free_table_fndecl_8283 __sg_free_table fndecl 2 8283 NULL nohasharray
++e_expectedlen_drbg_testvec_8283 expectedlen drbg_testvec 0 8283 &e___sg_free_table_fndecl_8283
++e_dw_msi_teardown_irq_fndecl_8288 dw_msi_teardown_irq fndecl 2 8288 NULL
++e_tail_len_cfg80211_beacon_data_8293 tail_len cfg80211_beacon_data 0 8293 NULL
++e_ns_blocks_per_segment_the_nilfs_8295 ns_blocks_per_segment the_nilfs 0 8295 NULL
++e_offset_nft_payload_set_8300 offset nft_payload_set 0 8300 NULL nohasharray
++e_c_data_len_pvr2_ioread_8300 c_data_len pvr2_ioread 0 8300 &e_offset_nft_payload_set_8300
++e_iova_mlx5_core_mkey_8304 iova mlx5_core_mkey 0 8304 NULL
++e_ath6kl_fwlog_read_fndecl_8310 ath6kl_fwlog_read fndecl 3 8310 NULL
++e_group_trans_num_acl_subject_label_8316 group_trans_num acl_subject_label 0 8316 NULL nohasharray
++e_max_data_size_ircomm_tty_cb_8316 max_data_size ircomm_tty_cb 0 8316 &e_group_trans_num_acl_subject_label_8316
++e_depth_vim2m_fmt_8319 depth vim2m_fmt 0 8319 NULL nohasharray
++e_msg_len_drm_dp_sideband_msg_hdr_8319 msg_len drm_dp_sideband_msg_hdr 0 8319 &e_depth_vim2m_fmt_8319
++e_orangefs_inode_getxattr_fndecl_8321 orangefs_inode_getxattr fndecl 0 8321 NULL
++e_sv_max_payload_svc_serv_8322 sv_max_payload svc_serv 0 8322 NULL
++e_vga_video_font_height_vardecl_vgacon_c_8324 vga_video_font_height vardecl_vgacon.c 0 8324 NULL nohasharray
++e_norm_maxh_fndecl_8324 norm_maxh fndecl 0 8324 &e_vga_video_font_height_vardecl_vgacon_c_8324
++e_i2c_wr_fndecl_8325 i2c_wr fndecl 4 8325 NULL
++e_xfs_bmap_longest_free_extent_fndecl_8327 xfs_bmap_longest_free_extent fndecl 0-2 8327 NULL
++e_vhci_urb_dequeue_fndecl_8333 vhci_urb_dequeue fndecl 3 8333 NULL
++e_sec_per_lun_nvm_dev_8335 sec_per_lun nvm_dev 0 8335 NULL
++e_disks_stripe_head_8349 disks stripe_head 0 8349 NULL
++e_ch_do_scsi_fndecl_8353 ch_do_scsi fndecl 5 8353 NULL nohasharray
++e_req_pay_size_qlcnic_bc_trans_8353 req_pay_size qlcnic_bc_trans 0 8353 &e_ch_do_scsi_fndecl_8353
++e___nvm_submit_ppa_fndecl_8355 __nvm_submit_ppa fndecl 6 8355 NULL
++e_srp_map_sg_entry_fndecl_8356 srp_map_sg_entry fndecl 0 8356 NULL
++e_bufsize_scc_stat_8372 bufsize scc_stat 0 8372 NULL
++e_venus_link_fndecl_8374 venus_link fndecl 5 8374 NULL nohasharray
++e_rx_size_i2400mu_8374 rx_size i2400mu 0 8374 &e_venus_link_fndecl_8374
++e_height_deinterlace_q_data_8376 height deinterlace_q_data 0 8376 NULL
++e_do_writepages_fndecl_8382 do_writepages fndecl 0 8382 NULL nohasharray
++e_min_pre_pll_clk_div_smiapp_pll_limits_8382 min_pre_pll_clk_div smiapp_pll_limits 0 8382 &e_do_writepages_fndecl_8382 nohasharray
++e_ntfs_rl_realloc_nofail_fndecl_8382 ntfs_rl_realloc_nofail fndecl 3 8382 &e_min_pre_pll_clk_div_smiapp_pll_limits_8382
++e_riva_get_cmap_len_fndecl_8393 riva_get_cmap_len fndecl 0 8393 NULL
++e_depth_tc_sfq_qopt_v1_8394 depth tc_sfq_qopt_v1 0 8394 NULL
++e_ceph_pagelist_append_fndecl_8397 ceph_pagelist_append fndecl 3 8397 NULL
++e_wusb_ccm_mac_fndecl_8404 wusb_ccm_mac fndecl 7 8404 NULL
++e_ubi_wl_scrub_peb_fndecl_8407 ubi_wl_scrub_peb fndecl 0 8407 NULL nohasharray
++e_pkt_size_data_cmd_8407 pkt_size data_cmd 0 8407 &e_ubi_wl_scrub_peb_fndecl_8407
++e_bitrate_snd_at73c213_8409 bitrate snd_at73c213 0 8409 NULL
++e_wNdpOutPayloadRemainder_usb_cdc_ncm_ntb_parameters_8415 wNdpOutPayloadRemainder usb_cdc_ncm_ntb_parameters 0 8415 NULL
++e_ring_blocks_vxge_hw_ring_config_8417 ring_blocks vxge_hw_ring_config 0 8417 NULL
++e_rtsx_pci_dma_transfer_fndecl_8439 rtsx_pci_dma_transfer fndecl 0 8439 NULL
++e_block_dm_buffer_8440 block dm_buffer 0 8440 NULL
++e_offset_l2tp_session_8443 offset l2tp_session 0 8443 NULL
++e_bfad_iocmd_flash_read_part_fndecl_8446 bfad_iocmd_flash_read_part fndecl 0 8446 NULL nohasharray
++e_frame_size_tlan_list_8446 frame_size tlan_list 0 8446 &e_bfad_iocmd_flash_read_part_fndecl_8446
++e_cifs_lookup_cache_proc_write_fndecl_8447 cifs_lookup_cache_proc_write fndecl 3 8447 NULL
++e_ql_process_mac_split_rx_intr_fndecl_8452 ql_process_mac_split_rx_intr fndecl 4 8452 NULL
++e_parport_pc_probe_port_fndecl_8454 parport_pc_probe_port fndecl 1 8454 NULL
++e_extra_bytes_asc_q_done_info_8460 extra_bytes asc_q_done_info 0 8460 NULL
++e_free_enic_rfs_flw_tbl_8469 free enic_rfs_flw_tbl 0 8469 NULL
++e_drm_gem_create_mmap_offset_size_fndecl_8471 drm_gem_create_mmap_offset_size fndecl 2 8471 NULL nohasharray
++e_shmem_truncate_range_fndecl_8471 shmem_truncate_range fndecl 2-3 8471 &e_drm_gem_create_mmap_offset_size_fndecl_8471
++e_lbytes_tree_balance_8472 lbytes tree_balance 0 8472 NULL
++e_bpp_plane0_bdisp_fmt_8473 bpp_plane0 bdisp_fmt 0 8473 NULL
++e_screen_size_fb_info_8480 screen_size fb_info 0 8480 NULL
++e_length_btrfs_bio_stripe_8481 length btrfs_bio_stripe 0 8481 NULL
++e_i915_gem_get_gtt_alignment_fndecl_8484 i915_gem_get_gtt_alignment fndecl 2 8484 NULL
++e_max_feed_count_dvb_usb_fe_adapter_8487 max_feed_count dvb_usb_fe_adapter 0 8487 NULL
++e_ecryptfs_send_message_locked_fndecl_8490 ecryptfs_send_message_locked fndecl 2 8490 NULL
++e_tid_iwl_compressed_ba_resp_8492 tid iwl_compressed_ba_resp 0 8492 NULL
++e_data_write_fndecl_8494 data_write fndecl 3 8494 NULL
++e_vmw_gmr2_bind_fndecl_8503 vmw_gmr2_bind fndecl 3 8503 NULL
++e_id_da903x_subdev_info_8507 id da903x_subdev_info 0 8507 NULL
++e_dy_fb_copyarea_8510 dy fb_copyarea 0 8510 NULL
++e_num_processors_vardecl_8512 num_processors vardecl 0 8512 NULL
++e_st_nci_hci_dm_direct_load_fndecl_8517 st_nci_hci_dm_direct_load fndecl 3 8517 NULL
++e_follows_u132_command_8527 follows u132_command 0 8527 NULL
++e_alloc_blksz_shift_hfsplus_sb_info_8530 alloc_blksz_shift hfsplus_sb_info 0 8530 NULL
++e_strnlen_user_fndecl_8532 strnlen_user fndecl 0-2 8532 NULL
++e_rtsx_usb_write_register_fndecl_8533 rtsx_usb_write_register fndecl 0 8533 NULL
++e_r5l_recovery_flush_one_stripe_fndecl_8538 r5l_recovery_flush_one_stripe fndecl 3 8538 NULL
++e_overlay_out_left_vivid_dev_8540 overlay_out_left vivid_dev 0 8540 NULL
++e_num_gfx_vgastate_8542 num_gfx vgastate 0 8542 NULL
++e_fuse_dir_fsync_fndecl_8543 fuse_dir_fsync fndecl 2 8543 NULL
++e_tcp_snd_una_update_fndecl_8548 tcp_snd_una_update fndecl 2 8548 NULL
++e_sysminor_aoedev_8549 sysminor aoedev 0 8549 NULL
++e_vfront_porch_videomode_8550 vfront_porch videomode 0 8550 NULL nohasharray
++e_memsize_vardecl_tridentfb_c_8550 memsize vardecl_tridentfb.c 0 8550 &e_vfront_porch_videomode_8550
++e_mailbox_add_intel_sst_drv_8554 mailbox_add intel_sst_drv 0 8554 NULL
++e_vc4_bo_create_fndecl_8555 vc4_bo_create fndecl 2 8555 NULL
++e_caps_size_skl_specific_cfg_8559 caps_size skl_specific_cfg 0 8559 NULL
++e_fsnotify_perm_fndecl_8560 fsnotify_perm fndecl 0 8560 NULL
++e_btrfs_device_set_total_bytes_fndecl_8571 btrfs_device_set_total_bytes fndecl 2 8571 NULL
++e_mlx5_ib_update_mtt_fndecl_8575 mlx5_ib_update_mtt fndecl 3-2 8575 NULL nohasharray
++e_len_vmxnet3_rx_buf_info_8575 len vmxnet3_rx_buf_info 0 8575 &e_mlx5_ib_update_mtt_fndecl_8575
++e_rmi_i2c_read_block_fndecl_8583 rmi_i2c_read_block fndecl 4 8583 NULL
++e_num_module_param_attrs_8584 num module_param_attrs 0 8584 NULL
++e_max_request_size_brcmf_sdio_dev_8586 max_request_size brcmf_sdio_dev 0 8586 NULL
++e_ddb_output_write_fndecl_8589 ddb_output_write fndecl 3-0 8589 NULL
++e_height_efifb_dmi_info_8596 height efifb_dmi_info 0 8596 NULL nohasharray
++e_gss_unwrap_kerberos_v2_fndecl_8596 gss_unwrap_kerberos_v2 fndecl 2 8596 &e_height_efifb_dmi_info_8596
++e_dvb_ringbuffer_free_fndecl_8603 dvb_ringbuffer_free fndecl 0 8603 NULL
++e_size_hw_bank_8604 size hw_bank 0 8604 NULL
++e_uar_scratch_entry_sz_mthca_dev_lim_8606 uar_scratch_entry_sz mthca_dev_lim 0 8606 NULL
++e_seq_buf_commit_fndecl_8608 seq_buf_commit fndecl 2 8608 NULL
++e_irq_spi_device_8610 irq spi_device 0 8610 NULL
++e_rbd_img_obj_request_submit_fndecl_8613 rbd_img_obj_request_submit fndecl 0 8613 NULL
++e_transfer_size_fndecl_8623 transfer_size fndecl 0-1-2-3 8623 NULL
++e_xattr_permission_fndecl_8624 xattr_permission fndecl 0 8624 NULL
++e_in_height_sh_vou_geometry_8644 in_height sh_vou_geometry 0 8644 NULL
++e_block_size_cache_args_8648 block_size cache_args 0 8648 NULL
++e_e_value_offs_ext4_xattr_entry_8650 e_value_offs ext4_xattr_entry 0 8650 NULL
++e_xfs_bmap_worst_indlen_fndecl_8651 xfs_bmap_worst_indlen fndecl 0-2 8651 NULL
++e_truncate_size_ceph_mds_reply_inode_8652 truncate_size ceph_mds_reply_inode 0 8652 NULL nohasharray
++e_mr_len_rpcrdma_mr_seg_8652 mr_len rpcrdma_mr_seg 0 8652 &e_truncate_size_ceph_mds_reply_inode_8652
++e_copy_from_user_toio_fndecl_8653 copy_from_user_toio fndecl 3 8653 NULL
++e_mtd_ooblayout_count_bytes_fndecl_8654 mtd_ooblayout_count_bytes fndecl 0 8654 NULL
++e_read_mem_fndecl_8661 read_mem fndecl 3 8661 NULL
++e_SYSC_sethostname_fndecl_8663 SYSC_sethostname fndecl 2 8663 NULL
++e_vbi_end_bttv_8666 vbi_end bttv 0 8666 NULL
++e_ext4_zero_range_fndecl_8667 ext4_zero_range fndecl 3-2 8667 NULL
++e_reserve_pfn_range_fndecl_8670 reserve_pfn_range fndecl 1-2 8670 NULL
++e_vb2_write_fndecl_8671 vb2_write fndecl 3 8671 NULL
++e_dmaengine_prep_slave_single_fndecl_8675 dmaengine_prep_slave_single fndecl 3 8675 NULL
++e_write_data_done_iscsi_cmd_8676 write_data_done iscsi_cmd 0 8676 NULL
++e_aml_offset_acpi_rsconvert_info_8678 aml_offset acpi_rsconvert_info 0 8678 NULL
++e_status_whc_urb_8685 status whc_urb 0 8685 NULL
++e_led_set_brightness_sync_fndecl_8687 led_set_brightness_sync fndecl 2 8687 NULL nohasharray
++e_end_data_prctl_mm_map_8687 end_data prctl_mm_map 0 8687 &e_led_set_brightness_sync_fndecl_8687
++e_mtd_add_partition_fndecl_8688 mtd_add_partition fndecl 3 8688 NULL
++e_bfad_iocmd_qos_set_bw_fndecl_8690 bfad_iocmd_qos_set_bw fndecl 0 8690 NULL nohasharray
++e_env_start_mm_struct_8690 env_start mm_struct 0 8690 &e_bfad_iocmd_qos_set_bw_fndecl_8690
++e_mpeglines_vardecl_cx231xx_417_c_8691 mpeglines vardecl_cx231xx-417.c 0 8691 NULL nohasharray
++e_copy_frags_fndecl_8691 copy_frags fndecl 3 8691 &e_mpeglines_vardecl_cx231xx_417_c_8691 nohasharray
++e_b_out_mon_reader_bin_8691 b_out mon_reader_bin 0 8691 &e_copy_frags_fndecl_8691
++e_bfad_iocmd_cee_attr_fndecl_8696 bfad_iocmd_cee_attr fndecl 0 8696 NULL nohasharray
++e_NumEraseUnits_erase_unit_header_t_8696 NumEraseUnits erase_unit_header_t 0 8696 &e_bfad_iocmd_cee_attr_fndecl_8696
++e_exofs_write_end_fndecl_8702 exofs_write_end fndecl 5-3 8702 NULL
++e_hpfs_prefetch_sectors_fndecl_8708 hpfs_prefetch_sectors fndecl 2 8708 NULL
++e_max_unmap_blocks_scsi_disk_8709 max_unmap_blocks scsi_disk 0 8709 NULL nohasharray
++e_rx_buf_sz_sh_eth_private_8709 rx_buf_sz sh_eth_private 0 8709 &e_max_unmap_blocks_scsi_disk_8709
++e_adf7242_upload_firmware_fndecl_8716 adf7242_upload_firmware fndecl 3 8716 NULL nohasharray
++e_ieee80211_send_auth_fndecl_8716 ieee80211_send_auth fndecl 6 8716 &e_adf7242_upload_firmware_fndecl_8716
++e_iram_end_intel_sst_drv_8725 iram_end intel_sst_drv 0 8725 NULL
++e___xfs_trans_roll_fndecl_8728 __xfs_trans_roll fndecl 0 8728 NULL
++e_read_hdlc_status_fritz_adapter_8730 read_hdlc_status fritz_adapter 0 8730 NULL nohasharray
++e_disconnect_fndecl_8730 disconnect fndecl 4 8730 &e_read_hdlc_status_fritz_adapter_8730 nohasharray
++e_ip_set_elem_len_fndecl_8730 ip_set_elem_len fndecl 0-4-3 8730 &e_disconnect_fndecl_8730
++e_iwl_mvm_sta_rx_agg_fndecl_8734 iwl_mvm_sta_rx_agg fndecl 3 8734 NULL
++e_ext_param_page_length_nand_onfi_params_8736 ext_param_page_length nand_onfi_params 0 8736 NULL
++e_size_kmem_cache_8740 size kmem_cache 0 8740 NULL
++e_fd_execute_unmap_fndecl_8745 fd_execute_unmap fndecl 3-2 8745 NULL
++e_perf_ustack_task_size_fndecl_8746 perf_ustack_task_size fndecl 0 8746 NULL
++e_bits_per_pixel_smiapp_pll_8747 bits_per_pixel smiapp_pll 0 8747 NULL
++e_max_epid_fjes_hw_8751 max_epid fjes_hw 0 8751 NULL
++e__netlbl_catmap_getnode_fndecl_8754 _netlbl_catmap_getnode fndecl 2 8754 NULL
++e_snd_pcm_hw_param_set_fndecl_8761 snd_pcm_hw_param_set fndecl 4 8761 NULL
++e_length_acpi_nfit_system_address_8762 length acpi_nfit_system_address 0 8762 NULL
++e_max_swap_info_struct_8767 max swap_info_struct 0 8767 NULL
++e_amdtp_stream_set_parameters_fndecl_8769 amdtp_stream_set_parameters fndecl 3 8769 NULL
++e_gfs2_adjust_quota_fndecl_8777 gfs2_adjust_quota fndecl 2 8777 NULL
++e_data_dma_powermate_device_8783 data_dma powermate_device 0 8783 NULL
++e___pg_advance_sg_page_iter_8786 __pg_advance sg_page_iter 0 8786 NULL nohasharray
++e_rx_tr_cfv_info_8786 rx_tr cfv_info 0 8786 &e___pg_advance_sg_page_iter_8786
++e_nfs_setup_write_request_fndecl_8793 nfs_setup_write_request fndecl 3-4 8793 NULL
++e_pnp_mem_len_fndecl_8795 pnp_mem_len fndecl 0 8795 NULL
++e_lcd_vblank_len_atyfb_par_8796 lcd_vblank_len atyfb_par 0 8796 NULL
++e_logic_start_scrub_parity_8798 logic_start scrub_parity 0 8798 NULL
++e_dio_read_error_fndecl_8803 dio_read_error fndecl 4-6-5 8803 NULL
++e_write_ext_msg_fndecl_8804 write_ext_msg fndecl 3 8804 NULL
++e_amdgpu_gart_size_vardecl_8805 amdgpu_gart_size vardecl 0 8805 NULL
++e_info3_wmi_data_hdr_8808 info3 wmi_data_hdr 0 8808 NULL
++e_nilfs_cpfile_get_checkpoint_fndecl_8812 nilfs_cpfile_get_checkpoint fndecl 2 8812 NULL
++e_ieee80211_hdrlen_fndecl_8814 ieee80211_hdrlen fndecl 0 8814 NULL nohasharray
++e_batadv_tt_global_add_fndecl_8814 batadv_tt_global_add fndecl 4 8814 &e_ieee80211_hdrlen_fndecl_8814
++e_dma_alloc_pages_fndecl_8819 dma_alloc_pages fndecl 3 8819 NULL
++e_xgbe_set_buffer_data_fndecl_8822 xgbe_set_buffer_data fndecl 3 8822 NULL
++e_dma_buf_mmap_fndecl_8825 dma_buf_mmap fndecl 3 8825 NULL
++e_nfs4_xattr_get_nfs4_label_fndecl_8827 nfs4_xattr_get_nfs4_label fndecl 6 8827 NULL
++e_buflow_ring_desc_ex_8829 buflow ring_desc_ex 0 8829 NULL
++e_vsync_len_videomode_8830 vsync_len videomode 0 8830 NULL
++e_get_unaligned_be24_fndecl_8840 get_unaligned_be24 fndecl 0 8840 NULL
++e_rel_pd_idx_sd_pd_idx_8842 rel_pd_idx sd_pd_idx 0 8842 NULL
++e_iscsi_tcp_segment_recv_fndecl_8845 iscsi_tcp_segment_recv fndecl 0-4 8845 NULL
++e_max_packet_size_ftdi_private_8847 max_packet_size ftdi_private 0 8847 NULL
++e_ibufsize_sisusb_usb_data_8851 ibufsize sisusb_usb_data 0 8851 NULL
++e_kvmalloc_fndecl_8853 kvmalloc fndecl 1 8853 NULL
++e_blkno2_xfs_da_args_8858 blkno2 xfs_da_args 0 8858 NULL
++e_pci_xr17v35x_setup_fndecl_8861 pci_xr17v35x_setup fndecl 4 8861 NULL
++e_alloc_extent_buffer_fndecl_8862 alloc_extent_buffer fndecl 2 8862 NULL
++e_min_led_flash_setting_8868 min led_flash_setting 0 8868 NULL
++e_dm_set_target_max_io_len_fndecl_8872 dm_set_target_max_io_len fndecl 2 8872 NULL
++e___memblock_free_early_fndecl_8876 __memblock_free_early fndecl 2-1 8876 NULL
++e_jfs_readpages_fndecl_8877 jfs_readpages fndecl 4 8877 NULL
++e_root_entry_uctp_fndecl_8878 root_entry_uctp fndecl 0 8878 NULL
++e_icsk_ext_hdr_len_inet_connection_sock_8885 icsk_ext_hdr_len inet_connection_sock 0 8885 NULL
++e_playback_frlog_rme32_8891 playback_frlog rme32 0 8891 NULL
++e_via_lock_rate_fndecl_8895 via_lock_rate fndecl 2 8895 NULL
++e_byt_serial_setup_fndecl_8903 byt_serial_setup fndecl 4 8903 NULL nohasharray
++e_pages_squashfs_cache_8903 pages squashfs_cache 0 8903 &e_byt_serial_setup_fndecl_8903
++e_bits_per_pixel_fb_var_screeninfo_8906 bits_per_pixel fb_var_screeninfo 0 8906 NULL
++e_xfs_filestream_new_ag_fndecl_8916 xfs_filestream_new_ag fndecl 0 8916 NULL
++e__xfs_buf_get_pages_fndecl_8920 _xfs_buf_get_pages fndecl 2 8920 NULL
++e_xfs_bmbt_update_fndecl_8922 xfs_bmbt_update fndecl 0 8922 NULL
++e_data_size_mdp_superblock_1_8925 data_size mdp_superblock_1 0 8925 NULL
++e_fip_flags_fip_header_8926 fip_flags fip_header 0 8926 NULL
++e_nbufread_gspca_dev_8934 nbufread gspca_dev 0 8934 NULL
++e_begin_cmd_fndecl_8941 begin_cmd fndecl 0 8941 NULL
++e_i40e_pci_sriov_enable_fndecl_8949 i40e_pci_sriov_enable fndecl 2 8949 NULL
++e_tree_root_btrfs_root_backup_8950 tree_root btrfs_root_backup 0 8950 NULL
++e_get_arg_page_fndecl_8953 get_arg_page fndecl 2 8953 NULL
++e_rx_metadata_offset_brcmf_msgbuf_8954 rx_metadata_offset brcmf_msgbuf 0 8954 NULL
++e_videobuf_mmap_setup_fndecl_8956 videobuf_mmap_setup fndecl 3 8956 NULL nohasharray
++e_nfrags_pktgen_dev_8956 nfrags pktgen_dev 0 8956 &e_videobuf_mmap_setup_fndecl_8956
++e_pkt_align_fndecl_8963 pkt_align fndecl 2-3 8963 NULL
++e_fromlen_nfs_symlinkargs_8967 fromlen nfs_symlinkargs 0 8967 NULL
++e_wm8776_field_set_fndecl_8970 wm8776_field_set fndecl 2 8970 NULL
++e_size_sg_pool_8971 size sg_pool 0 8971 NULL
++e_area_length_dmi_system_event_log_8974 area_length dmi_system_event_log 0 8974 NULL
++e_fanout_ubifs_info_8981 fanout ubifs_info 0 8981 NULL
++e_ocfs2_xattr_find_entry_fndecl_8983 ocfs2_xattr_find_entry fndecl 0 8983 NULL
++e_link_duplex_netxen_adapter_8988 link_duplex netxen_adapter 0 8988 NULL
++e_block_begin_dm_cell_key_8992 block_begin dm_cell_key 0 8992 NULL
++e_vmalloc_user_fndecl_8999 vmalloc_user fndecl 1 8999 NULL
++e_scatterwalk_map_and_copy_fndecl_9005 scatterwalk_map_and_copy fndecl 3 9005 NULL
++e_pitch_i810fb_par_9022 pitch i810fb_par 0 9022 NULL
++e_pcan_usb_decode_data_fndecl_9023 pcan_usb_decode_data fndecl 2 9023 NULL nohasharray
++e_bfad_iocmd_diag_dport_show_fndecl_9023 bfad_iocmd_diag_dport_show fndecl 0 9023 &e_pcan_usb_decode_data_fndecl_9023
++e_cdrom_read_cd_fndecl_9024 cdrom_read_cd fndecl 5-4 9024 NULL
++e_xfs_bmap_extsize_align_fndecl_9025 xfs_bmap_extsize_align fndecl 4-0 9025 NULL
++e_report_desc_size_mousevsc_dev_9027 report_desc_size mousevsc_dev 0 9027 NULL
++e_offset_gro_remcsum_9028 offset gro_remcsum 0 9028 NULL nohasharray
++e_nextread_isowbuf_t_9028 nextread isowbuf_t 0 9028 &e_offset_gro_remcsum_9028
++e_t4_alloc_mem_fndecl_9029 t4_alloc_mem fndecl 1 9029 NULL
++e_id_port_9030 id port 0 9030 NULL nohasharray
++e_wDescriptorLength_hid_class_descriptor_9030 wDescriptorLength hid_class_descriptor 0 9030 &e_id_port_9030
++e_svc_create_pooled_fndecl_9043 svc_create_pooled fndecl 2 9043 NULL
++e_raid_disks_geom_9044 raid_disks geom 0 9044 NULL
++e_ath6kl_wmi_delete_pstream_cmd_fndecl_9048 ath6kl_wmi_delete_pstream_cmd fndecl 2 9048 NULL
++e__drbd_bm_find_next_fndecl_9063 _drbd_bm_find_next fndecl 2 9063 NULL nohasharray
++e_keys_bset_9063 keys bset 0 9063 &e__drbd_bm_find_next_fndecl_9063 nohasharray
++e_tx_buf_sz_iadev_priv_9063 tx_buf_sz iadev_priv 0 9063 &e_keys_bset_9063 nohasharray
++e_send_mpa_reply_fndecl_9063 send_mpa_reply fndecl 3 9063 &e_tx_buf_sz_iadev_priv_9063
++e_current_sg_offset_msb_data_9075 current_sg_offset msb_data 0 9075 NULL
++e_nilfs_dat_read_fndecl_9076 nilfs_dat_read fndecl 2 9076 NULL
++e_advertised_mtu_tipc_link_9077 advertised_mtu tipc_link 0 9077 NULL
++e_dispatch_ioctl_fndecl_9078 dispatch_ioctl fndecl 2 9078 NULL nohasharray
++e_out_int_pipe_usbtest_dev_9078 out_int_pipe usbtest_dev 0 9078 &e_dispatch_ioctl_fndecl_9078 nohasharray
++e_bfad_iocmd_fcpim_throttle_query_fndecl_9078 bfad_iocmd_fcpim_throttle_query fndecl 0 9078 &e_out_int_pipe_usbtest_dev_9078
++e_count_afs_call_9081 count afs_call 0 9081 NULL nohasharray
++e_ReadHDLCPCI_fndecl_9081 ReadHDLCPCI fndecl 0 9081 &e_count_afs_call_9081
++e_start_brk_mm_struct_9085 start_brk mm_struct 0 9085 NULL
++e_optlen_rdma_ucm_set_option_9087 optlen rdma_ucm_set_option 0 9087 NULL
++e_event_count_Fsm_9088 event_count Fsm 0 9088 NULL
++e_width_fb_fillrect_9090 width fb_fillrect 0 9090 NULL nohasharray
++e_sizeimage_bdisp_frame_9090 sizeimage bdisp_frame 0 9090 &e_width_fb_fillrect_9090
++e_vmci_qp_alloc_fndecl_9094 vmci_qp_alloc fndecl 5-3 9094 NULL
++e_limit_parsed_partitions_9099 limit parsed_partitions 0 9099 NULL
++e_logical_id_i40e_aqc_list_capabilities_element_resp_9102 logical_id i40e_aqc_list_capabilities_element_resp 0 9102 NULL
++e_keylen_ieee80211_key_conf_9103 keylen ieee80211_key_conf 0 9103 NULL
++e_s_blocks_count_lo_ext4_super_block_9106 s_blocks_count_lo ext4_super_block 0 9106 NULL nohasharray
++e_fragment_size_cfrfml_9106 fragment_size cfrfml 0 9106 &e_s_blocks_count_lo_ext4_super_block_9106
++e_x38_channel_num_vardecl_x38_edac_c_9109 x38_channel_num vardecl_x38_edac.c 0 9109 NULL
++e_qla4_82xx_pci_mem_write_2M_fndecl_9117 qla4_82xx_pci_mem_write_2M fndecl 2 9117 NULL
++e_numEntries__ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table_9118 numEntries _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table 0 9118 NULL
++e_break_ksm_fndecl_9124 break_ksm fndecl 2 9124 NULL
++e_skl_substream_alloc_pages_fndecl_9125 skl_substream_alloc_pages fndecl 3 9125 NULL
++e_xfs_alloc_put_freelist_fndecl_9126 xfs_alloc_put_freelist fndecl 0 9126 NULL
++e_neigh_priv_len_net_device_9133 neigh_priv_len net_device 0 9133 NULL
++e_read_buffer_length_adu_device_9140 read_buffer_length adu_device 0 9140 NULL
++e_size_ip6t_replace_9148 size ip6t_replace 0 9148 NULL
++e_cifs_uncached_read_into_pages_fndecl_9150 cifs_uncached_read_into_pages fndecl 3 9150 NULL
++e_ext_capab_len_station_parameters_9152 ext_capab_len station_parameters 0 9152 NULL
++e_fill_readbuf_fndecl_9155 fill_readbuf fndecl 3 9155 NULL
++e_depth_saa7134_format_9167 depth saa7134_format 0 9167 NULL
++e_channels_ua101_stream_9173 channels ua101_stream 0 9173 NULL
++e_alloc_queue_pairs_i40e_vsi_9174 alloc_queue_pairs i40e_vsi 0 9174 NULL
++e_offset_hv_multipage_buffer_9175 offset hv_multipage_buffer 0 9175 NULL
++e___ext4_handle_dirty_super_fndecl_9177 __ext4_handle_dirty_super fndecl 0 9177 NULL
++e_b_size_buffer_head_9178 b_size buffer_head 0 9178 NULL nohasharray
++e_sdev_format_header_fndecl_9178 sdev_format_header fndecl 0 9178 &e_b_size_buffer_head_9178
++e_max_vfio_pci_fill_info_9182 max vfio_pci_fill_info 0 9182 NULL
++e_chunk_sectors_queue_limits_9183 chunk_sectors queue_limits 0 9183 NULL
++e_form_cm_frame_fndecl_9184 form_cm_frame fndecl 4-6 9184 NULL
++e_requested_headroom_veth_priv_9187 requested_headroom veth_priv 0 9187 NULL
++e_device_sis_chipset_9193 device sis_chipset 0 9193 NULL
++e_stb0899_write_regs_fndecl_9197 stb0899_write_regs fndecl 4 9197 NULL
++e_buflen_xfs_fsop_attrlist_handlereq_9199 buflen xfs_fsop_attrlist_handlereq 0 9199 NULL
++e_efx_rx_packet_fndecl_9200 efx_rx_packet fndecl 4-3 9200 NULL
++e_byte_per_page_nand_onfi_params_9202 byte_per_page nand_onfi_params 0 9202 NULL
++e_tx_max_datagrams_cdc_ncm_ctx_9206 tx_max_datagrams cdc_ncm_ctx 0 9206 NULL
++e_hw_token_ehci_qh_hw_9208 hw_token ehci_qh_hw 0 9208 NULL
++e_mesh_rx_path_sel_frame_fndecl_9210 mesh_rx_path_sel_frame fndecl 3 9210 NULL
++e_sae_data_len_cfg80211_auth_request_9212 sae_data_len cfg80211_auth_request 0 9212 NULL
++e_ide_driver_proc_write_fndecl_9214 ide_driver_proc_write fndecl 3 9214 NULL
++e_zram_meta_alloc_fndecl_9221 zram_meta_alloc fndecl 2 9221 NULL
++e_pcicfg_size_sst_pdata_9222 pcicfg_size sst_pdata 0 9222 NULL
++e_ext4_create_inline_data_fndecl_9231 ext4_create_inline_data fndecl 3 9231 NULL
++e_supported_rates_len_station_parameters_9235 supported_rates_len station_parameters 0 9235 NULL
++e_i2400mu_rx_size_grow_fndecl_9246 i2400mu_rx_size_grow fndecl 0 9246 NULL
++e_nlmsg_put_answer_fndecl_9247 nlmsg_put_answer fndecl 4 9247 NULL
++e_vram_start_vml_info_9251 vram_start vml_info 0 9251 NULL
++e_n_sbufs_stk_camera_9256 n_sbufs stk_camera 0 9256 NULL
++e_ocfs2_et_get_last_eb_blk_fndecl_9258 ocfs2_et_get_last_eb_blk fndecl 0 9258 NULL nohasharray
++e_sk_priority_sock_9258 sk_priority sock 0 9258 &e_ocfs2_et_get_last_eb_blk_fndecl_9258
++e_buffer_size_snd_rawmidi_runtime_9267 buffer_size snd_rawmidi_runtime 0 9267 NULL
++e_wl1251_sdio_write_fndecl_9274 wl1251_sdio_write fndecl 4 9274 NULL
++e_ResponseDataLength__MSG_SMP_PASSTHROUGH_REPLY_9278 ResponseDataLength _MSG_SMP_PASSTHROUGH_REPLY 0 9278 NULL
++e_regmap_encx24j600_write_fndecl_9283 regmap_encx24j600_write fndecl 3 9283 NULL
++e_offset_ivtv_dma_page_info_9286 offset ivtv_dma_page_info 0 9286 NULL
++e_buffer_bytes_st_buffer_9290 buffer_bytes st_buffer 0 9290 NULL nohasharray
++e_rx_cmd_ep_usb_card_rec_9290 rx_cmd_ep usb_card_rec 0 9290 &e_buffer_bytes_st_buffer_9290 nohasharray
++e_get_ramsize_brcmf_bus_ops_9290 get_ramsize brcmf_bus_ops 0 9290 &e_rx_cmd_ep_usb_card_rec_9290 nohasharray
++e_format_reserved_ms_boot_header_9290 format_reserved ms_boot_header 0 9290 &e_get_ramsize_brcmf_bus_ops_9290
++e_cxd2820r_wr_regs_fndecl_9307 cxd2820r_wr_regs fndecl 4 9307 NULL
++e_sys_splice_fndecl_9308 sys_splice fndecl 5 9308 NULL
++e_sctp_setsockopt_context_fndecl_9312 sctp_setsockopt_context fndecl 3 9312 NULL
++e_fcoe_conn_context_id_fcoe_kcqe_9316 fcoe_conn_context_id fcoe_kcqe 0 9316 NULL
++e_find_mergeable_fndecl_9318 find_mergeable fndecl 2 9318 NULL
++e_in_packet_size_pcm_runtime_9321 in_packet_size pcm_runtime 0 9321 NULL
++e_pages_in_io_dio_submit_9326 pages_in_io dio_submit 0 9326 NULL
++e_rbuf_fill_count_slgt_info_9335 rbuf_fill_count slgt_info 0 9335 NULL
++e_ttm_bo_ioremap_fndecl_9337 ttm_bo_ioremap fndecl 3-2 9337 NULL
++e_htree_dirblock_to_tree_fndecl_9339 htree_dirblock_to_tree fndecl 3 9339 NULL
++e_usb_dmac_chan_get_residue_fndecl_9349 usb_dmac_chan_get_residue fndecl 0 9349 NULL
++e_di_size_xfs_icdinode_9350 di_size xfs_icdinode 0 9350 NULL
++e_tse_init_rx_buffer_fndecl_9354 tse_init_rx_buffer fndecl 3 9354 NULL
++e_length_property_entry_9357 length property_entry 0 9357 NULL
++e_stv6110x_write_regs_fndecl_9359 stv6110x_write_regs fndecl 4 9359 NULL
++e_mt2060_writeregs_fndecl_9371 mt2060_writeregs fndecl 3 9371 NULL
++e_le_adv_data_len_hci_conn_9377 le_adv_data_len hci_conn 0 9377 NULL
++e_mss_clamp_tcp_options_received_9378 mss_clamp tcp_options_received 0 9378 NULL
++e_fix_priv_head_fndecl_9385 fix_priv_head fndecl 2 9385 NULL
++e_nr_uart_driver_9391 nr uart_driver 0 9391 NULL
++e_ssb_read16_fndecl_9392 ssb_read16 fndecl 0 9392 NULL
++e_dr_pre_altera_jtag_9393 dr_pre altera_jtag 0 9393 NULL
++e_ubifs_tnc_add_nm_fndecl_9397 ubifs_tnc_add_nm fndecl 4-5 9397 NULL
++e_sr_bg_blkno_ocfs2_suballoc_result_9401 sr_bg_blkno ocfs2_suballoc_result 0 9401 NULL
++e_caif_seqpkt_recvmsg_fndecl_9402 caif_seqpkt_recvmsg fndecl 3 9402 NULL
++e_goodix_get_cfg_len_fndecl_9410 goodix_get_cfg_len fndecl 0 9410 NULL nohasharray
++e_blk_queue_physical_block_size_fndecl_9410 blk_queue_physical_block_size fndecl 2 9410 &e_goodix_get_cfg_len_fndecl_9410
++e_data_start_dm_ioctl_9412 data_start dm_ioctl 0 9412 NULL
++e_return_size_drm_amdgpu_info_9414 return_size drm_amdgpu_info 0 9414 NULL
++e_acpi_ex_system_memory_space_handler_fndecl_9419 acpi_ex_system_memory_space_handler fndecl 2 9419 NULL
++e_r592_read_fifo_pio_fndecl_9421 r592_read_fifo_pio fndecl 3 9421 NULL nohasharray
++e_rocker_dma_ring_create_fndecl_9421 rocker_dma_ring_create fndecl 3 9421 &e_r592_read_fifo_pio_fndecl_9421
++e_dlen_garp_attr_9422 dlen garp_attr 0 9422 NULL
++e_f2fs_convert_inline_inode_fndecl_9429 f2fs_convert_inline_inode fndecl 0 9429 NULL
++e_bcma_hcd_create_pdev_fndecl_9430 bcma_hcd_create_pdev fndecl 3 9430 NULL
++e_ext4_restore_inline_data_fndecl_9436 ext4_restore_inline_data fndecl 5 9436 NULL
++e___read_reg_fndecl_9443 __read_reg fndecl 0 9443 NULL
++e_height_stk1160_9446 height stk1160 0 9446 NULL
++e_ip6_encap_hlen_fndecl_9457 ip6_encap_hlen fndecl 0 9457 NULL
++e_total_bufsize_es1968_9458 total_bufsize es1968 0 9458 NULL
++e_ide_gd_capacity_fndecl_9459 ide_gd_capacity fndecl 0 9459 NULL nohasharray
++e_mtdchar_readoob_fndecl_9459 mtdchar_readoob fndecl 3-4 9459 &e_ide_gd_capacity_fndecl_9459
++e_si21_writeregs_fndecl_9460 si21_writeregs fndecl 4 9460 NULL
++e_async_wrap_skb_fndecl_9465 async_wrap_skb fndecl 0 9465 NULL
++e_kvm_mmu_page_fault_fndecl_9470 kvm_mmu_page_fault fndecl 2 9470 NULL
++e_height_cobalt_stream_9490 height cobalt_stream 0 9490 NULL
++e_flags_ext4_encryption_context_9491 flags ext4_encryption_context 0 9491 NULL
++e_bpp_mcam_format_struct_9503 bpp mcam_format_struct 0 9503 NULL
++e_zlib_updatewindow_fndecl_9508 zlib_updatewindow fndecl 2 9508 NULL
++e_s_clustersize_bits_ocfs2_super_block_9516 s_clustersize_bits ocfs2_super_block 0 9516 NULL nohasharray
++e_zero_disk_area_fndecl_9516 zero_disk_area fndecl 2 9516 &e_s_clustersize_bits_ocfs2_super_block_9516
++e_ncp_mknod_fndecl_9535 ncp_mknod fndecl 4 9535 NULL
++e_cap_width_usbtv_norm_params_9538 cap_width usbtv_norm_params 0 9538 NULL
++e_nilfs_mdt_forget_block_fndecl_9543 nilfs_mdt_forget_block fndecl 2 9543 NULL
++e_cnt_i40iw_hmc_obj_info_9546 cnt i40iw_hmc_obj_info 0 9546 NULL
++e___bio_alloc_fndecl_9552 __bio_alloc fndecl 2 9552 NULL
++e_rt2x00queue_insert_l2pad_fndecl_9553 rt2x00queue_insert_l2pad fndecl 2 9553 NULL
++e_display_byte_stride_vivid_dev_9554 display_byte_stride vivid_dev 0 9554 NULL
++e_block_group_ext4_iloc_9559 block_group ext4_iloc 0 9559 NULL
++e_glocont_endpoint_keyspan_device_details_9560 glocont_endpoint keyspan_device_details 0 9560 NULL
++e_p9_client_statsize_fndecl_9568 p9_client_statsize fndecl 0 9568 NULL
++e_page_order_cas_9572 page_order cas 0 9572 NULL
++e_width_drm_mode_create_dumb_9575 width drm_mode_create_dumb 0 9575 NULL
++e_sctp_setsockopt_auth_chunk_fndecl_9576 sctp_setsockopt_auth_chunk fndecl 3 9576 NULL
++e_mpage_add_bh_to_extent_fndecl_9577 mpage_add_bh_to_extent fndecl 2 9577 NULL
++e_mode_buf_len_udl_device_9578 mode_buf_len udl_device 0 9578 NULL
++e_cfg80211_rx_mgmt_fndecl_9583 cfg80211_rx_mgmt fndecl 5 9583 NULL
++e_crtc_vblank_start_drm_display_mode_9587 crtc_vblank_start drm_display_mode 0 9587 NULL
++e_vlan_ctag_xgbe_packet_data_9591 vlan_ctag xgbe_packet_data 0 9591 NULL nohasharray
++e_SYSC_splice_fndecl_9591 SYSC_splice fndecl 5 9591 &e_vlan_ctag_xgbe_packet_data_9591
++e_torch_max_current_as3645a_platform_data_9597 torch_max_current as3645a_platform_data 0 9597 NULL
++e_xlog_grant_head_wait_fndecl_9598 xlog_grant_head_wait fndecl 0 9598 NULL
++e_ileb_len_ubifs_info_9607 ileb_len ubifs_info 0 9607 NULL
++e_ei_leaf_hi_ext4_extent_idx_9617 ei_leaf_hi ext4_extent_idx 0 9617 NULL
++e_free_bg_ocfs2_cached_block_free_9619 free_bg ocfs2_cached_block_free 0 9619 NULL
++e_geneve_change_mtu_fndecl_9620 geneve_change_mtu fndecl 2 9620 NULL
++e_blk_end_request_err_fndecl_9623 blk_end_request_err fndecl 2 9623 NULL
++e_shmem_get_inode_fndecl_9626 shmem_get_inode fndecl 4 9626 NULL nohasharray
++e_hpfs_ea_write_fndecl_9626 hpfs_ea_write fndecl 5-4-2 9626 &e_shmem_get_inode_fndecl_9626
++e_cur_can_queue_megasas_instance_9627 cur_can_queue megasas_instance 0 9627 NULL
++e_num_fcxps_vardecl_9630 num_fcxps vardecl 0 9630 NULL
++e_ubifs_wbuf_seek_nolock_fndecl_9634 ubifs_wbuf_seek_nolock fndecl 3 9634 NULL
++e_fc_host_post_vendor_event_fndecl_9636 fc_host_post_vendor_event fndecl 3 9636 NULL
++e_copy_to_iter_fndecl_9638 copy_to_iter fndecl 0-2 9638 NULL
++e_fd_do_prot_unmap_fndecl_9639 fd_do_prot_unmap fndecl 3 9639 NULL
++e_num_nodes_hdac_device_9647 num_nodes hdac_device 0 9647 NULL
++e_height_drm_vmw_size_9654 height drm_vmw_size 0 9654 NULL nohasharray
++e_dict_size_lzma_header_9654 dict_size lzma_header 0 9654 &e_height_drm_vmw_size_9654
++e_x509_akid_note_name_fndecl_9656 x509_akid_note_name fndecl 5 9656 NULL
++e_wm8400_register_regulator_fndecl_9660 wm8400_register_regulator fndecl 2 9660 NULL
++e_hr_slots_per_page_o2hb_region_9668 hr_slots_per_page o2hb_region 0 9668 NULL
++e_PCI_Address_DAC960_Controller_9669 PCI_Address DAC960_Controller 0 9669 NULL
++e_sctp_setsockopt_rtoinfo_fndecl_9678 sctp_setsockopt_rtoinfo fndecl 3 9678 NULL
++e_tty_devnum_fndecl_9682 tty_devnum fndecl 0 9682 NULL nohasharray
++e_length_hpfs_dirent_9682 length hpfs_dirent 0 9682 &e_tty_devnum_fndecl_9682
++e_scrub_pages_for_parity_fndecl_9684 scrub_pages_for_parity fndecl 3-2-4 9684 NULL
++e_osd_req_decode_sense_full_fndecl_9685 osd_req_decode_sense_full fndecl 0 9685 NULL
++e_s3fwrn5_fw_prep_msg_fndecl_9686 s3fwrn5_fw_prep_msg fndecl 6 9686 NULL
++e_ba_param_set_wmi_rcp_addba_req_event_9687 ba_param_set wmi_rcp_addba_req_event 0 9687 NULL
++e_xresstep_svga_fb_format_9690 xresstep svga_fb_format 0 9690 NULL
++e_max_num_pmkids_wiphy_9691 max_num_pmkids wiphy 0 9691 NULL
++e_SYSC_ftruncate64_fndecl_9692 SYSC_ftruncate64 fndecl 2 9692 NULL
++e_fill_from_dev_buffer_fndecl_9695 fill_from_dev_buffer fndecl 3 9695 NULL
++e_adp5589_build_gpiomap_fndecl_9697 adp5589_build_gpiomap fndecl 0 9697 NULL
++e_phys_addr_ntb_transport_mw_9704 phys_addr ntb_transport_mw 0 9704 NULL
++e_tty_insert_flip_string_flags_fndecl_9706 tty_insert_flip_string_flags fndecl 4 9706 NULL nohasharray
++e_payload_len_cfg80211_wowlan_tcp_9706 payload_len cfg80211_wowlan_tcp 0 9706 &e_tty_insert_flip_string_flags_fndecl_9706
++e_sr_write_async_fndecl_9707 sr_write_async fndecl 3 9707 NULL
++e_xprt_rdma_max_inline_write_vardecl_transport_c_9715 xprt_rdma_max_inline_write vardecl_transport.c 0 9715 NULL
++e_page_size_dataflash_9722 page_size dataflash 0 9722 NULL nohasharray
++e_tx_ringsz_alx_priv_9722 tx_ringsz alx_priv 0 9722 &e_page_size_dataflash_9722
++e_setup_port_fndecl_9724 setup_port fndecl 5-4 9724 NULL nohasharray
++e_start_bidx_of_node_fndecl_9724 start_bidx_of_node fndecl 0-1 9724 &e_setup_port_fndecl_9724 nohasharray
++e_ieee80211_build_preq_ies_band_fndecl_9724 ieee80211_build_preq_ies_band fndecl 0 9724 &e_start_bidx_of_node_fndecl_9724
++e_mask_myri10ge_tx_buf_9725 mask myri10ge_tx_buf 0 9725 NULL
++e_midi_out_ports_snd_efw_9740 midi_out_ports snd_efw 0 9740 NULL
++e_key_sz_qat_rsa_ctx_9743 key_sz qat_rsa_ctx 0 9743 NULL
++e_blkdev_fsync_fndecl_9745 blkdev_fsync fndecl 2 9745 NULL
++e___alloc_bootmem_fndecl_9753 __alloc_bootmem fndecl 2-1-3 9753 NULL
++e_hbuf_free_slots_mei_hw_ops_9760 hbuf_free_slots mei_hw_ops 0 9760 NULL
++e_hidraw_write_fndecl_9763 hidraw_write fndecl 3 9763 NULL nohasharray
++e_buffer_length_floppy_raw_cmd_9763 buffer_length floppy_raw_cmd 0 9763 &e_hidraw_write_fndecl_9763
++e_mtd_div_by_eb_fndecl_9764 mtd_div_by_eb fndecl 0-1 9764 NULL
++e_index_sdio_uart_port_9769 index sdio_uart_port 0 9769 NULL
++e_dvb_ringbuffer_write_fndecl_9775 dvb_ringbuffer_write fndecl 0-3 9775 NULL nohasharray
++e_stat_ethoc_bd_9775 stat ethoc_bd 0 9775 &e_dvb_ringbuffer_write_fndecl_9775
++e_vmlfb_alloc_vram_area_fndecl_9776 vmlfb_alloc_vram_area fndecl 2 9776 NULL
++e_ctl_dev_e752x_dev_info_9777 ctl_dev e752x_dev_info 0 9777 NULL
++e_encap_hlen_ip_tunnel_9779 encap_hlen ip_tunnel 0 9779 NULL
++e_valuelen_xfs_da_args_9786 valuelen xfs_da_args 0 9786 NULL
++e_max_pll_op_freq_hz_smiapp_pll_limits_9787 max_pll_op_freq_hz smiapp_pll_limits 0 9787 NULL
++e_irda_recvmsg_dgram_fndecl_9788 irda_recvmsg_dgram fndecl 3 9788 NULL nohasharray
++e_base_io_mapping_9788 base io_mapping 0 9788 &e_irda_recvmsg_dgram_fndecl_9788
++e___mv88e6xxx_reg_read_fndecl_9789 __mv88e6xxx_reg_read fndecl 0 9789 NULL
++e_vci_atm_vcc_9797 vci atm_vcc 0 9797 NULL
++e_aper_base_agp_kern_info_9798 aper_base agp_kern_info 0 9798 NULL
++e_irlan_insert_array_param_fndecl_9800 irlan_insert_array_param fndecl 4 9800 NULL
++e_get_max_inline_xattr_value_size_fndecl_9801 get_max_inline_xattr_value_size fndecl 0 9801 NULL
++e_rq_callsize_rpc_rqst_9803 rq_callsize rpc_rqst 0 9803 NULL
++e_osst_write_fndecl_9806 osst_write fndecl 3 9806 NULL
++e_in_size_ViceIoctl_9808 in_size ViceIoctl 0 9808 NULL
++e_num_private_args_iw_handler_def_9810 num_private_args iw_handler_def 0 9810 NULL
++e_update_backref_node_fndecl_9811 update_backref_node fndecl 3 9811 NULL
++e_pathmtu_sctp_association_9815 pathmtu sctp_association 0 9815 NULL
++e_brcmf_proto_bcdc_hdrpush_fndecl_9818 brcmf_proto_bcdc_hdrpush fndecl 3 9818 NULL
++e_ppm_find_unused_entries_fndecl_9823 ppm_find_unused_entries fndecl 0 9823 NULL
++e_pref_erase_mmc_card_9824 pref_erase mmc_card 0 9824 NULL
++e_flags_rtl8187se_rx_desc_9826 flags rtl8187se_rx_desc 0 9826 NULL
++e_list_bytes_osdv1_attributes_list_header_9829 list_bytes osdv1_attributes_list_header 0 9829 NULL
++e_section_count_f2fs_super_block_9832 section_count f2fs_super_block 0 9832 NULL
++e_sectors_r10bio_9834 sectors r10bio 0 9834 NULL
++e_msc_buffer_contig_alloc_fndecl_9835 msc_buffer_contig_alloc fndecl 2 9835 NULL
++e_msg_length_sms_msg_hdr_9842 msg_length sms_msg_hdr 0 9842 NULL
++e_snd_compr_get_avail_fndecl_9843 snd_compr_get_avail fndecl 0 9843 NULL
++e_complete_read_super_fndecl_9844 complete_read_super fndecl 3 9844 NULL
++e_pg_count_agp_allocate_9853 pg_count agp_allocate 0 9853 NULL
++e_get_wcaps_channels_fndecl_9854 get_wcaps_channels fndecl 0-1 9854 NULL
++e_data_size_virtio_gpu_vbuffer_9856 data_size virtio_gpu_vbuffer 0 9856 NULL
++e_vlan_id_rlb_client_info_9858 vlan_id rlb_client_info 0 9858 NULL
++e_read_fiforeg_fndecl_9859 read_fiforeg fndecl 2 9859 NULL
++e_videobuf_read_one_fndecl_9862 videobuf_read_one fndecl 3 9862 NULL
++e_get_img_height_s5p_mfc_hw_ops_9869 get_img_height s5p_mfc_hw_ops 0 9869 NULL
++e_memblock_virt_alloc_nopanic_fndecl_9874 memblock_virt_alloc_nopanic fndecl 2-1 9874 NULL
++e_xfs_seek_hole_data_fndecl_9883 xfs_seek_hole_data fndecl 2 9883 NULL
++e_is_double_byte_mode_fndecl_9886 is_double_byte_mode fndecl 0 9886 NULL
++e_v4l_nbufs_vardecl_9889 v4l_nbufs vardecl 0 9889 NULL
++e___lgread_fndecl_9895 __lgread fndecl 4 9895 NULL
++e_ovfx2_pkt_scan_fndecl_9901 ovfx2_pkt_scan fndecl 3 9901 NULL nohasharray
++e_begin_entry_alloc_9901 begin entry_alloc 0 9901 &e_ovfx2_pkt_scan_fndecl_9901
++e_nkeys_tc_u32_sel_9905 nkeys tc_u32_sel 0 9905 NULL
++e_legacy_count_vardecl_pty_c_9908 legacy_count vardecl_pty.c 0 9908 NULL
++e_prism54_wpa_bss_ie_add_fndecl_9910 prism54_wpa_bss_ie_add fndecl 4 9910 NULL
++e_stat_ddb_output_9913 stat ddb_output 0 9913 NULL
++e_ep_in_ksdazzle_cb_9917 ep_in ksdazzle_cb 0 9917 NULL
++e___ceph_do_getattr_fndecl_9918 __ceph_do_getattr fndecl 0 9918 NULL
++e_reiserfs_quota_read_fndecl_9923 reiserfs_quota_read fndecl 5 9923 NULL
++e_audit_log_n_string_fndecl_9930 audit_log_n_string fndecl 3 9930 NULL
++e_len_load_info_9931 len load_info 0 9931 NULL
++e_wb_pgbase_nfs_page_9940 wb_pgbase nfs_page 0 9940 NULL nohasharray
++e_object_name_len_ncp_objectname_ioctl_9940 object_name_len ncp_objectname_ioctl 0 9940 &e_wb_pgbase_nfs_page_9940
++e_client_set_fmt_fndecl_9946 client_set_fmt fndecl 5-4 9946 NULL
++e_buffer_len_bnad_debug_info_9948 buffer_len bnad_debug_info 0 9948 NULL
++e_error_dm_crypt_io_9949 error dm_crypt_io 0 9949 NULL
++e_ath6kl_wmi_send_probe_response_cmd_fndecl_9955 ath6kl_wmi_send_probe_response_cmd fndecl 2-6 9955 NULL
++e_utf16s_to_utf8s_fndecl_9956 utf16s_to_utf8s fndecl 0 9956 NULL
++e_build_request_ceph_auth_client_ops_9960 build_request ceph_auth_client_ops 0 9960 NULL
++e_xfs_difree_inobt_fndecl_9961 xfs_difree_inobt fndecl 4 9961 NULL
++e_rt2x00dev_extra_tx_headroom_fndecl_9971 rt2x00dev_extra_tx_headroom fndecl 0 9971 NULL
++e_reada_find_extent_fndecl_9973 reada_find_extent fndecl 2 9973 NULL
++e_count_tun_filter_9984 count tun_filter 0 9984 NULL
++e_start_extent_buffer_9986 start extent_buffer 0 9986 NULL
++e_hugepage_add_anon_rmap_fndecl_9989 hugepage_add_anon_rmap fndecl 3 9989 NULL
++e_dm_rh_region_to_sector_fndecl_9992 dm_rh_region_to_sector fndecl 0-2 9992 NULL
++e_sample_bits_twl4030_priv_10002 sample_bits twl4030_priv 0 10002 NULL
++e_rpcrdma_inline_fixup_fndecl_10007 rpcrdma_inline_fixup fndecl 3 10007 NULL
++e_cyy_readb_fndecl_10011 cyy_readb fndecl 0 10011 NULL
++e_setifbcnt_fndecl_10012 setifbcnt fndecl 3 10012 NULL
++e_tx_bytes_imx_port_10019 tx_bytes imx_port 0 10019 NULL
++e_nouveau_sgdma_create_ttm_fndecl_10022 nouveau_sgdma_create_ttm fndecl 2 10022 NULL nohasharray
++e_addr__nsp32_sgtable_10022 addr _nsp32_sgtable 0 10022 &e_nouveau_sgdma_create_ttm_fndecl_10022
++e_skb_append_datato_frags_fndecl_10028 skb_append_datato_frags fndecl 5 10028 NULL
++e_add_dataflash_otp_fndecl_10031 add_dataflash_otp fndecl 4-3 10031 NULL
++e___cookie_v6_check_fndecl_10035 __cookie_v6_check fndecl 0 10035 NULL
++e_get_img_width_s5p_mfc_hw_ops_10036 get_img_width s5p_mfc_hw_ops 0 10036 NULL
++e_mwifiex_send_tdls_action_frame_fndecl_10044 mwifiex_send_tdls_action_frame fndecl 7 10044 NULL
++e_sisusbcon_scroll_fndecl_10048 sisusbcon_scroll fndecl 5-2-3 10048 NULL
++e_send_buf_size_netvsc_device_10051 send_buf_size netvsc_device 0 10051 NULL
++e_ath6kl_wmi_powermode_cmd_fndecl_10052 ath6kl_wmi_powermode_cmd fndecl 2 10052 NULL
++e_usbat_write_blocks_fndecl_10053 usbat_write_blocks fndecl 3-4 10053 NULL nohasharray
++e_command_file_write_fndecl_10053 command_file_write fndecl 3 10053 &e_usbat_write_blocks_fndecl_10053
++e_musb_urb_dequeue_fndecl_10056 musb_urb_dequeue fndecl 3 10056 NULL
++e_dm_bufio_prefetch_fndecl_10057 dm_bufio_prefetch fndecl 2 10057 NULL
++e_bio_detain_range_fndecl_10064 bio_detain_range fndecl 2-3 10064 NULL
++e_rx_buf_sz_sis190_private_10068 rx_buf_sz sis190_private 0 10068 NULL
++e_max_pages_fuse_req_10069 max_pages fuse_req 0 10069 NULL
++e_ocfs2_refcount_xattr_tree_rec_fndecl_10077 ocfs2_refcount_xattr_tree_rec fndecl 3 10077 NULL
++e_nbr_fingers_rmi_2d_sensor_10079 nbr_fingers rmi_2d_sensor 0 10079 NULL
++e_height_virtio_gpu_rect_10085 height virtio_gpu_rect 0 10085 NULL
++e_ssb_admatch_base_fndecl_10086 ssb_admatch_base fndecl 0-1 10086 NULL
++e___send_changing_extent_only_fndecl_10090 __send_changing_extent_only fndecl 0 10090 NULL
++e_pskb_extract_fndecl_10092 pskb_extract fndecl 2-3 10092 NULL
++e_outlen_write_fndecl_10093 outlen_write fndecl 3 10093 NULL
++e_em28xx_init_usb_xfer_fndecl_10106 em28xx_init_usb_xfer fndecl 5-6 10106 NULL
++e_radix_tree_insert_fndecl_10107 radix_tree_insert fndecl 0 10107 NULL
++e_req_sz__MPT_ADAPTER_10113 req_sz _MPT_ADAPTER 0 10113 NULL
++e_total_len_extlog_l1_head_10117 total_len extlog_l1_head 0 10117 NULL nohasharray
++e_uvc_video_encode_data_fndecl_10117 uvc_video_encode_data fndecl 0-4 10117 &e_total_len_extlog_l1_head_10117
++e_pxa2xx_spi_get_port_id_fndecl_10119 pxa2xx_spi_get_port_id fndecl 0 10119 NULL
++e_len_pda_entry_10121 len pda_entry 0 10121 NULL
++e_MaxBlocksPerCommand_DAC960_Controller_10124 MaxBlocksPerCommand DAC960_Controller 0 10124 NULL nohasharray
++e_data_dma_usbtouch_usb_10124 data_dma usbtouch_usb 0 10124 &e_MaxBlocksPerCommand_DAC960_Controller_10124
++e_parent_overlap_rbd_device_10127 parent_overlap rbd_device 0 10127 NULL
++e_max_bu_buf_len_ubifs_i