summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2013-11-26 09:16:39 -0500
committerAnthony G. Basile <blueness@gentoo.org>2013-11-26 09:16:39 -0500
commit39a2ebd30d8a7f6c5fe2878aa6ea32fe06bfd181 (patch)
treebc95307095f65344e261cfb52d50418909c30301
parentGrsec/PaX: 3.0-{3.2.52,3.11.9}-201311242031 (diff)
downloadhardened-patchset-39a2ebd30d8a7f6c5fe2878aa6ea32fe06bfd181.tar.gz
hardened-patchset-39a2ebd30d8a7f6c5fe2878aa6ea32fe06bfd181.tar.bz2
hardened-patchset-39a2ebd30d8a7f6c5fe2878aa6ea32fe06bfd181.zip
Grsec/PaX: 3.0-3.12.1-201311252310
-rw-r--r--3.12.1/0000_README (renamed from 3.11.9/0000_README)2
-rw-r--r--3.12.1/4420_grsecurity-3.0-3.12.1-201311252310.patch (renamed from 3.11.9/4420_grsecurity-3.0-3.11.9-201311242034.patch)18884
-rw-r--r--3.12.1/4425_grsec_remove_EI_PAX.patch (renamed from 3.11.9/4425_grsec_remove_EI_PAX.patch)0
-rw-r--r--3.12.1/4427_force_XATTR_PAX_tmpfs.patch (renamed from 3.11.9/4427_force_XATTR_PAX_tmpfs.patch)0
-rw-r--r--3.12.1/4430_grsec-remove-localversion-grsec.patch (renamed from 3.11.9/4430_grsec-remove-localversion-grsec.patch)0
-rw-r--r--3.12.1/4435_grsec-mute-warnings.patch (renamed from 3.11.9/4435_grsec-mute-warnings.patch)0
-rw-r--r--3.12.1/4440_grsec-remove-protected-paths.patch (renamed from 3.11.9/4440_grsec-remove-protected-paths.patch)0
-rw-r--r--3.12.1/4450_grsec-kconfig-default-gids.patch (renamed from 3.11.9/4450_grsec-kconfig-default-gids.patch)0
-rw-r--r--3.12.1/4465_selinux-avc_audit-log-curr_ip.patch (renamed from 3.11.9/4465_selinux-avc_audit-log-curr_ip.patch)0
-rw-r--r--3.12.1/4470_disable-compat_vdso.patch (renamed from 3.11.9/4470_disable-compat_vdso.patch)0
-rw-r--r--3.12.1/4475_emutramp_default_on.patch (renamed from 3.11.9/4475_emutramp_default_on.patch)0
-rw-r--r--3.2.52/0000_README2
-rw-r--r--3.2.52/4420_grsecurity-3.0-3.2.52-201311242031.patch115411
13 files changed, 10998 insertions, 123301 deletions
diff --git a/3.11.9/0000_README b/3.12.1/0000_README
index 2d88c58..0f326f8 100644
--- a/3.11.9/0000_README
+++ b/3.12.1/0000_README
@@ -2,7 +2,7 @@ README
-----------------------------------------------------------------------------
Individual Patch Descriptions:
-----------------------------------------------------------------------------
-Patch: 4420_grsecurity-3.0-3.11.9-201311242034.patch
+Patch: 4420_grsecurity-3.0-3.12.1-201311252310.patch
From: http://www.grsecurity.net
Desc: hardened-sources base patch from upstream grsecurity
diff --git a/3.11.9/4420_grsecurity-3.0-3.11.9-201311242034.patch b/3.12.1/4420_grsecurity-3.0-3.12.1-201311252310.patch
index e9cd387..1088576 100644
--- a/3.11.9/4420_grsecurity-3.0-3.11.9-201311242034.patch
+++ b/3.12.1/4420_grsecurity-3.0-3.12.1-201311252310.patch
@@ -229,10 +229,10 @@ index b89a739..79768fb 100644
+zconf.lex.c
zoffset.h
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
-index 7f9d4f5..6d1afd6 100644
+index fcbb736..5508d8c 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
-@@ -976,6 +976,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -1031,6 +1031,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
Default: 1024
@@ -243,7 +243,7 @@ index 7f9d4f5..6d1afd6 100644
hashdist= [KNL,NUMA] Large hashes allocated during boot
are distributed across NUMA nodes. Defaults on
for 64-bit NUMA, off otherwise.
-@@ -1932,6 +1936,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -1999,6 +2003,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
noexec=on: enable non-executable mappings (default)
noexec=off: disable non-executable mappings
@@ -254,7 +254,7 @@ index 7f9d4f5..6d1afd6 100644
nosmap [X86]
Disable SMAP (Supervisor Mode Access Prevention)
even if it is supported by processor.
-@@ -2199,6 +2207,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2266,6 +2274,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
the specified number of seconds. This is to be used if
your oopses keep scrolling off the screen.
@@ -281,7 +281,7 @@ index 7f9d4f5..6d1afd6 100644
pcd. [PARIDE]
diff --git a/Makefile b/Makefile
-index 06379bd..abdd9a8 100644
+index eb29ec7..876409e 100644
--- a/Makefile
+++ b/Makefile
@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -399,8 +399,8 @@ index 06379bd..abdd9a8 100644
+$(vmlinux-dirs): gcc-plugins prepare scripts
$(Q)$(MAKE) $(build)=$@
- # Store (new) KERNELRELEASE string in include/config/kernel.release
-@@ -835,6 +897,7 @@ prepare0: archprepare FORCE
+ define filechk_kernel.release
+@@ -838,6 +900,7 @@ prepare0: archprepare FORCE
$(Q)$(MAKE) $(build)=.
# All the preparing..
@@ -408,7 +408,7 @@ index 06379bd..abdd9a8 100644
prepare: prepare0
# Generate some files
-@@ -942,6 +1005,8 @@ all: modules
+@@ -945,6 +1008,8 @@ all: modules
# using awk while concatenating to the final file.
PHONY += modules
@@ -417,7 +417,7 @@ index 06379bd..abdd9a8 100644
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
@$(kecho) ' Building modules, stage 2.';
-@@ -957,7 +1022,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
+@@ -960,7 +1025,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
# Target to prepare building external modules
PHONY += modules_prepare
@@ -426,7 +426,7 @@ index 06379bd..abdd9a8 100644
# Target to install modules
PHONY += modules_install
-@@ -1023,7 +1088,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
+@@ -1026,7 +1091,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
signing_key.priv signing_key.x509 x509.genkey \
extra_certificates signing_key.x509.keyid \
@@ -435,7 +435,7 @@ index 06379bd..abdd9a8 100644
# clean - Delete most, but leave enough to build external modules
#
-@@ -1063,6 +1128,7 @@ distclean: mrproper
+@@ -1066,6 +1131,7 @@ distclean: mrproper
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' \
@@ -443,7 +443,7 @@ index 06379bd..abdd9a8 100644
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
-type f -print | xargs rm -f
-@@ -1224,6 +1290,8 @@ PHONY += $(module-dirs) modules
+@@ -1227,6 +1293,8 @@ PHONY += $(module-dirs) modules
$(module-dirs): crmodverdir $(objtree)/Module.symvers
$(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
@@ -452,7 +452,7 @@ index 06379bd..abdd9a8 100644
modules: $(module-dirs)
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1363,17 +1431,21 @@ else
+@@ -1366,17 +1434,21 @@ else
target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
endif
@@ -478,7 +478,7 @@ index 06379bd..abdd9a8 100644
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
%.symtypes: %.c prepare scripts FORCE
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
-@@ -1383,11 +1455,15 @@ endif
+@@ -1386,11 +1458,15 @@ endif
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
@@ -669,7 +669,7 @@ index 1402fcc..0b1abd2 100644
return addr;
}
diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
-index 0c4132d..88f0d53 100644
+index 98838a0..b304fb4 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -53,6 +53,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
@@ -829,10 +829,10 @@ index 0c4132d..88f0d53 100644
/* Allow reads even for write-only mappings */
if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 43594d5..da71e62 100644
+index 1ad6fb6..4e7fae5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -1791,7 +1791,7 @@ config ALIGNMENT_TRAP
+@@ -1832,7 +1832,7 @@ config ALIGNMENT_TRAP
config UACCESS_WITH_MEMCPY
bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
@@ -1530,7 +1530,7 @@ index 75fe66b..ba3dee4 100644
#endif
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
-index 17d0ae8..014e350 100644
+index 15f2d5b..43ffa53 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -116,7 +116,7 @@ struct cpu_cache_fns {
@@ -1642,10 +1642,10 @@ index 6ddbe44..b5e38b1 100644
static inline void set_domain(unsigned val) { }
static inline void modify_domain(unsigned dom, unsigned type) { }
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
-index 56211f2..17e8a25 100644
+index f4b46d3..abc9b2b 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
-@@ -116,7 +116,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
+@@ -114,7 +114,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
the loader. We need to make sure that it is out of the way of the program
that it will "exec", and that there is sufficient room for the brk. */
@@ -1661,7 +1661,7 @@ index 56211f2..17e8a25 100644
/* When the program starts, a1 contains a pointer to a function to be
registered with atexit, as per the SVR4 ABI. A value of 0 means we
-@@ -126,10 +133,6 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
+@@ -124,10 +131,6 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
extern void elf_set_personality(const struct elf32_hdr *);
#define SET_PERSONALITY(ex) elf_set_personality(&(ex))
@@ -1791,7 +1791,7 @@ index 2fe141f..192dc01 100644
#ifdef CONFIG_MMU
extern void iotable_init(struct map_desc *, int);
diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
-index 12f71a1..04e063c 100644
+index f94784f..41c7f61 100644
--- a/arch/arm/include/asm/outercache.h
+++ b/arch/arm/include/asm/outercache.h
@@ -35,7 +35,7 @@ struct outer_cache_fns {
@@ -1799,9 +1799,9 @@ index 12f71a1..04e063c 100644
void (*set_debug)(unsigned long);
void (*resume)(void);
-};
-+} __no_const;
++} __do_const;
- #ifdef CONFIG_OUTER_CACHE
+ extern struct outer_cache_fns outer_cache;
diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
index 4355f0e..c229913 100644
@@ -1960,7 +1960,7 @@ index 5689c18..eea12f9 100644
#define L_PTE_DIRTY_HIGH (1 << (55 - 32))
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
-index 04aeb02..73b70dd 100644
+index be956db..c8f25e2 100644
--- a/arch/arm/include/asm/pgtable.h
+++ b/arch/arm/include/asm/pgtable.h
@@ -33,6 +33,9 @@
@@ -2092,10 +2092,10 @@ index a8cae71c..65dd797 100644
/*
* set platform specific SMP operations
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
-index 2b8114f..8fe9bcf 100644
+index df5e13d..97efb82 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
-@@ -77,9 +77,9 @@ struct thread_info {
+@@ -88,9 +88,9 @@ struct thread_info {
.flags = 0, \
.preempt_count = INIT_PREEMPT_COUNT, \
.addr_limit = KERNEL_DS, \
@@ -2108,7 +2108,7 @@ index 2b8114f..8fe9bcf 100644
.restart_block = { \
.fn = do_no_restart_syscall, \
}, \
-@@ -152,7 +152,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+@@ -163,7 +163,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
#define TIF_SYSCALL_AUDIT 9
#define TIF_SYSCALL_TRACEPOINT 10
#define TIF_SECCOMP 11 /* seccomp syscall filtering active */
@@ -2121,7 +2121,7 @@ index 2b8114f..8fe9bcf 100644
#define TIF_USING_IWMMXT 17
#define TIF_MEMDIE 18 /* is terminating due to OOM killer */
#define TIF_RESTORE_SIGMASK 20
-@@ -165,10 +169,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
+@@ -176,10 +180,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
#define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
#define _TIF_SECCOMP (1 << TIF_SECCOMP)
#define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
@@ -2135,7 +2135,7 @@ index 2b8114f..8fe9bcf 100644
/*
* Change these and you break ASM code in entry-common.S
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
-index 7e1f760..de33b13 100644
+index 72abdc5..9eba222 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -18,6 +18,7 @@
@@ -2144,9 +2144,9 @@ index 7e1f760..de33b13 100644
#include <asm/compiler.h>
+#include <asm/pgtable.h>
- #define VERIFY_READ 0
- #define VERIFY_WRITE 1
-@@ -63,11 +64,38 @@ extern int __put_user_bad(void);
+ #if __LINUX_ARM_ARCH__ < 6
+ #include <asm-generic/uaccess-unaligned.h>
+@@ -70,11 +71,38 @@ extern int __put_user_bad(void);
static inline void set_fs(mm_segment_t fs)
{
current_thread_info()->addr_limit = fs;
@@ -2186,7 +2186,7 @@ index 7e1f760..de33b13 100644
#define __addr_ok(addr) ({ \
unsigned long flag; \
__asm__("cmp %2, %0; movlo %0, #0" \
-@@ -143,8 +171,12 @@ extern int __get_user_4(void *);
+@@ -150,8 +178,12 @@ extern int __get_user_4(void *);
#define get_user(x,p) \
({ \
@@ -2200,7 +2200,7 @@ index 7e1f760..de33b13 100644
})
extern int __put_user_1(void *, unsigned int);
-@@ -188,8 +220,12 @@ extern int __put_user_8(void *, unsigned long long);
+@@ -195,8 +227,12 @@ extern int __put_user_8(void *, unsigned long long);
#define put_user(x,p) \
({ \
@@ -2214,7 +2214,7 @@ index 7e1f760..de33b13 100644
})
#else /* CONFIG_MMU */
-@@ -230,13 +266,17 @@ static inline void set_fs(mm_segment_t fs)
+@@ -237,13 +273,17 @@ static inline void set_fs(mm_segment_t fs)
#define __get_user(x,ptr) \
({ \
long __gu_err = 0; \
@@ -2232,7 +2232,7 @@ index 7e1f760..de33b13 100644
(void) 0; \
})
-@@ -312,13 +352,17 @@ do { \
+@@ -319,13 +359,17 @@ do { \
#define __put_user(x,ptr) \
({ \
long __pu_err = 0; \
@@ -2250,7 +2250,7 @@ index 7e1f760..de33b13 100644
(void) 0; \
})
-@@ -418,11 +462,44 @@ do { \
+@@ -425,11 +469,44 @@ do { \
#ifdef CONFIG_MMU
@@ -2298,7 +2298,7 @@ index 7e1f760..de33b13 100644
#else
#define __copy_from_user(to,from,n) (memcpy(to, (void __force *)from, n), 0)
#define __copy_to_user(to,from,n) (memcpy((void __force *)to, from, n), 0)
-@@ -431,6 +508,9 @@ extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned l
+@@ -438,6 +515,9 @@ extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned l
static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
{
@@ -2308,7 +2308,7 @@ index 7e1f760..de33b13 100644
if (access_ok(VERIFY_READ, from, n))
n = __copy_from_user(to, from, n);
else /* security hole - plug it */
-@@ -440,6 +520,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
+@@ -447,6 +527,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
{
@@ -2554,7 +2554,7 @@ index 9cbe70c..a7b5e34 100644
#endif
mov r5, r0
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
-index 94104bf..e425391 100644
+index bc6bd96..bd026cb 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -10,18 +10,46 @@
@@ -2621,7 +2621,7 @@ index 94104bf..e425391 100644
#if defined(CONFIG_OABI_COMPAT)
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
-index de23a9b..94c37c4 100644
+index 39f89fb..d612bd9 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -184,6 +184,60 @@
@@ -2721,7 +2721,7 @@ index 918875d..cd5fa27 100644
flush_icache_range((unsigned long)base + offset, offset +
length);
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
-index 2c7cc1e..ab2e911 100644
+index 476de57..4857a76 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -52,7 +52,9 @@
@@ -2745,7 +2745,7 @@ index 2c7cc1e..ab2e911 100644
mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
#endif
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
-index 85c3fb6..054c2dc 100644
+index 084dc88..fce4e68 100644
--- a/arch/arm/kernel/module.c
+++ b/arch/arm/kernel/module.c
@@ -37,12 +37,39 @@
@@ -2947,7 +2947,7 @@ index 0dd3b79..e018f64 100644
if (secure_computing(scno) == -1)
return -1;
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
-index afc2489..6372bc8 100644
+index 0e1e2b3..c0e821d 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -98,21 +98,23 @@ EXPORT_SYMBOL(system_serial_high);
@@ -3062,10 +3062,10 @@ index ab33042..11248a8 100644
- return page;
-}
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
-index 2dc1934..ecf0e21 100644
+index 72024ea..ae302dd 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
-@@ -71,7 +71,7 @@ enum ipi_msg_type {
+@@ -70,7 +70,7 @@ enum ipi_msg_type {
static DECLARE_COMPLETION(cpu_running);
@@ -3075,7 +3075,7 @@ index 2dc1934..ecf0e21 100644
void __init smp_set_ops(struct smp_operations *ops)
{
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index ab517fc..9adf2fa 100644
+index 8fcda14..4512b9d 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -55,7 +55,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
@@ -3106,7 +3106,7 @@ index ab517fc..9adf2fa 100644
if (signr)
do_exit(signr);
}
-@@ -592,7 +597,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
+@@ -628,7 +633,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
* The user helper at 0xffff0fe0 must be used instead.
* (see entry-armv.S for details)
*/
@@ -3116,7 +3116,7 @@ index ab517fc..9adf2fa 100644
}
return 0;
-@@ -849,7 +856,11 @@ void __init early_trap_init(void *vectors_base)
+@@ -885,7 +892,11 @@ void __init early_trap_init(void *vectors_base)
kuser_init(vectors_base);
flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
@@ -3200,7 +3200,7 @@ index 7bcee5c..e2f3249 100644
__data_loc = .;
#endif
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
-index 741f66a..8a5615c 100644
+index 9c697db..115237f 100644
--- a/arch/arm/kvm/arm.c
+++ b/arch/arm/kvm/arm.c
@@ -56,7 +56,7 @@ static unsigned long hyp_default_vectors;
@@ -3212,7 +3212,7 @@ index 741f66a..8a5615c 100644
static u8 kvm_next_vmid;
static DEFINE_SPINLOCK(kvm_vmid_lock);
-@@ -392,7 +392,7 @@ void force_vm_exit(const cpumask_t *mask)
+@@ -396,7 +396,7 @@ void force_vm_exit(const cpumask_t *mask)
*/
static bool need_new_vmid_gen(struct kvm *kvm)
{
@@ -3221,7 +3221,7 @@ index 741f66a..8a5615c 100644
}
/**
-@@ -425,7 +425,7 @@ static void update_vttbr(struct kvm *kvm)
+@@ -429,7 +429,7 @@ static void update_vttbr(struct kvm *kvm)
/* First user of a new VMID generation? */
if (unlikely(kvm_next_vmid == 0)) {
@@ -3230,7 +3230,7 @@ index 741f66a..8a5615c 100644
kvm_next_vmid = 1;
/*
-@@ -442,7 +442,7 @@ static void update_vttbr(struct kvm *kvm)
+@@ -446,7 +446,7 @@ static void update_vttbr(struct kvm *kvm)
kvm_call_hyp(__kvm_flush_vm_context);
}
@@ -3386,10 +3386,10 @@ index 025f742..a9e5b3b 100644
/* See rational for this in __copy_to_user() above. */
if (n < 64)
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
-index e9238b5..6ed904a 100644
+index 1767611..d2e7e24 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
-@@ -150,7 +150,16 @@ static void clk_gate_fn_disable(struct clk_hw *hw)
+@@ -156,7 +156,16 @@ static void clk_gate_fn_disable(struct clk_hw *hw)
clk_gate_ops.disable(hw);
}
@@ -3407,7 +3407,7 @@ index e9238b5..6ed904a 100644
static struct clk __init *clk_register_gate_fn(struct device *dev,
const char *name,
-@@ -184,14 +193,6 @@ static struct clk __init *clk_register_gate_fn(struct device *dev,
+@@ -190,14 +199,6 @@ static struct clk __init *clk_register_gate_fn(struct device *dev,
gate_fn->fn_en = fn_en;
gate_fn->fn_dis = fn_dis;
@@ -3436,7 +3436,7 @@ index 827d1500..2885dc6 100644
};
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
-index f3fdd6a..3564800 100644
+index 579697a..1d5a3b2 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -148,7 +148,6 @@ struct omap3_gpmc_regs {
@@ -3444,7 +3444,7 @@ index f3fdd6a..3564800 100644
static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
-static struct irq_chip gpmc_irq_chip;
- static unsigned gpmc_irq_start;
+ static int gpmc_irq_start;
static struct resource gpmc_mem_root;
@@ -716,6 +715,18 @@ static void gpmc_irq_noop(struct irq_data *data) { }
@@ -3518,7 +3518,7 @@ index 813c615..ce467c6 100644
};
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
-index f99f68e..e573e20 100644
+index b69dd9a..70e5409 100644
--- a/arch/arm/mach-omap2/omap_device.c
+++ b/arch/arm/mach-omap2/omap_device.c
@@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
@@ -3559,7 +3559,7 @@ index 17ca1ae..beba869 100644
struct omap_device *omap_device_alloc(struct platform_device *pdev,
struct omap_hwmod **ohs, int oh_cnt);
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 7f4db12..0243012 100644
+index d9ee0ff..24f224a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -194,10 +194,10 @@ struct omap_hwmod_soc_ops {
@@ -3600,7 +3600,7 @@ index d15c7bb..b2d1f0c 100644
sizeof(struct omap_wd_timer_platform_data));
WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
-index 706aa42..f85e9131 100644
+index b82dcae..44ee5b6 100644
--- a/arch/arm/mach-tegra/cpuidle-tegra20.c
+++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
@@ -180,7 +180,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
@@ -3613,10 +3613,10 @@ index 706aa42..f85e9131 100644
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h
-index cad3ca86..1d79e0f 100644
+index 656324a..0beba28 100644
--- a/arch/arm/mach-ux500/setup.h
+++ b/arch/arm/mach-ux500/setup.h
-@@ -37,13 +37,6 @@ extern void ux500_timer_init(void);
+@@ -40,13 +40,6 @@ extern void ux500_timer_init(void);
.type = MT_DEVICE, \
}
@@ -3734,7 +3734,7 @@ index 6f4585b..7b6f52b 100644
goto fault; \
} while (0)
diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
-index 4a05444..d21968c 100644
+index 84e6f77..0b52f31 100644
--- a/arch/arm/mm/context.c
+++ b/arch/arm/mm/context.c
@@ -43,7 +43,7 @@
@@ -3746,7 +3746,7 @@ index 4a05444..d21968c 100644
static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS);
static DEFINE_PER_CPU(atomic64_t, active_asids);
-@@ -183,7 +183,7 @@ static int is_reserved_asid(u64 asid)
+@@ -180,7 +180,7 @@ static int is_reserved_asid(u64 asid)
static u64 new_context(struct mm_struct *mm, unsigned int cpu)
{
u64 asid = atomic64_read(&mm->context.id);
@@ -3755,7 +3755,7 @@ index 4a05444..d21968c 100644
if (asid != 0 && is_reserved_asid(asid)) {
/*
-@@ -201,7 +201,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
+@@ -198,7 +198,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
*/
asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1);
if (asid == NUM_USER_ASIDS) {
@@ -3764,7 +3764,7 @@ index 4a05444..d21968c 100644
&asid_generation);
flush_context(cpu);
asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1);
-@@ -230,14 +230,14 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
+@@ -227,14 +227,14 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
cpu_set_reserved_ttbr0();
asid = atomic64_read(&mm->context.id);
@@ -3782,7 +3782,7 @@ index 4a05444..d21968c 100644
atomic64_set(&mm->context.id, asid);
}
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
-index c97f794..3e603c4 100644
+index eb8830a..5360ce7 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -25,6 +25,7 @@
@@ -3839,7 +3839,7 @@ index c97f794..3e603c4 100644
tsk->thread.address = addr;
tsk->thread.error_code = fsr;
tsk->thread.trap_no = 14;
-@@ -398,6 +431,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+@@ -401,6 +434,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
}
#endif /* CONFIG_MMU */
@@ -3873,7 +3873,7 @@ index c97f794..3e603c4 100644
/*
* First Level Translation Fault Handler
*
-@@ -545,9 +605,22 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
+@@ -548,9 +608,22 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
struct siginfo info;
@@ -3896,7 +3896,7 @@ index c97f794..3e603c4 100644
printk(KERN_ALERT "Unhandled fault: %s (0x%03x) at 0x%08lx\n",
inf->name, fsr, addr);
-@@ -571,15 +644,92 @@ hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *
+@@ -574,15 +647,98 @@ hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *
ifsr_info[nr].name = name;
}
@@ -3941,6 +3941,12 @@ index c97f794..3e603c4 100644
+ * PaX: __kuser_cmpxchg emulation
+ */
+ // TODO
++ //long new;
++ //int op;
++
++ //op = FUTEX_OP_SET << 28;
++ //new = futex_atomic_op_inuser(op, regs->ARM_r2);
++ //regs->ARM_r0 = old != new;
+ //regs->ARM_pc = regs->ARM_lr;
+ //return;
+ }
@@ -4020,7 +4026,7 @@ index cf08bdf..772656c 100644
unsigned long search_exception_table(unsigned long addr);
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
-index 15225d8..25e2e3c 100644
+index 18ec4c5..479bb6a 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -30,6 +30,8 @@
@@ -4032,7 +4038,7 @@ index 15225d8..25e2e3c 100644
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
-@@ -683,7 +685,46 @@ void free_initmem(void)
+@@ -684,7 +686,46 @@ void free_initmem(void)
{
#ifdef CONFIG_HAVE_TCM
extern char __tcm_start, __tcm_end;
@@ -4207,7 +4213,7 @@ index 0c63562..7128a90 100644
}
}
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
-index 53cdbd3..670f177 100644
+index b1d17ee..7a6f4d3 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -36,6 +36,22 @@
@@ -4477,7 +4483,7 @@ index 53cdbd3..670f177 100644
+
+static char vectors[PAGE_SIZE * 2] __read_only __aligned(PAGE_SIZE);
+
- static void __init devicemaps_init(struct machine_desc *mdesc)
+ static void __init devicemaps_init(const struct machine_desc *mdesc)
{
struct map_desc map;
unsigned long addr;
@@ -4493,7 +4499,7 @@ index 53cdbd3..670f177 100644
for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
pmd_clear(pmd_off_k(addr));
-@@ -1237,7 +1323,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
+@@ -1237,7 +1323,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
* location (0xffff0000). If we aren't using high-vectors, also
* create a mapping at the low-vectors virtual address.
*/
@@ -4622,7 +4628,7 @@ index 479330b..53717a8 100644
#endif /* __ASM_AVR32_KMAP_TYPES_H */
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
-index b2f2d2d..d1c85cb 100644
+index 0eca933..eb78c7b 100644
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -41,6 +41,23 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
@@ -4649,7 +4655,7 @@ index b2f2d2d..d1c85cb 100644
/*
* This routine handles page faults. It determines the address and the
* problem, and then passes it off to one of the appropriate routines.
-@@ -174,6 +191,16 @@ bad_area:
+@@ -176,6 +193,16 @@ bad_area:
up_read(&mm->mmap_sem);
if (user_mode(regs)) {
@@ -4940,7 +4946,7 @@ index 7935115..c0eca6a 100644
#define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
#define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
-index 54ff557..70c88b7 100644
+index 45698cd..e8e2dbc 100644
--- a/arch/ia64/include/asm/spinlock.h
+++ b/arch/ia64/include/asm/spinlock.h
@@ -71,7 +71,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
@@ -5167,7 +5173,7 @@ index 0ccb28f..8992469 100644
* ensure percpu data fits
* into percpu page size
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
-index 6cf0341..d352594 100644
+index 7225dad..2a7c8256 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned long address)
@@ -5194,7 +5200,7 @@ index 6cf0341..d352594 100644
# define VM_READ_BIT 0
# define VM_WRITE_BIT 1
# define VM_EXEC_BIT 2
-@@ -149,8 +166,21 @@ retry:
+@@ -151,8 +168,21 @@ retry:
if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
goto bad_area;
@@ -5218,10 +5224,10 @@ index 6cf0341..d352594 100644
/*
* If for any reason at all we couldn't handle the fault, make
diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c
-index 76069c1..c2aa816 100644
+index 68232db..6ca80af 100644
--- a/arch/ia64/mm/hugetlbpage.c
+++ b/arch/ia64/mm/hugetlbpage.c
-@@ -149,6 +149,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
+@@ -154,6 +154,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
unsigned long pgoff, unsigned long flags)
{
struct vm_unmapped_area_info info;
@@ -5229,7 +5235,7 @@ index 76069c1..c2aa816 100644
if (len > RGN_MAP_LIMIT)
return -ENOMEM;
-@@ -172,6 +173,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
+@@ -177,6 +178,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
info.high_limit = HPAGE_REGION_BASE + RGN_MAP_LIMIT;
info.align_mask = PAGE_MASK & (HPAGE_SIZE - 1);
info.align_offset = 0;
@@ -5319,10 +5325,10 @@ index 0395c51..5f26031 100644
#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
diff --git a/arch/metag/mm/hugetlbpage.c b/arch/metag/mm/hugetlbpage.c
-index 3c52fa6..11b2ad8 100644
+index 0424315..defcca9 100644
--- a/arch/metag/mm/hugetlbpage.c
+++ b/arch/metag/mm/hugetlbpage.c
-@@ -200,6 +200,7 @@ hugetlb_get_unmapped_area_new_pmd(unsigned long len)
+@@ -205,6 +205,7 @@ hugetlb_get_unmapped_area_new_pmd(unsigned long len)
info.high_limit = TASK_SIZE;
info.align_mask = PAGE_MASK & HUGEPT_MASK;
info.align_offset = 0;
@@ -6701,10 +6707,10 @@ index 84536bf..79caa4d 100644
}
/* Arrange for an interrupt in a short while */
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
-index aec3408..74d79d3 100644
+index 524841f..3eef41e 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
-@@ -683,7 +683,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
+@@ -684,7 +684,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
siginfo_t info;
prev_state = exception_enter();
@@ -6725,7 +6731,7 @@ index aec3408..74d79d3 100644
info.si_code = FPE_INTOVF;
info.si_signo = SIGFPE;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
-index 85df1cd..4f0a4de 100644
+index becc42b..9e43d4b 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -28,6 +28,23 @@
@@ -6752,7 +6758,7 @@ index 85df1cd..4f0a4de 100644
/*
* This routine handles page faults. It determines the address,
* and the problem, and then passes it off to one of the appropriate
-@@ -197,6 +214,14 @@ bad_area:
+@@ -199,6 +216,14 @@ bad_area:
bad_area_nosemaphore:
/* User mode accesses just cause a SIGSEGV */
if (user_mode(regs)) {
@@ -7265,10 +7271,10 @@ index 5dfd248..64914ac 100644
return addr;
}
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
-index b3f87a3..5d5d03d 100644
+index 1cd1d0c..44ec918 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
-@@ -727,9 +727,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
+@@ -722,9 +722,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
down_read(&current->mm->mmap_sem);
vma = find_vma(current->mm,regs->iaoq[0]);
@@ -7280,7 +7286,7 @@ index b3f87a3..5d5d03d 100644
fault_space = regs->iasq[0];
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
-index f247a34..dc0f219 100644
+index 0293588..3b229aa 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -15,6 +15,7 @@
@@ -7417,9 +7423,9 @@ index f247a34..dc0f219 100644
int fixup_exception(struct pt_regs *regs)
{
const struct exception_table_entry *fix;
-@@ -194,8 +305,33 @@ good_area:
+@@ -204,8 +315,33 @@ retry:
- acc_type = parisc_acctyp(code,regs->iir);
+ good_area:
- if ((vma->vm_flags & acc_type) != acc_type)
+ if ((vma->vm_flags & acc_type) != acc_type) {
@@ -7677,7 +7683,7 @@ index 4aad413..85d86bf 100644
#define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
#define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
-index 99222e2..f629aef 100644
+index 10d1ef0..8f83abc 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -234,6 +234,7 @@
@@ -7689,7 +7695,7 @@ index 99222e2..f629aef 100644
#define DSISR_ISSTORE 0x02000000 /* access was a store */
#define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
-index 48cfc85..891382f 100644
+index 98da78e..dc68271 100644
--- a/arch/powerpc/include/asm/smp.h
+++ b/arch/powerpc/include/asm/smp.h
@@ -50,7 +50,7 @@ struct smp_ops_t {
@@ -7908,7 +7914,7 @@ index 9485b43..4718d50 100644
static inline unsigned long clear_user(void __user *addr, unsigned long size)
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
-index 645170a..6cf0271 100644
+index 2d06704..1616f1b 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -757,6 +757,7 @@ storage_fault_common:
@@ -7930,10 +7936,10 @@ index 645170a..6cf0271 100644
ld r4,_DAR(r1)
bl .bad_page_fault
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
-index 902ca3c..e942155 100644
+index 3a9ed6a..b534681 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
-@@ -1357,10 +1357,10 @@ handle_page_fault:
+@@ -1364,10 +1364,10 @@ handle_page_fault:
11: ld r4,_DAR(r1)
ld r5,_DSISR(r1)
addi r3,r1,STACK_FRAME_OVERHEAD
@@ -7979,10 +7985,10 @@ index 2e3200c..72095ce 100644
/* Find this entry, or if that fails, the next avail. entry */
while (entry->jump[0]) {
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
-index 8083be2..10aa352 100644
+index 96d2fdf..f6d10c8 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
-@@ -884,8 +884,8 @@ void show_regs(struct pt_regs * regs)
+@@ -886,8 +886,8 @@ void show_regs(struct pt_regs * regs)
* Lookup NIP late so we have the best change of getting the
* above info out without failing
*/
@@ -7993,7 +7999,7 @@ index 8083be2..10aa352 100644
#endif
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
printk("PACATMSCRATCH [%llx]\n", get_paca()->tm_scratch);
-@@ -1349,10 +1349,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1352,10 +1352,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
newsp = stack[0];
ip = stack[STACK_FRAME_LR_SAVE];
if (!firstframe || ip != lr) {
@@ -8006,7 +8012,7 @@ index 8083be2..10aa352 100644
(void *)current->ret_stack[curr_frame].ret);
curr_frame--;
}
-@@ -1372,7 +1372,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
+@@ -1375,7 +1375,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
struct pt_regs *regs = (struct pt_regs *)
(sp + STACK_FRAME_OVERHEAD);
lr = regs->link;
@@ -8015,7 +8021,7 @@ index 8083be2..10aa352 100644
regs->trap, (void *)regs->nip, (void *)lr);
firstframe = 1;
}
-@@ -1408,58 +1408,3 @@ void notrace __ppc64_runlatch_off(void)
+@@ -1411,58 +1411,3 @@ void notrace __ppc64_runlatch_off(void)
mtspr(SPRN_CTRLT, ctrl);
}
#endif /* CONFIG_PPC64 */
@@ -8114,10 +8120,10 @@ index 9a0d24c..e7fbedf 100644
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
-index 0f83122..c0aca6a 100644
+index bebdf1a..7a9e095 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
-@@ -987,7 +987,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
+@@ -996,7 +996,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
/* Save user registers on the stack */
frame = &rt_sf->uc.uc_mcontext;
addr = frame;
@@ -8127,10 +8133,10 @@ index 0f83122..c0aca6a 100644
tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
} else {
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
-index 887e99d..310bc11 100644
+index f93ec28..97e0fbb 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
-@@ -751,7 +751,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
+@@ -757,7 +757,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
#endif
/* Set up to return from userspace. */
@@ -8140,10 +8146,10 @@ index 887e99d..310bc11 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 e435bc0..41c2964 100644
+index f783c93..619baf1 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
-@@ -141,6 +141,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
+@@ -142,6 +142,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
return flags;
}
@@ -8152,7 +8158,7 @@ index e435bc0..41c2964 100644
static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
int signr)
{
-@@ -190,6 +192,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
+@@ -191,6 +193,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
panic("Fatal exception in interrupt");
if (panic_on_oops)
panic("Fatal exception");
@@ -8228,7 +8234,7 @@ index 5eea6f3..5d10396 100644
EXPORT_SYMBOL(copy_in_user);
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
-index 8726779..a33c512 100644
+index 51ab9e7..7d3c78b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -33,6 +33,10 @@
@@ -8285,7 +8291,7 @@ index 8726779..a33c512 100644
else
is_write = error_code & DSISR_ISSTORE;
#else
-@@ -371,7 +402,7 @@ good_area:
+@@ -378,7 +409,7 @@ good_area:
* "undefined". Of those that can be set, this is the only
* one which seems bad.
*/
@@ -8294,7 +8300,7 @@ index 8726779..a33c512 100644
/* Guarded storage error. */
goto bad_area;
#endif /* CONFIG_8xx */
-@@ -386,7 +417,7 @@ good_area:
+@@ -393,7 +424,7 @@ good_area:
* processors use the same I/D cache coherency mechanism
* as embedded.
*/
@@ -8303,7 +8309,7 @@ index 8726779..a33c512 100644
goto bad_area;
#endif /* CONFIG_PPC_STD_MMU */
-@@ -471,6 +502,23 @@ bad_area:
+@@ -483,6 +514,23 @@ bad_area:
bad_area_nosemaphore:
/* User mode accesses cause a SIGSEGV */
if (user_mode(regs)) {
@@ -8616,10 +8622,10 @@ index 7845e15..59c4353 100644
if (r_type == R_390_GOTPC)
rc = apply_rela_bits(loc, val, 1, 32, 0);
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
-index 2bc3edd..ab9d598 100644
+index c5dbb33..b41f4ee 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
-@@ -236,39 +236,3 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -237,39 +237,3 @@ unsigned long get_wchan(struct task_struct *p)
}
return 0;
}
@@ -8735,7 +8741,7 @@ index f9f3cd5..58ff438 100644
#endif /* _ASM_SCORE_EXEC_H */
diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
-index f4c6d02..e9355c3 100644
+index a1519ad3..e8ac1ff 100644
--- a/arch/score/kernel/process.c
+++ b/arch/score/kernel/process.c
@@ -116,8 +116,3 @@ unsigned long get_wchan(struct task_struct *task)
@@ -9441,10 +9447,10 @@ index e562d3c..191f176 100644
ret = copy_to_user_fixup(to, from, size);
return ret;
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
-index d432fb2..6056af1 100644
+index d15cc17..d0ae796 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
-@@ -3,7 +3,7 @@
+@@ -4,7 +4,7 @@
#
asflags-y := -ansi
@@ -9537,10 +9543,10 @@ index 79cc0d1..ec62734 100644
.getproplen = prom_getproplen,
.getproperty = prom_getproperty,
diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
-index 7ff45e4..a58f271 100644
+index 773c1f2..a8bdd87 100644
--- a/arch/sparc/kernel/ptrace_64.c
+++ b/arch/sparc/kernel/ptrace_64.c
-@@ -1057,6 +1057,10 @@ long arch_ptrace(struct task_struct *child, long request,
+@@ -1059,6 +1059,10 @@ long arch_ptrace(struct task_struct *child, long request,
return ret;
}
@@ -9551,7 +9557,7 @@ index 7ff45e4..a58f271 100644
asmlinkage int syscall_trace_enter(struct pt_regs *regs)
{
int ret = 0;
-@@ -1064,6 +1068,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+@@ -1066,6 +1070,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
/* do the secure computing check first */
secure_computing_strict(regs->u_regs[UREG_G1]);
@@ -9563,7 +9569,7 @@ index 7ff45e4..a58f271 100644
if (test_thread_flag(TIF_SYSCALL_TRACE))
ret = tracehook_report_syscall_entry(regs);
-@@ -1084,6 +1093,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+@@ -1086,6 +1095,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
asmlinkage void syscall_trace_leave(struct pt_regs *regs)
{
@@ -9813,7 +9819,7 @@ index 51561b8..8256764 100644
}
}
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
-index 73ec8a7..4611979 100644
+index d950197..192f9d8 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -52,7 +52,7 @@ sys32_rt_sigreturn:
@@ -10352,7 +10358,7 @@ index 30c3ecc..736f015 100644
obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o gup.o
obj-y += fault_$(BITS).o
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
-index e98bfda..ea8d221 100644
+index 59dbd46..1dd7f5e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -21,6 +21,9 @@
@@ -10643,7 +10649,7 @@ index e98bfda..ea8d221 100644
static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
int text_fault)
{
-@@ -230,6 +504,24 @@ good_area:
+@@ -229,6 +503,24 @@ good_area:
if (!(vma->vm_flags & VM_WRITE))
goto bad_area;
} else {
@@ -10669,7 +10675,7 @@ index e98bfda..ea8d221 100644
if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
goto bad_area;
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
-index 5062ff3..e0b75f3 100644
+index 2ebec26..b212598 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -21,6 +21,9 @@
@@ -11158,7 +11164,7 @@ index 5062ff3..e0b75f3 100644
asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
{
struct mm_struct *mm = current->mm;
-@@ -341,6 +804,29 @@ retry:
+@@ -342,6 +805,29 @@ retry:
if (!vma)
goto bad_area;
@@ -11189,7 +11195,7 @@ index 5062ff3..e0b75f3 100644
* load/store/atomic was a write or not, it only says that there
* was no match. So in such a case we (carefully) read the
diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
-index d2b5944..d878f3c 100644
+index 9639964..806cd0c 100644
--- a/arch/sparc/mm/hugetlbpage.c
+++ b/arch/sparc/mm/hugetlbpage.c
@@ -28,7 +28,8 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
@@ -11331,10 +11337,10 @@ index ed82eda..0d80e77 100644
#endif /* CONFIG_DEBUG_DCFLUSH */
}
diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
-index f4500c6..889656c 100644
+index ad220ee..2f537b3 100644
--- a/arch/tile/include/asm/atomic_64.h
+++ b/arch/tile/include/asm/atomic_64.h
-@@ -143,6 +143,16 @@ static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
+@@ -105,6 +105,16 @@ static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
#define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
@@ -11352,7 +11358,7 @@ index f4500c6..889656c 100644
#define smp_mb__before_atomic_dec() smp_mb()
#define smp_mb__after_atomic_dec() smp_mb()
diff --git a/arch/tile/include/asm/cache.h b/arch/tile/include/asm/cache.h
-index a9a5299..0fce79e 100644
+index 6160761..00cac88 100644
--- a/arch/tile/include/asm/cache.h
+++ b/arch/tile/include/asm/cache.h
@@ -15,11 +15,12 @@
@@ -11370,10 +11376,10 @@ index a9a5299..0fce79e 100644
/* bytes per L2 cache line */
#define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE()
diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
-index e4d44bd..99927a3 100644
+index b6cde32..c0cb736 100644
--- a/arch/tile/include/asm/uaccess.h
+++ b/arch/tile/include/asm/uaccess.h
-@@ -408,9 +408,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
+@@ -414,9 +414,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
const void __user *from,
unsigned long n)
{
@@ -11386,10 +11392,10 @@ index e4d44bd..99927a3 100644
else
copy_from_user_overflow();
diff --git a/arch/tile/mm/hugetlbpage.c b/arch/tile/mm/hugetlbpage.c
-index 650ccff..45fe2d6 100644
+index 0cb3bba..7338b2d 100644
--- a/arch/tile/mm/hugetlbpage.c
+++ b/arch/tile/mm/hugetlbpage.c
-@@ -239,6 +239,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
+@@ -212,6 +212,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
info.high_limit = TASK_SIZE;
info.align_mask = PAGE_MASK & ~huge_page_mask(h);
info.align_offset = 0;
@@ -11397,7 +11403,7 @@ index 650ccff..45fe2d6 100644
return vm_unmapped_area(&info);
}
-@@ -256,6 +257,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
+@@ -229,6 +230,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
info.high_limit = current->mm->mmap_base;
info.align_mask = PAGE_MASK & ~huge_page_mask(h);
info.align_offset = 0;
@@ -11421,7 +11427,7 @@ index 133f7de..1d6f2f1 100644
include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS)
diff --git a/arch/um/defconfig b/arch/um/defconfig
-index 08107a7..ab22afe 100644
+index 2665e6b..3e3822b 100644
--- a/arch/um/defconfig
+++ b/arch/um/defconfig
@@ -51,7 +51,6 @@ CONFIG_X86_CMPXCHG=y
@@ -11535,10 +11541,10 @@ 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 b32ebf9..5704f98 100644
+index f67e839..419b5f7 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -248,7 +248,7 @@ config X86_HT
+@@ -247,7 +247,7 @@ config X86_HT
config X86_32_LAZY_GS
def_bool y
@@ -11547,7 +11553,7 @@ index b32ebf9..5704f98 100644
config ARCH_HWEIGHT_CFLAGS
string
-@@ -1088,6 +1088,7 @@ config MICROCODE_EARLY
+@@ -1099,6 +1099,7 @@ config MICROCODE_EARLY
config X86_MSR
tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -11555,7 +11561,7 @@ index b32ebf9..5704f98 100644
---help---
This device gives privileged processes access to the x86
Model-Specific Registers (MSRs). It is a character device with
-@@ -1111,7 +1112,7 @@ choice
+@@ -1122,7 +1123,7 @@ choice
config NOHIGHMEM
bool "off"
@@ -11564,7 +11570,7 @@ index b32ebf9..5704f98 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
-@@ -1148,7 +1149,7 @@ config NOHIGHMEM
+@@ -1159,7 +1160,7 @@ config NOHIGHMEM
config HIGHMEM4G
bool "4GB"
@@ -11573,7 +11579,7 @@ index b32ebf9..5704f98 100644
---help---
Select this if you have a 32-bit processor and between 1 and 4
gigabytes of physical RAM.
-@@ -1201,7 +1202,7 @@ config PAGE_OFFSET
+@@ -1212,7 +1213,7 @@ config PAGE_OFFSET
hex
default 0xB0000000 if VMSPLIT_3G_OPT
default 0x80000000 if VMSPLIT_2G
@@ -11582,7 +11588,7 @@ index b32ebf9..5704f98 100644
default 0x40000000 if VMSPLIT_1G
default 0xC0000000
depends on X86_32
-@@ -1599,6 +1600,7 @@ config SECCOMP
+@@ -1614,6 +1615,7 @@ config SECCOMP
config CC_STACKPROTECTOR
bool "Enable -fstack-protector buffer overflow detection"
@@ -11590,16 +11596,16 @@ index b32ebf9..5704f98 100644
---help---
This option turns on the -fstack-protector GCC feature. This
feature puts, at the beginning of functions, a canary value on
-@@ -1718,6 +1720,8 @@ config X86_NEED_RELOCS
+@@ -1733,6 +1735,8 @@ config X86_NEED_RELOCS
config PHYSICAL_ALIGN
- hex "Alignment value to which kernel should be aligned" if X86_32
+ hex "Alignment value to which kernel should be aligned"
default "0x1000000"
+ range 0x200000 0x1000000 if PAX_KERNEXEC && X86_PAE
+ range 0x400000 0x1000000 if PAX_KERNEXEC && !X86_PAE
- range 0x2000 0x1000000
+ range 0x2000 0x1000000 if X86_32
+ range 0x200000 0x1000000 if X86_64
---help---
- This value puts the alignment restrictions on physical address
-@@ -1793,9 +1797,10 @@ config DEBUG_HOTPLUG_CPU0
+@@ -1812,9 +1816,10 @@ config DEBUG_HOTPLUG_CPU0
If unsure, say N.
config COMPAT_VDSO
@@ -11665,10 +11671,18 @@ index 78d91af..8ceb94b 100644
This option helps catch unintended modifications to loadable
kernel module's text and read-only data. It also prevents execution
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index 07639c6..6f2c901 100644
+index 41250fb..863762e 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
-@@ -54,6 +54,7 @@ else
+@@ -46,14 +46,12 @@ ifeq ($(CONFIG_X86_32),y)
+ # CPU-specific tuning. Anything which can be shared with UML should go here.
+ include $(srctree)/arch/x86/Makefile_32.cpu
+ KBUILD_CFLAGS += $(cflags-y)
+-
+- # temporary until string.h is fixed
+- KBUILD_CFLAGS += -ffreestanding
+ else
+ BITS := 64
UTS_MACHINE := x86_64
CHECKFLAGS += -D__x86_64__ -m64
@@ -11676,6 +11690,16 @@ index 07639c6..6f2c901 100644
KBUILD_AFLAGS += -m64
KBUILD_CFLAGS += -m64
+@@ -83,6 +81,9 @@ else
+ KBUILD_CFLAGS += -maccumulate-outgoing-args
+ endif
+
++# temporary until string.h is fixed
++KBUILD_CFLAGS += -ffreestanding
++
+ ifdef CONFIG_CC_STACKPROTECTOR
+ cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
+ ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(KBUILD_CPPFLAGS) $(biarch)),y)
@@ -241,3 +242,12 @@ define archhelp
echo ' FDINITRD=file initrd for the booted kernel'
echo ' kvmconfig - Enable additional options for guest kernel support'
@@ -11726,7 +11750,7 @@ index 878e4b9..20537ab 100644
#endif /* BOOT_BITOPS_H */
diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
-index 5b75319..331a4ca 100644
+index ef72bae..353a184 100644
--- a/arch/x86/boot/boot.h
+++ b/arch/x86/boot/boot.h
@@ -85,7 +85,7 @@ static inline void io_delay(void)
@@ -11824,7 +11848,7 @@ index a53440e..c3dbf1e 100644
.previous
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
-index 1e3184f..0d11e2e 100644
+index 5d6f689..9d06730 100644
--- a/arch/x86/boot/compressed/head_32.S
+++ b/arch/x86/boot/compressed/head_32.S
@@ -118,7 +118,7 @@ preferred_addr:
@@ -11836,27 +11860,8 @@ index 1e3184f..0d11e2e 100644
#endif
/* Target address to relocate to for decompression */
-@@ -204,7 +204,7 @@ relocated:
- * and where it was actually loaded.
- */
- movl %ebp, %ebx
-- subl $LOAD_PHYSICAL_ADDR, %ebx
-+ subl $____LOAD_PHYSICAL_ADDR, %ebx
- jz 2f /* Nothing to be done if loaded at compiled addr. */
- /*
- * Process relocations.
-@@ -212,8 +212,7 @@ relocated:
-
- 1: subl $4, %edi
- movl (%edi), %ecx
-- testl %ecx, %ecx
-- jz 2f
-+ jecxz 2f
- addl %ebx, -__PAGE_OFFSET(%ebx, %ecx)
- jmp 1b
- 2:
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
-index 06e71c2..88a98264 100644
+index c337422..2c5be72 100644
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -95,7 +95,7 @@ ENTRY(startup_32)
@@ -11877,7 +11882,7 @@ index 06e71c2..88a98264 100644
#endif
/* Target address to relocate to for decompression */
-@@ -361,8 +361,8 @@ gdt:
+@@ -362,8 +362,8 @@ gdt:
.long gdt
.word 0
.quad 0x0000000000000000 /* NULL descriptor */
@@ -11889,10 +11894,19 @@ index 06e71c2..88a98264 100644
.quad 0x0000000000000000 /* TS continued */
gdt_end:
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
-index 0319c88..7c1931f 100644
+index 434f077..b6b4b38 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
-@@ -307,7 +307,7 @@ static void parse_elf(void *output)
+@@ -283,7 +283,7 @@ static void handle_relocations(void *output, unsigned long output_len)
+ * Calculate the delta between where vmlinux was linked to load
+ * and where it was actually loaded.
+ */
+- delta = min_addr - LOAD_PHYSICAL_ADDR;
++ delta = min_addr - ____LOAD_PHYSICAL_ADDR;
+ if (!delta) {
+ debug_putstr("No relocation needed... ");
+ return;
+@@ -380,7 +380,7 @@ static void parse_elf(void *output)
case PT_LOAD:
#ifdef CONFIG_RELOCATABLE
dest = output;
@@ -11901,7 +11915,7 @@ index 0319c88..7c1931f 100644
#else
dest = (void *)(phdr->p_paddr);
#endif
-@@ -358,7 +358,7 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap,
+@@ -432,7 +432,7 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap,
error("Destination address too large");
#endif
#ifndef CONFIG_RELOCATABLE
@@ -13308,7 +13322,7 @@ index 665a730..8e7a67a 100644
err |= copy_siginfo_to_user32(&frame->info, &ksig->info);
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
-index 474dc1b..9297c58 100644
+index 4299eb0..904b82a 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -15,8 +15,10 @@
@@ -13706,10 +13720,10 @@ index 372231c..a5aa1a1 100644
.long \orig - .
.long \alt - .
diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
-index 58ed6d9..f1cbe58 100644
+index 0a3f9c9..c9d081d 100644
--- a/arch/x86/include/asm/alternative.h
+++ b/arch/x86/include/asm/alternative.h
-@@ -105,7 +105,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
+@@ -106,7 +106,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
".pushsection .discard,\"aw\",@progbits\n" \
DISCARD_ENTRY(1) \
".popsection\n" \
@@ -13718,7 +13732,7 @@ index 58ed6d9..f1cbe58 100644
ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
".popsection"
-@@ -119,7 +119,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
+@@ -120,7 +120,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
DISCARD_ENTRY(1) \
DISCARD_ENTRY(2) \
".popsection\n" \
@@ -13728,7 +13742,7 @@ index 58ed6d9..f1cbe58 100644
ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
".popsection"
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
-index f8119b5..7209d5b 100644
+index 1d2091a..f5074c1 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
@@ -14679,10 +14693,10 @@ index 0e1cbfc..5623683 100644
#define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
-index 6dfd019..28e188d 100644
+index 41639ce..0bd8c87 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
-@@ -40,7 +40,7 @@
+@@ -48,7 +48,7 @@
* a mask operation on a byte.
*/
#define IS_IMMEDIATE(nr) (__builtin_constant_p(nr))
@@ -14691,7 +14705,25 @@ index 6dfd019..28e188d 100644
#define CONST_MASK(nr) (1 << ((nr) & 7))
/**
-@@ -486,7 +486,7 @@ static inline int fls(int x)
+@@ -361,7 +361,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
+ *
+ * Undefined if no bit exists, so code should check against 0 first.
+ */
+-static inline unsigned long __ffs(unsigned long word)
++static inline unsigned long __intentional_overflow(-1) __ffs(unsigned long word)
+ {
+ asm("rep; bsf %1,%0"
+ : "=r" (word)
+@@ -375,7 +375,7 @@ static inline unsigned long __ffs(unsigned long word)
+ *
+ * Undefined if no zero exists, so code should check against ~0UL first.
+ */
+-static inline unsigned long ffz(unsigned long word)
++static inline unsigned long __intentional_overflow(-1) ffz(unsigned long word)
+ {
+ asm("rep; bsf %1,%0"
+ : "=r" (word)
+@@ -494,7 +494,7 @@ static inline int fls(int x)
* at position 64.
*/
#ifdef CONFIG_X86_64
@@ -14867,7 +14899,7 @@ index 59c6c40..5e0b22c 100644
struct compat_timespec {
compat_time_t tv_sec;
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
-index 7290585..717e89e 100644
+index 89270b4..f0abf8e 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -203,7 +203,7 @@
@@ -14896,7 +14928,7 @@ index 7290585..717e89e 100644
#endif /* CONFIG_X86_64 */
#if __GNUC__ >= 4
-@@ -403,7 +404,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
+@@ -405,7 +406,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
#ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
t_warn:
@@ -14905,8 +14937,8 @@ index 7290585..717e89e 100644
+ warn_pre_alternatives();
return false;
#endif
- #else /* GCC_VERSION >= 40500 */
-@@ -421,7 +423,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
+
+@@ -425,7 +427,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
".section .discard,\"aw\",@progbits\n"
" .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
".previous\n"
@@ -14915,7 +14947,7 @@ index 7290585..717e89e 100644
"3: movb $1,%0\n"
"4:\n"
".previous\n"
-@@ -457,7 +459,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
+@@ -462,7 +464,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
" .byte 2b - 1b\n" /* src len */
" .byte 4f - 3f\n" /* repl len */
".previous\n"
@@ -14924,7 +14956,7 @@ index 7290585..717e89e 100644
"3: .byte 0xe9\n .long %l[t_no] - 2b\n"
"4:\n"
".previous\n"
-@@ -490,7 +492,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
+@@ -495,7 +497,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
".section .discard,\"aw\",@progbits\n"
" .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
".previous\n"
@@ -14933,7 +14965,7 @@ index 7290585..717e89e 100644
"3: movb $0,%0\n"
"4:\n"
".previous\n"
-@@ -504,7 +506,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
+@@ -509,7 +511,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
".section .discard,\"aw\",@progbits\n"
" .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
".previous\n"
@@ -15392,7 +15424,7 @@ index be27ba1..04a8801 100644
*uval = oldval;
return ret;
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
-index e4ac559..c1c0c87 100644
+index 92b3bae..3866449 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -165,8 +165,8 @@ extern void setup_ioapic_dest(void);
@@ -15484,7 +15516,7 @@ index bba3cf8..06bc8da 100644
#define INTERRUPT_RETURN iret
#define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h
-index 5a6d287..f815789 100644
+index 9454c16..e4100e3 100644
--- a/arch/x86/include/asm/kprobes.h
+++ b/arch/x86/include/asm/kprobes.h
@@ -38,13 +38,8 @@ typedef u8 kprobe_opcode_t;
@@ -16051,7 +16083,7 @@ index 0f1ddee..e2fc3d1 100644
unsigned long y = x - __START_KERNEL_map;
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
-index cfdc9ee..3f7b5d6 100644
+index 401f350..dee5d13 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -560,7 +560,7 @@ static inline pmd_t __pmd(pmdval_t val)
@@ -16103,8 +16135,8 @@ index cfdc9ee..3f7b5d6 100644
+
#if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
- static inline int arch_spin_is_locked(struct arch_spinlock *lock)
-@@ -926,7 +953,7 @@ extern void default_banner(void);
+ static __always_inline void __ticket_lock_spinning(struct arch_spinlock *lock,
+@@ -906,7 +933,7 @@ extern void default_banner(void);
#define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
#define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
@@ -16113,7 +16145,7 @@ index cfdc9ee..3f7b5d6 100644
#endif
#define INTERRUPT_RETURN \
-@@ -1001,6 +1028,21 @@ extern void default_banner(void);
+@@ -981,6 +1008,21 @@ extern void default_banner(void);
PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit), \
CLBR_NONE, \
jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit))
@@ -16136,7 +16168,7 @@ index cfdc9ee..3f7b5d6 100644
#endif /* __ASSEMBLY__ */
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
-index 0db1fca..52310cc 100644
+index aab8f67..2531748 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -84,7 +84,7 @@ struct pv_init_ops {
@@ -16196,15 +16228,6 @@ index 0db1fca..52310cc 100644
};
struct arch_spinlock;
-@@ -334,7 +341,7 @@ struct pv_lock_ops {
- void (*spin_lock_flags)(struct arch_spinlock *lock, unsigned long flags);
- int (*spin_trylock)(struct arch_spinlock *lock);
- void (*spin_unlock)(struct arch_spinlock *lock);
--};
-+} __no_const;
-
- /* This contains all the paravirt structures: we get a convenient
- * number for each function using the offset which we use to indicate
diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
index b4389a4..7024269 100644
--- a/arch/x86/include/asm/pgalloc.h
@@ -16295,10 +16318,10 @@ index 81bb91b..9392125 100644
/*
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
-index 1c00631..845f898 100644
+index 3d19994..732a48c 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
-@@ -44,6 +44,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
+@@ -45,6 +45,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
#ifndef __PAGETABLE_PUD_FOLDED
#define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
@@ -16306,7 +16329,7 @@ index 1c00631..845f898 100644
#define pgd_clear(pgd) native_pgd_clear(pgd)
#endif
-@@ -81,12 +82,51 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
+@@ -82,12 +83,51 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
#define arch_end_context_switch(prev) do {} while(0)
@@ -16358,7 +16381,7 @@ index 1c00631..845f898 100644
static inline int pte_dirty(pte_t pte)
{
return pte_flags(pte) & _PAGE_DIRTY;
-@@ -147,6 +187,11 @@ static inline unsigned long pud_pfn(pud_t pud)
+@@ -148,6 +188,11 @@ static inline unsigned long pud_pfn(pud_t pud)
return (pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT;
}
@@ -16370,7 +16393,7 @@ index 1c00631..845f898 100644
#define pte_page(pte) pfn_to_page(pte_pfn(pte))
static inline int pmd_large(pmd_t pte)
-@@ -200,9 +245,29 @@ static inline pte_t pte_wrprotect(pte_t pte)
+@@ -201,9 +246,29 @@ static inline pte_t pte_wrprotect(pte_t pte)
return pte_clear_flags(pte, _PAGE_RW);
}
@@ -16401,7 +16424,7 @@ index 1c00631..845f898 100644
}
static inline pte_t pte_mkdirty(pte_t pte)
-@@ -444,6 +509,16 @@ pte_t *populate_extra_pte(unsigned long vaddr);
+@@ -430,6 +495,16 @@ pte_t *populate_extra_pte(unsigned long vaddr);
#endif
#ifndef __ASSEMBLY__
@@ -16416,9 +16439,9 @@ index 1c00631..845f898 100644
+#endif
+
#include <linux/mm_types.h>
+ #include <linux/mmdebug.h>
#include <linux/log2.h>
-
-@@ -576,7 +651,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
+@@ -563,7 +638,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
* Currently stuck as a macro due to indirect forward reference to
* linux/mmzone.h's __section_mem_map_addr() definition:
*/
@@ -16427,7 +16450,7 @@ index 1c00631..845f898 100644
/* Find an entry in the second-level page table.. */
static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
-@@ -616,7 +691,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
+@@ -603,7 +678,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
* Currently stuck as a macro due to indirect forward reference to
* linux/mmzone.h's __section_mem_map_addr() definition:
*/
@@ -16436,7 +16459,7 @@ index 1c00631..845f898 100644
/* to find an entry in a page-table-directory. */
static inline unsigned long pud_index(unsigned long address)
-@@ -631,7 +706,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
+@@ -618,7 +693,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
static inline int pgd_bad(pgd_t pgd)
{
@@ -16445,7 +16468,7 @@ index 1c00631..845f898 100644
}
static inline int pgd_none(pgd_t pgd)
-@@ -654,7 +729,12 @@ static inline int pgd_none(pgd_t pgd)
+@@ -641,7 +716,12 @@ static inline int pgd_none(pgd_t pgd)
* pgd_offset() returns a (pgd_t *)
* pgd_index() is used get the offset into the pgd page's array of pgd_t's;
*/
@@ -16459,7 +16482,7 @@ index 1c00631..845f898 100644
/*
* a shortcut which implies the use of the kernel's pgd, instead
* of a process's
-@@ -665,6 +745,23 @@ static inline int pgd_none(pgd_t pgd)
+@@ -652,6 +732,23 @@ static inline int pgd_none(pgd_t pgd)
#define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET)
#define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
@@ -16483,7 +16506,7 @@ index 1c00631..845f898 100644
#ifndef __ASSEMBLY__
extern int direct_gbpages;
-@@ -831,11 +928,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
+@@ -818,11 +915,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
* dst and src can be on the same page, but the range must not overlap,
* and must not cross a page boundary.
*/
@@ -16660,7 +16683,7 @@ index 2d88344..4679fc3 100644
#define EARLY_DYNAMIC_PAGE_TABLES 64
diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
-index f4843e0..a2526f8 100644
+index 0ecac25..306c276 100644
--- a/arch/x86/include/asm/pgtable_types.h
+++ b/arch/x86/include/asm/pgtable_types.h
@@ -16,13 +16,12 @@
@@ -16688,7 +16711,7 @@ index f4843e0..a2526f8 100644
#define _PAGE_IOMAP (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)
#define _PAGE_PAT (_AT(pteval_t, 1) << _PAGE_BIT_PAT)
#define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
-@@ -84,8 +82,10 @@
+@@ -87,8 +85,10 @@
#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
@@ -16700,7 +16723,7 @@ index f4843e0..a2526f8 100644
#endif
#define _PAGE_FILE (_AT(pteval_t, 1) << _PAGE_BIT_FILE)
-@@ -143,6 +143,9 @@
+@@ -146,6 +146,9 @@
#define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
_PAGE_ACCESSED)
@@ -16710,7 +16733,7 @@ index f4843e0..a2526f8 100644
#define __PAGE_KERNEL_EXEC \
(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
#define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
-@@ -153,7 +156,7 @@
+@@ -156,7 +159,7 @@
#define __PAGE_KERNEL_WC (__PAGE_KERNEL | _PAGE_CACHE_WC)
#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
@@ -16719,7 +16742,7 @@ index f4843e0..a2526f8 100644
#define __PAGE_KERNEL_VVAR (__PAGE_KERNEL_RO | _PAGE_USER)
#define __PAGE_KERNEL_VVAR_NOCACHE (__PAGE_KERNEL_VVAR | _PAGE_PCD | _PAGE_PWT)
#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
-@@ -215,8 +218,8 @@
+@@ -218,8 +221,8 @@
* bits are combined, this will alow user to access the high address mapped
* VDSO in the presence of CONFIG_COMPAT_VDSO
*/
@@ -16730,7 +16753,7 @@ index f4843e0..a2526f8 100644
#define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
#endif
-@@ -254,7 +257,17 @@ static inline pgdval_t pgd_flags(pgd_t pgd)
+@@ -257,7 +260,17 @@ static inline pgdval_t pgd_flags(pgd_t pgd)
{
return native_pgd_val(pgd) & PTE_FLAGS_MASK;
}
@@ -16748,7 +16771,7 @@ index f4843e0..a2526f8 100644
#if PAGETABLE_LEVELS > 3
typedef struct { pudval_t pud; } pud_t;
-@@ -268,8 +281,6 @@ static inline pudval_t native_pud_val(pud_t pud)
+@@ -271,8 +284,6 @@ static inline pudval_t native_pud_val(pud_t pud)
return pud.pud;
}
#else
@@ -16757,7 +16780,7 @@ index f4843e0..a2526f8 100644
static inline pudval_t native_pud_val(pud_t pud)
{
return native_pgd_val(pud.pgd);
-@@ -289,8 +300,6 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
+@@ -292,8 +303,6 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
return pmd.pmd;
}
#else
@@ -16766,7 +16789,7 @@ index f4843e0..a2526f8 100644
static inline pmdval_t native_pmd_val(pmd_t pmd)
{
return native_pgd_val(pmd.pud.pgd);
-@@ -330,7 +339,6 @@ typedef struct page *pgtable_t;
+@@ -333,7 +342,6 @@ typedef struct page *pgtable_t;
extern pteval_t __supported_pte_mask;
extern void set_nx(void);
@@ -16775,7 +16798,7 @@ index f4843e0..a2526f8 100644
#define pgprot_writecombine pgprot_writecombine
extern pgprot_t pgprot_writecombine(pgprot_t prot);
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
-index 24cf5ae..4d9fa2d 100644
+index 987c75e..2723054 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -199,9 +199,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
@@ -16943,18 +16966,8 @@ index 24cf5ae..4d9fa2d 100644
#define KSTK_EIP(task) (task_pt_regs(task)->ip)
/* Get/set a process' ability to use the timestamp counter instruction */
-@@ -943,7 +942,8 @@ extern int set_tsc_mode(unsigned int val);
- extern u16 amd_get_nb_id(int cpu);
-
- struct aperfmperf {
-- u64 aperf, mperf;
-+ u64 aperf __intentional_overflow(0);
-+ u64 mperf __intentional_overflow(0);
- };
-
- static inline void get_aperfmperf(struct aperfmperf *am)
-@@ -971,7 +971,7 @@ unsigned long calc_aperfmperf_ratio(struct aperfmperf *old,
- return ratio;
+@@ -957,7 +956,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
+ return 0;
}
-extern unsigned long arch_align_stack(unsigned long sp);
@@ -16962,7 +16975,7 @@ index 24cf5ae..4d9fa2d 100644
extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
void default_idle(void);
-@@ -981,6 +981,6 @@ bool xen_set_default_idle(void);
+@@ -967,6 +966,6 @@ bool xen_set_default_idle(void);
#define xen_set_default_idle 0
#endif
@@ -17438,10 +17451,10 @@ index 4137890..03fa172 100644
#endif
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
-index e3ddd7d..3611fce 100644
+index bf156de..1a782ab 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
-@@ -172,6 +172,14 @@ static inline int arch_write_can_lock(arch_rwlock_t *lock)
+@@ -223,6 +223,14 @@ static inline int arch_write_can_lock(arch_rwlock_t *lock)
static inline void arch_read_lock(arch_rwlock_t *rw)
{
asm volatile(LOCK_PREFIX READ_LOCK_SIZE(dec) " (%0)\n\t"
@@ -17456,7 +17469,7 @@ index e3ddd7d..3611fce 100644
"jns 1f\n"
"call __read_lock_failed\n\t"
"1:\n"
-@@ -181,6 +189,14 @@ static inline void arch_read_lock(arch_rwlock_t *rw)
+@@ -232,6 +240,14 @@ static inline void arch_read_lock(arch_rwlock_t *rw)
static inline void arch_write_lock(arch_rwlock_t *rw)
{
asm volatile(LOCK_PREFIX WRITE_LOCK_SUB(%1) "(%0)\n\t"
@@ -17471,7 +17484,7 @@ index e3ddd7d..3611fce 100644
"jz 1f\n"
"call __write_lock_failed\n\t"
"1:\n"
-@@ -210,13 +226,29 @@ static inline int arch_write_trylock(arch_rwlock_t *lock)
+@@ -261,13 +277,29 @@ static inline int arch_write_trylock(arch_rwlock_t *lock)
static inline void arch_read_unlock(arch_rwlock_t *rw)
{
@@ -17579,7 +17592,7 @@ index 70bbe39..4ae2bd4 100644
void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
-index 4ec45b3..a4f0a8a 100644
+index d7f3b3b..3cc39f1 100644
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
@@ -108,7 +108,7 @@ do { \
@@ -17804,7 +17817,7 @@ index 2781119..618b59b 100644
#endif
#endif /* _ASM_X86_THREAD_INFO_H */
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
-index cf51200..63ff068 100644
+index e6d90ba..0897f44 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -17,18 +17,44 @@
@@ -17902,7 +17915,7 @@ index cf51200..63ff068 100644
}
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
-index 5ee2687..74590b9 100644
+index 5838fa9..f7ae572 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -7,6 +7,7 @@
@@ -17962,8 +17975,8 @@ index 5ee2687..74590b9 100644
/*
* The exception table consists of pairs of addresses relative to the
-@@ -165,10 +196,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
- register __inttype(*(ptr)) __val_gu asm("%edx"); \
+@@ -168,10 +199,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
+ register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
__chk_user_ptr(ptr); \
might_fault(); \
+ pax_open_userland(); \
@@ -17975,7 +17988,7 @@ index 5ee2687..74590b9 100644
__ret_gu; \
})
-@@ -176,13 +209,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
+@@ -179,13 +212,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
: "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
@@ -18000,7 +18013,7 @@ index 5ee2687..74590b9 100644
"3: " ASM_CLAC "\n" \
".section .fixup,\"ax\"\n" \
"4: movl %3,%0\n" \
-@@ -195,8 +236,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
+@@ -198,8 +239,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
#define __put_user_asm_ex_u64(x, addr) \
asm volatile(ASM_STAC "\n" \
@@ -18011,7 +18024,7 @@ index 5ee2687..74590b9 100644
"3: " ASM_CLAC "\n" \
_ASM_EXTABLE_EX(1b, 2b) \
_ASM_EXTABLE_EX(2b, 3b) \
-@@ -246,7 +287,8 @@ extern void __put_user_8(void);
+@@ -249,7 +290,8 @@ extern void __put_user_8(void);
__typeof__(*(ptr)) __pu_val; \
__chk_user_ptr(ptr); \
might_fault(); \
@@ -18021,7 +18034,7 @@ index 5ee2687..74590b9 100644
switch (sizeof(*(ptr))) { \
case 1: \
__put_user_x(1, __pu_val, ptr, __ret_pu); \
-@@ -264,6 +306,7 @@ extern void __put_user_8(void);
+@@ -267,6 +309,7 @@ extern void __put_user_8(void);
__put_user_x(X, __pu_val, ptr, __ret_pu); \
break; \
} \
@@ -18029,7 +18042,7 @@ index 5ee2687..74590b9 100644
__ret_pu; \
})
-@@ -344,8 +387,10 @@ do { \
+@@ -347,8 +390,10 @@ do { \
} while (0)
#define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
@@ -18041,7 +18054,7 @@ index 5ee2687..74590b9 100644
"2: " ASM_CLAC "\n" \
".section .fixup,\"ax\"\n" \
"3: mov %3,%0\n" \
-@@ -353,8 +398,10 @@ do { \
+@@ -356,8 +401,10 @@ do { \
" jmp 2b\n" \
".previous\n" \
_ASM_EXTABLE(1b, 3b) \
@@ -18054,7 +18067,7 @@ index 5ee2687..74590b9 100644
#define __get_user_size_ex(x, ptr, size) \
do { \
-@@ -378,7 +425,7 @@ do { \
+@@ -381,7 +428,7 @@ do { \
} while (0)
#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
@@ -18063,7 +18076,7 @@ index 5ee2687..74590b9 100644
"2:\n" \
_ASM_EXTABLE_EX(1b, 2b) \
: ltype(x) : "m" (__m(addr)))
-@@ -395,13 +442,24 @@ do { \
+@@ -398,13 +445,24 @@ do { \
int __gu_err; \
unsigned long __gu_val; \
__get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \
@@ -18090,7 +18103,7 @@ index 5ee2687..74590b9 100644
/*
* Tell gcc we read from memory instead of writing: this is because
-@@ -409,8 +467,10 @@ struct __large_struct { unsigned long buf[100]; };
+@@ -412,8 +470,10 @@ struct __large_struct { unsigned long buf[100]; };
* aliasing issues.
*/
#define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
@@ -18102,7 +18115,7 @@ index 5ee2687..74590b9 100644
"2: " ASM_CLAC "\n" \
".section .fixup,\"ax\"\n" \
"3: mov %3,%0\n" \
-@@ -418,10 +478,12 @@ struct __large_struct { unsigned long buf[100]; };
+@@ -421,10 +481,12 @@ struct __large_struct { unsigned long buf[100]; };
".previous\n" \
_ASM_EXTABLE(1b, 3b) \
: "=r"(err) \
@@ -18117,7 +18130,7 @@ index 5ee2687..74590b9 100644
"2:\n" \
_ASM_EXTABLE_EX(1b, 2b) \
: : ltype(x), "m" (__m(addr)))
-@@ -431,11 +493,13 @@ struct __large_struct { unsigned long buf[100]; };
+@@ -434,11 +496,13 @@ struct __large_struct { unsigned long buf[100]; };
*/
#define uaccess_try do { \
current_thread_info()->uaccess_err = 0; \
@@ -18131,7 +18144,7 @@ index 5ee2687..74590b9 100644
(err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \
} while (0)
-@@ -460,8 +524,12 @@ struct __large_struct { unsigned long buf[100]; };
+@@ -463,8 +527,12 @@ struct __large_struct { unsigned long buf[100]; };
* On error, the variable @x is set to zero.
*/
@@ -18144,7 +18157,7 @@ index 5ee2687..74590b9 100644
/**
* __put_user: - Write a simple value into user space, with less checking.
-@@ -483,8 +551,12 @@ struct __large_struct { unsigned long buf[100]; };
+@@ -486,8 +554,12 @@ struct __large_struct { unsigned long buf[100]; };
* Returns zero on success, or -EFAULT on error.
*/
@@ -18157,7 +18170,7 @@ index 5ee2687..74590b9 100644
#define __get_user_unaligned __get_user
#define __put_user_unaligned __put_user
-@@ -502,7 +574,7 @@ struct __large_struct { unsigned long buf[100]; };
+@@ -505,7 +577,7 @@ struct __large_struct { unsigned long buf[100]; };
#define get_user_ex(x, ptr) do { \
unsigned long __gue_val; \
__get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
@@ -18166,42 +18179,10 @@ index 5ee2687..74590b9 100644
} while (0)
#define put_user_try uaccess_try
-@@ -519,8 +591,8 @@ strncpy_from_user(char *dst, const char __user *src, long count);
- extern __must_check long strlen_user(const char __user *str);
- extern __must_check long strnlen_user(const char __user *str, long n);
-
--unsigned long __must_check clear_user(void __user *mem, unsigned long len);
--unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
-+unsigned long __must_check clear_user(void __user *mem, unsigned long len) __size_overflow(2);
-+unsigned long __must_check __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
-
- /*
- * movsl can be slow when source and dest are not both 8-byte aligned
diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
-index 7f760a9..04b1c65 100644
+index 7f760a9..b596b9a 100644
--- a/arch/x86/include/asm/uaccess_32.h
+++ b/arch/x86/include/asm/uaccess_32.h
-@@ -11,15 +11,15 @@
- #include <asm/page.h>
-
- unsigned long __must_check __copy_to_user_ll
-- (void __user *to, const void *from, unsigned long n);
-+ (void __user *to, const void *from, unsigned long n) __size_overflow(3);
- unsigned long __must_check __copy_from_user_ll
-- (void *to, const void __user *from, unsigned long n);
-+ (void *to, const void __user *from, unsigned long n) __size_overflow(3);
- unsigned long __must_check __copy_from_user_ll_nozero
-- (void *to, const void __user *from, unsigned long n);
-+ (void *to, const void __user *from, unsigned long n) __size_overflow(3);
- unsigned long __must_check __copy_from_user_ll_nocache
-- (void *to, const void __user *from, unsigned long n);
-+ (void *to, const void __user *from, unsigned long n) __size_overflow(3);
- unsigned long __must_check __copy_from_user_ll_nocache_nozero
-- (void *to, const void __user *from, unsigned long n);
-+ (void *to, const void __user *from, unsigned long n) __size_overflow(3);
-
- /**
- * __copy_to_user_inatomic: - Copy a block of data into user space, with less checking.
@@ -43,6 +43,11 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
static __always_inline unsigned long __must_check
__copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
@@ -18352,7 +18333,7 @@ index 7f760a9..04b1c65 100644
}
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
-index 4f7923d..d3526c1 100644
+index 4f7923d..201b58d 100644
--- a/arch/x86/include/asm/uaccess_64.h
+++ b/arch/x86/include/asm/uaccess_64.h
@@ -10,6 +10,9 @@
@@ -18380,7 +18361,7 @@ index 4f7923d..d3526c1 100644
-static __always_inline __must_check unsigned long
-copy_user_generic(void *to, const void *from, unsigned len)
-+static __always_inline __must_check __size_overflow(3) unsigned long
++static __always_inline __must_check unsigned long
+copy_user_generic(void *to, const void *from, unsigned long len)
{
unsigned ret;
@@ -18705,7 +18686,7 @@ index 4f7923d..d3526c1 100644
-extern long __copy_user_nocache(void *dst, const void __user *src,
- unsigned size, int zerorest);
+extern unsigned long __copy_user_nocache(void *dst, const void __user *src,
-+ unsigned long size, int zerorest) __size_overflow(3);
++ unsigned long size, int zerorest);
-static inline int
-__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
@@ -18809,6 +18790,19 @@ index 828a156..650e625 100644
extern struct x86_init_ops x86_init;
extern struct x86_cpuinit_ops x86_cpuinit;
+diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
+index b913915..4f5a581 100644
+--- a/arch/x86/include/asm/xen/page.h
++++ b/arch/x86/include/asm/xen/page.h
+@@ -56,7 +56,7 @@ extern int m2p_remove_override(struct page *page,
+ extern struct page *m2p_find_override(unsigned long mfn);
+ extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn);
+
+-static inline unsigned long pfn_to_mfn(unsigned long pfn)
++static inline unsigned long __intentional_overflow(-1) pfn_to_mfn(unsigned long pfn)
+ {
+ unsigned long mfn;
+
diff --git a/arch/x86/include/asm/xsave.h b/arch/x86/include/asm/xsave.h
index 0415cda..3b22adc 100644
--- a/arch/x86/include/asm/xsave.h
@@ -18873,7 +18867,7 @@ index bbae024..e1528f9 100644
#define BIOS_ROM_BASE 0xffe00000
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
-index 88d99ea..9fc7e17 100644
+index a5408b9..5133813 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -24,7 +24,7 @@ obj-y += time.o ioport.o ldt.o dumpstack.o nmi.o
@@ -18886,10 +18880,10 @@ index 88d99ea..9fc7e17 100644
obj-y += syscall_$(BITS).o
obj-$(CONFIG_X86_64) += vsyscall_64.o
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 2627a81..cd8325e 100644
+index 40c7660..f709f4b 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
-@@ -1368,7 +1368,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
+@@ -1365,7 +1365,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
* If your system is blacklisted here, but you find that acpi=force
* works for you, please contact linux-acpi@vger.kernel.org
*/
@@ -18898,7 +18892,7 @@ index 2627a81..cd8325e 100644
/*
* Boxes that need ACPI disabled
*/
-@@ -1443,7 +1443,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
+@@ -1440,7 +1440,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
};
/* second table for DMI checks that should run after early-quirks */
@@ -18945,10 +18939,10 @@ index d1daa66..59fecba 100644
bogus_magic:
jmp bogus_magic
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
-index c15cf9a..0e63558 100644
+index 15e8563..323cbe1 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
-@@ -268,6 +268,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
+@@ -269,6 +269,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
*/
for (a = start; a < end; a++) {
instr = (u8 *)&a->instr_offset + a->instr_offset;
@@ -18962,7 +18956,7 @@ index c15cf9a..0e63558 100644
replacement = (u8 *)&a->repl_offset + a->repl_offset;
BUG_ON(a->replacementlen > a->instrlen);
BUG_ON(a->instrlen > sizeof(insnbuf));
-@@ -299,10 +306,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
+@@ -300,10 +307,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
for (poff = start; poff < end; poff++) {
u8 *ptr = (u8 *)poff + *poff;
@@ -18980,7 +18974,7 @@ index c15cf9a..0e63558 100644
text_poke(ptr, ((unsigned char []){0xf0}), 1);
}
mutex_unlock(&text_mutex);
-@@ -317,10 +330,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
+@@ -318,10 +331,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
for (poff = start; poff < end; poff++) {
u8 *ptr = (u8 *)poff + *poff;
@@ -18998,7 +18992,7 @@ index c15cf9a..0e63558 100644
text_poke(ptr, ((unsigned char []){0x3E}), 1);
}
mutex_unlock(&text_mutex);
-@@ -468,7 +487,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
+@@ -469,7 +488,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
BUG_ON(p->len > MAX_PATCH_LEN);
/* prep the buffer with the original instructions */
@@ -19007,7 +19001,7 @@ index c15cf9a..0e63558 100644
used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
(unsigned long)p->instr, p->len);
-@@ -515,7 +534,7 @@ void __init alternative_instructions(void)
+@@ -516,7 +535,7 @@ void __init alternative_instructions(void)
if (!uniproc_patched || num_possible_cpus() == 1)
free_init_pages("SMP alternatives",
(unsigned long)__smp_locks,
@@ -19016,7 +19010,7 @@ index c15cf9a..0e63558 100644
#endif
apply_paravirt(__parainstructions, __parainstructions_end);
-@@ -535,13 +554,17 @@ void __init alternative_instructions(void)
+@@ -536,13 +555,17 @@ void __init alternative_instructions(void)
* instructions. And on the local CPU you need to be protected again NMI or MCE
* handlers seeing an inconsistent instruction while you patch.
*/
@@ -19036,7 +19030,7 @@ index c15cf9a..0e63558 100644
local_irq_restore(flags);
/* Could also do a CLFLUSH here to speed up CPU recovery; but
that causes hangs on some VIA CPUs. */
-@@ -563,36 +586,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
+@@ -564,36 +587,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
*/
void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
{
@@ -19081,8 +19075,26 @@ index c15cf9a..0e63558 100644
return addr;
}
+@@ -613,7 +622,7 @@ int poke_int3_handler(struct pt_regs *regs)
+ if (likely(!bp_patching_in_progress))
+ return 0;
+
+- if (user_mode_vm(regs) || regs->ip != (unsigned long)bp_int3_addr)
++ if (user_mode(regs) || regs->ip != (unsigned long)bp_int3_addr)
+ return 0;
+
+ /* set up the specified breakpoint handler */
+@@ -647,7 +656,7 @@ int poke_int3_handler(struct pt_regs *regs)
+ */
+ void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
+ {
+- unsigned char int3 = 0xcc;
++ const unsigned char int3 = 0xcc;
+
+ bp_int3_handler = handler;
+ bp_int3_addr = (u8 *)addr + sizeof(int3);
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
-index eca89c5..d566b78 100644
+index a7eb82d..f6e52d4 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -190,7 +190,7 @@ int first_system_vector = 0xfe;
@@ -19175,7 +19187,7 @@ index c552247..587a316 100644
.name = "es7000",
.probe = probe_es7000,
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index 9ed796c..e930fe4 100644
+index e63a5bd..c0babf8 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1060,7 +1060,7 @@ int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin,
@@ -19196,7 +19208,7 @@ index 9ed796c..e930fe4 100644
{
raw_spin_unlock(&vector_lock);
}
-@@ -2362,7 +2362,7 @@ static void ack_apic_edge(struct irq_data *data)
+@@ -2367,7 +2367,7 @@ static void ack_apic_edge(struct irq_data *data)
ack_APIC_irq();
}
@@ -19205,7 +19217,7 @@ index 9ed796c..e930fe4 100644
#ifdef CONFIG_GENERIC_PENDING_IRQ
static bool io_apic_level_ack_pending(struct irq_cfg *cfg)
-@@ -2503,7 +2503,7 @@ static void ack_apic_level(struct irq_data *data)
+@@ -2508,7 +2508,7 @@ static void ack_apic_level(struct irq_data *data)
* at the cpu.
*/
if (!(v & (1 << (i & 0x1f)))) {
@@ -19303,7 +19315,7 @@ index a419814..1dd34a0 100644
.name = "UV large system",
.probe = uv_probe,
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
-index 53a4e27..038760a 100644
+index 3ab0343..814c4787 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -433,7 +433,7 @@ static DEFINE_MUTEX(apm_mutex);
@@ -19445,7 +19457,7 @@ index 47b56a7..efc2bc6 100644
obj-y += proc.o capflags.o powerflags.o common.o
obj-y += rdrand.o
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
-index 08a0890..e557865 100644
+index 903a264..fc955f3 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -743,7 +743,7 @@ static void init_amd(struct cpuinfo_x86 *c)
@@ -19458,7 +19470,7 @@ index 08a0890..e557865 100644
if (c->x86_model == 3 && c->x86_mask == 0)
size = 64;
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index 25eb274..3a92d93 100644
+index 2793d1f..5c04a30 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -88,60 +88,6 @@ static const struct cpu_dev default_cpu = {
@@ -19626,7 +19638,7 @@ index 25eb274..3a92d93 100644
+const struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) debug_idt_table };
DEFINE_PER_CPU_FIRST(union irq_stack_union,
- irq_stack_union) __aligned(PAGE_SIZE);
+ irq_stack_union) __aligned(PAGE_SIZE) __visible;
@@ -1087,7 +1094,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned =
EXPORT_PER_CPU_SYMBOL(current_task);
@@ -19754,7 +19766,7 @@ index 1414c90..1159406 100644
"index%1lu", i);
if (unlikely(retval)) {
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
-index 87a65c9..92fcce6 100644
+index b3218cd..99a75de 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -45,6 +45,7 @@
@@ -19765,7 +19777,7 @@ index 87a65c9..92fcce6 100644
#include "mce-internal.h"
-@@ -249,7 +250,7 @@ static void print_mce(struct mce *m)
+@@ -258,7 +259,7 @@ static void print_mce(struct mce *m)
!(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
m->cs, m->ip);
@@ -19774,7 +19786,7 @@ index 87a65c9..92fcce6 100644
print_symbol("{%s}", m->ip);
pr_cont("\n");
}
-@@ -282,10 +283,10 @@ static void print_mce(struct mce *m)
+@@ -291,10 +292,10 @@ static void print_mce(struct mce *m)
#define PANIC_TIMEOUT 5 /* 5 seconds */
@@ -19787,7 +19799,7 @@ index 87a65c9..92fcce6 100644
/* Panic in progress. Enable interrupts and wait for final IPI */
static void wait_for_panic(void)
-@@ -309,7 +310,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
+@@ -318,7 +319,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
/*
* Make sure only one CPU runs in machine check panic
*/
@@ -19796,7 +19808,7 @@ index 87a65c9..92fcce6 100644
wait_for_panic();
barrier();
-@@ -317,7 +318,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
+@@ -326,7 +327,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
console_verbose();
} else {
/* Don't log too much for fake panic */
@@ -19805,7 +19817,7 @@ index 87a65c9..92fcce6 100644
return;
}
/* First print corrected ones that are still unlogged */
-@@ -356,7 +357,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
+@@ -365,7 +366,7 @@ static void mce_panic(char *msg, struct mce *final, char *exp)
if (!fake_panic) {
if (panic_timeout == 0)
panic_timeout = mca_cfg.panic_timeout;
@@ -19814,7 +19826,7 @@ index 87a65c9..92fcce6 100644
} else
pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
}
-@@ -686,7 +687,7 @@ static int mce_timed_out(u64 *t)
+@@ -695,7 +696,7 @@ static int mce_timed_out(u64 *t)
* might have been modified by someone else.
*/
rmb();
@@ -19823,7 +19835,7 @@ index 87a65c9..92fcce6 100644
wait_for_panic();
if (!mca_cfg.monarch_timeout)
goto out;
-@@ -1657,7 +1658,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
+@@ -1666,7 +1667,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
}
/* Call the installed machine check handler for this CPU setup. */
@@ -19832,7 +19844,7 @@ index 87a65c9..92fcce6 100644
unexpected_machine_check;
/*
-@@ -1680,7 +1681,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
+@@ -1689,7 +1690,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
return;
}
@@ -19842,7 +19854,7 @@ index 87a65c9..92fcce6 100644
__mcheck_cpu_init_generic();
__mcheck_cpu_init_vendor(c);
-@@ -1694,7 +1697,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
+@@ -1703,7 +1706,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
*/
static DEFINE_SPINLOCK(mce_chrdev_state_lock);
@@ -19851,7 +19863,7 @@ index 87a65c9..92fcce6 100644
static int mce_chrdev_open_exclu; /* already open exclusive? */
static int mce_chrdev_open(struct inode *inode, struct file *file)
-@@ -1702,7 +1705,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
+@@ -1711,7 +1714,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
spin_lock(&mce_chrdev_state_lock);
if (mce_chrdev_open_exclu ||
@@ -19860,7 +19872,7 @@ index 87a65c9..92fcce6 100644
spin_unlock(&mce_chrdev_state_lock);
return -EBUSY;
-@@ -1710,7 +1713,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
+@@ -1719,7 +1722,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
if (file->f_flags & O_EXCL)
mce_chrdev_open_exclu = 1;
@@ -19869,7 +19881,7 @@ index 87a65c9..92fcce6 100644
spin_unlock(&mce_chrdev_state_lock);
-@@ -1721,7 +1724,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
+@@ -1730,7 +1733,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
{
spin_lock(&mce_chrdev_state_lock);
@@ -19878,7 +19890,7 @@ index 87a65c9..92fcce6 100644
mce_chrdev_open_exclu = 0;
spin_unlock(&mce_chrdev_state_lock);
-@@ -2376,7 +2379,7 @@ static __init void mce_init_banks(void)
+@@ -2404,7 +2407,7 @@ static __init void mce_init_banks(void)
for (i = 0; i < mca_cfg.banks; i++) {
struct mce_bank *b = &mce_banks[i];
@@ -19887,7 +19899,7 @@ index 87a65c9..92fcce6 100644
sysfs_attr_init(&a->attr);
a->attr.name = b->attrname;
-@@ -2444,7 +2447,7 @@ struct dentry *mce_get_debugfs_dir(void)
+@@ -2472,7 +2475,7 @@ struct dentry *mce_get_debugfs_dir(void)
static void mce_reset(void)
{
cpu_missing = 0;
@@ -19967,7 +19979,7 @@ index df5e41f..816c719 100644
extern int generic_get_free_region(unsigned long base, unsigned long size,
int replace_reg);
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
-index a7c7305..b9705ab 100644
+index 8a87a32..682a22a 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -1348,7 +1348,7 @@ static void __init pmu_check_apic(void)
@@ -19988,7 +20000,7 @@ index a7c7305..b9705ab 100644
.name = "events",
.attrs = events_attr,
};
-@@ -1957,7 +1957,7 @@ static unsigned long get_segment_base(unsigned int segment)
+@@ -1958,7 +1958,7 @@ static unsigned long get_segment_base(unsigned int segment)
if (idx > GDT_ENTRIES)
return 0;
@@ -19997,7 +20009,7 @@ index a7c7305..b9705ab 100644
}
return get_desc_base(desc + idx);
-@@ -2047,7 +2047,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
+@@ -2048,7 +2048,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
break;
perf_callchain_store(entry, frame.return_address);
@@ -20020,10 +20032,10 @@ index 639d128..e92d7e5 100644
while (amd_iommu_v2_event_descs[i].attr.attr.name)
diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
-index a45d8d4..8abd32c 100644
+index f31a165..7b46cd8 100644
--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
-@@ -2099,10 +2099,10 @@ __init int intel_pmu_init(void)
+@@ -2247,10 +2247,10 @@ __init int intel_pmu_init(void)
* v2 and above have a perf capabilities MSR
*/
if (version > 1) {
@@ -20038,10 +20050,10 @@ index a45d8d4..8abd32c 100644
intel_ds_init();
diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
-index 1fb6c72..f5fa2a3 100644
+index 4118f9f..f91d0ab 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
-@@ -3095,7 +3095,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
+@@ -3204,7 +3204,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
static int __init uncore_type_init(struct intel_uncore_type *type)
{
struct intel_uncore_pmu *pmus;
@@ -20051,10 +20063,10 @@ index 1fb6c72..f5fa2a3 100644
int i, j;
diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
-index 47b3d00c..2cf1751 100644
+index a80ab71..4089da5 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
-@@ -488,7 +488,7 @@ struct intel_uncore_box {
+@@ -498,7 +498,7 @@ struct intel_uncore_box {
struct uncore_event_desc {
struct kobj_attribute attr;
const char *config;
@@ -20077,7 +20089,7 @@ index 7d9481c..99c7e4b 100644
.notifier_call = cpuid_class_cpu_callback,
};
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
-index 74467fe..18793d5 100644
+index e0e0841..da37e6f 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -58,10 +58,8 @@ static void kdump_nmi_callback(int cpu, struct pt_regs *regs)
@@ -20528,7 +20540,7 @@ index d15f575..d692043 100644
#include <asm/processor.h>
#include <asm/fcntl.h>
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
-index 2cfbc3a..b756682 100644
+index f0dcb0c..9f39b80 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -177,13 +177,153 @@
@@ -21195,7 +21207,7 @@ index 2cfbc3a..b756682 100644
ENTRY(ftrace_regs_caller)
pushf /* push flags before compare (in cs location) */
-@@ -1207,7 +1446,7 @@ trace:
+@@ -1210,7 +1449,7 @@ trace:
popl %ecx
popl %eax
jmp ftrace_stub
@@ -21204,7 +21216,7 @@ index 2cfbc3a..b756682 100644
#endif /* CONFIG_DYNAMIC_FTRACE */
#endif /* CONFIG_FUNCTION_TRACER */
-@@ -1225,7 +1464,7 @@ ENTRY(ftrace_graph_caller)
+@@ -1228,7 +1467,7 @@ ENTRY(ftrace_graph_caller)
popl %ecx
popl %eax
ret
@@ -21213,7 +21225,7 @@ index 2cfbc3a..b756682 100644
.globl return_to_handler
return_to_handler:
-@@ -1281,15 +1520,18 @@ error_code:
+@@ -1284,15 +1523,18 @@ error_code:
movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
REG_TO_PTGS %ecx
SET_KERNEL_GS %ecx
@@ -21234,7 +21246,7 @@ index 2cfbc3a..b756682 100644
/*
* Debug traps and NMI can happen at the one SYSENTER instruction
-@@ -1332,7 +1574,7 @@ debug_stack_correct:
+@@ -1335,7 +1577,7 @@ debug_stack_correct:
call do_debug
jmp ret_from_exception
CFI_ENDPROC
@@ -21243,7 +21255,7 @@ index 2cfbc3a..b756682 100644
/*
* NMI is doubly nasty. It can happen _while_ we're handling
-@@ -1370,6 +1612,9 @@ nmi_stack_correct:
+@@ -1373,6 +1615,9 @@ nmi_stack_correct:
xorl %edx,%edx # zero error code
movl %esp,%eax # pt_regs pointer
call do_nmi
@@ -21253,7 +21265,7 @@ index 2cfbc3a..b756682 100644
jmp restore_all_notrace
CFI_ENDPROC
-@@ -1406,12 +1651,15 @@ nmi_espfix_stack:
+@@ -1409,12 +1654,15 @@ nmi_espfix_stack:
FIXUP_ESPFIX_STACK # %eax == %esp
xorl %edx,%edx # zero error code
call do_nmi
@@ -21270,7 +21282,7 @@ index 2cfbc3a..b756682 100644
ENTRY(int3)
RING0_INT_FRAME
-@@ -1424,14 +1672,14 @@ ENTRY(int3)
+@@ -1427,14 +1675,14 @@ ENTRY(int3)
call do_int3
jmp ret_from_exception
CFI_ENDPROC
@@ -21287,7 +21299,7 @@ index 2cfbc3a..b756682 100644
#ifdef CONFIG_KVM_GUEST
ENTRY(async_page_fault)
-@@ -1440,7 +1688,7 @@ ENTRY(async_page_fault)
+@@ -1443,7 +1691,7 @@ ENTRY(async_page_fault)
pushl_cfi $do_async_page_fault
jmp error_code
CFI_ENDPROC
@@ -21297,7 +21309,7 @@ index 2cfbc3a..b756682 100644
/*
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
-index 1b69951..8430a6d 100644
+index b077f4c..feb26c1 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -59,6 +59,8 @@
@@ -21835,19 +21847,7 @@ index 1b69951..8430a6d 100644
je 1f
SWAPGS
/*
-@@ -498,9 +931,10 @@ ENTRY(save_rest)
- movq_cfi r15, R15+16
- movq %r11, 8(%rsp) /* return address */
- FIXUP_TOP_OF_STACK %r11, 16
-+ pax_force_retaddr
- ret
- CFI_ENDPROC
--END(save_rest)
-+ENDPROC(save_rest)
-
- /* save complete stack frame */
- .pushsection .kprobes.text, "ax"
-@@ -529,9 +963,10 @@ ENTRY(save_paranoid)
+@@ -514,9 +947,10 @@ ENTRY(save_paranoid)
js 1f /* negative -> in kernel */
SWAPGS
xorl %ebx,%ebx
@@ -21860,7 +21860,7 @@ index 1b69951..8430a6d 100644
.popsection
/*
-@@ -553,7 +988,7 @@ ENTRY(ret_from_fork)
+@@ -538,7 +972,7 @@ ENTRY(ret_from_fork)
RESTORE_REST
@@ -21869,7 +21869,7 @@ index 1b69951..8430a6d 100644
jz 1f
testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
-@@ -571,7 +1006,7 @@ ENTRY(ret_from_fork)
+@@ -556,7 +990,7 @@ ENTRY(ret_from_fork)
RESTORE_REST
jmp int_ret_from_sys_call
CFI_ENDPROC
@@ -21878,7 +21878,7 @@ index 1b69951..8430a6d 100644
/*
* System call entry. Up to 6 arguments in registers are supported.
-@@ -608,7 +1043,7 @@ END(ret_from_fork)
+@@ -593,7 +1027,7 @@ END(ret_from_fork)
ENTRY(system_call)
CFI_STARTPROC simple
CFI_SIGNAL_FRAME
@@ -21887,7 +21887,7 @@ index 1b69951..8430a6d 100644
CFI_REGISTER rip,rcx
/*CFI_REGISTER rflags,r11*/
SWAPGS_UNSAFE_STACK
-@@ -621,16 +1056,23 @@ GLOBAL(system_call_after_swapgs)
+@@ -606,16 +1040,23 @@ GLOBAL(system_call_after_swapgs)
movq %rsp,PER_CPU_VAR(old_rsp)
movq PER_CPU_VAR(kernel_stack),%rsp
@@ -21913,7 +21913,7 @@ index 1b69951..8430a6d 100644
jnz tracesys
system_call_fastpath:
#if __SYSCALL_MASK == ~0
-@@ -640,7 +1082,7 @@ system_call_fastpath:
+@@ -625,7 +1066,7 @@ system_call_fastpath:
cmpl $__NR_syscall_max,%eax
#endif
ja badsys
@@ -21922,7 +21922,7 @@ index 1b69951..8430a6d 100644
call *sys_call_table(,%rax,8) # XXX: rip relative
movq %rax,RAX-ARGOFFSET(%rsp)
/*
-@@ -654,10 +1096,13 @@ sysret_check:
+@@ -639,10 +1080,13 @@ sysret_check:
LOCKDEP_SYS_EXIT
DISABLE_INTERRUPTS(CLBR_NONE)
TRACE_IRQS_OFF
@@ -21937,7 +21937,7 @@ index 1b69951..8430a6d 100644
/*
* sysretq will re-enable interrupts:
*/
-@@ -709,14 +1154,18 @@ badsys:
+@@ -694,14 +1138,18 @@ badsys:
* jump back to the normal fast path.
*/
auditsys:
@@ -21957,7 +21957,7 @@ index 1b69951..8430a6d 100644
jmp system_call_fastpath
/*
-@@ -737,7 +1186,7 @@ sysret_audit:
+@@ -722,7 +1170,7 @@ sysret_audit:
/* Do syscall tracing */
tracesys:
#ifdef CONFIG_AUDITSYSCALL
@@ -21966,7 +21966,7 @@ index 1b69951..8430a6d 100644
jz auditsys
#endif
SAVE_REST
-@@ -745,12 +1194,16 @@ tracesys:
+@@ -730,12 +1178,16 @@ tracesys:
FIXUP_TOP_OF_STACK %rdi
movq %rsp,%rdi
call syscall_trace_enter
@@ -21983,7 +21983,7 @@ index 1b69951..8430a6d 100644
RESTORE_REST
#if __SYSCALL_MASK == ~0
cmpq $__NR_syscall_max,%rax
-@@ -759,7 +1212,7 @@ tracesys:
+@@ -744,7 +1196,7 @@ tracesys:
cmpl $__NR_syscall_max,%eax
#endif
ja int_ret_from_sys_call /* RAX(%rsp) set to -ENOSYS above */
@@ -21992,7 +21992,7 @@ index 1b69951..8430a6d 100644
call *sys_call_table(,%rax,8)
movq %rax,RAX-ARGOFFSET(%rsp)
/* Use IRET because user could have changed frame */
-@@ -780,7 +1233,9 @@ GLOBAL(int_with_check)
+@@ -765,7 +1217,9 @@ GLOBAL(int_with_check)
andl %edi,%edx
jnz int_careful
andl $~TS_COMPAT,TI_status(%rcx)
@@ -22003,7 +22003,7 @@ index 1b69951..8430a6d 100644
/* Either reschedule or signal or syscall exit tracking needed. */
/* First do a reschedule test. */
-@@ -826,7 +1281,7 @@ int_restore_rest:
+@@ -811,7 +1265,7 @@ int_restore_rest:
TRACE_IRQS_OFF
jmp int_with_check
CFI_ENDPROC
@@ -22012,7 +22012,7 @@ index 1b69951..8430a6d 100644
.macro FORK_LIKE func
ENTRY(stub_\func)
-@@ -839,9 +1294,10 @@ ENTRY(stub_\func)
+@@ -824,9 +1278,10 @@ ENTRY(stub_\func)
DEFAULT_FRAME 0 8 /* offset 8: return address */
call sys_\func
RESTORE_TOP_OF_STACK %r11, 8
@@ -22024,7 +22024,7 @@ index 1b69951..8430a6d 100644
.endm
.macro FIXED_FRAME label,func
-@@ -851,9 +1307,10 @@ ENTRY(\label)
+@@ -836,9 +1291,10 @@ ENTRY(\label)
FIXUP_TOP_OF_STACK %r11, 8-ARGOFFSET
call \func
RESTORE_TOP_OF_STACK %r11, 8-ARGOFFSET
@@ -22036,7 +22036,7 @@ index 1b69951..8430a6d 100644
.endm
FORK_LIKE clone
-@@ -870,9 +1327,10 @@ ENTRY(ptregscall_common)
+@@ -855,9 +1311,10 @@ ENTRY(ptregscall_common)
movq_cfi_restore R12+8, r12
movq_cfi_restore RBP+8, rbp
movq_cfi_restore RBX+8, rbx
@@ -22048,7 +22048,7 @@ index 1b69951..8430a6d 100644
ENTRY(stub_execve)
CFI_STARTPROC
-@@ -885,7 +1343,7 @@ ENTRY(stub_execve)
+@@ -870,7 +1327,7 @@ ENTRY(stub_execve)
RESTORE_REST
jmp int_ret_from_sys_call
CFI_ENDPROC
@@ -22057,7 +22057,7 @@ index 1b69951..8430a6d 100644
/*
* sigreturn is special because it needs to restore all registers on return.
-@@ -902,7 +1360,7 @@ ENTRY(stub_rt_sigreturn)
+@@ -887,7 +1344,7 @@ ENTRY(stub_rt_sigreturn)
RESTORE_REST
jmp int_ret_from_sys_call
CFI_ENDPROC
@@ -22066,7 +22066,7 @@ index 1b69951..8430a6d 100644
#ifdef CONFIG_X86_X32_ABI
ENTRY(stub_x32_rt_sigreturn)
-@@ -916,7 +1374,7 @@ ENTRY(stub_x32_rt_sigreturn)
+@@ -901,7 +1358,7 @@ ENTRY(stub_x32_rt_sigreturn)
RESTORE_REST
jmp int_ret_from_sys_call
CFI_ENDPROC
@@ -22075,7 +22075,7 @@ index 1b69951..8430a6d 100644
ENTRY(stub_x32_execve)
CFI_STARTPROC
-@@ -930,7 +1388,7 @@ ENTRY(stub_x32_execve)
+@@ -915,7 +1372,7 @@ ENTRY(stub_x32_execve)
RESTORE_REST
jmp int_ret_from_sys_call
CFI_ENDPROC
@@ -22084,7 +22084,7 @@ index 1b69951..8430a6d 100644
#endif
-@@ -967,7 +1425,7 @@ vector=vector+1
+@@ -952,7 +1409,7 @@ vector=vector+1
2: jmp common_interrupt
.endr
CFI_ENDPROC
@@ -22093,7 +22093,7 @@ index 1b69951..8430a6d 100644
.previous
END(interrupt)
-@@ -987,6 +1445,16 @@ END(interrupt)
+@@ -972,6 +1429,16 @@ END(interrupt)
subq $ORIG_RAX-RBP, %rsp
CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
SAVE_ARGS_IRQ
@@ -22110,7 +22110,7 @@ index 1b69951..8430a6d 100644
call \func
.endm
-@@ -1019,7 +1487,7 @@ ret_from_intr:
+@@ -1004,7 +1471,7 @@ ret_from_intr:
exit_intr:
GET_THREAD_INFO(%rcx)
@@ -22119,7 +22119,7 @@ index 1b69951..8430a6d 100644
je retint_kernel
/* Interrupt came from user space */
-@@ -1041,12 +1509,16 @@ retint_swapgs: /* return to user-space */
+@@ -1026,12 +1493,16 @@ retint_swapgs: /* return to user-space */
* The iretq could re-enable interrupts:
*/
DISABLE_INTERRUPTS(CLBR_ANY)
@@ -22136,7 +22136,7 @@ index 1b69951..8430a6d 100644
/*
* The iretq could re-enable interrupts:
*/
-@@ -1129,7 +1601,7 @@ ENTRY(retint_kernel)
+@@ -1114,7 +1585,7 @@ ENTRY(retint_kernel)
#endif
CFI_ENDPROC
@@ -22145,7 +22145,7 @@ index 1b69951..8430a6d 100644
/*
* End of kprobes section
*/
-@@ -1147,7 +1619,7 @@ ENTRY(\sym)
+@@ -1132,7 +1603,7 @@ ENTRY(\sym)
interrupt \do_sym
jmp ret_from_intr
CFI_ENDPROC
@@ -22154,7 +22154,7 @@ index 1b69951..8430a6d 100644
.endm
#ifdef CONFIG_TRACING
-@@ -1230,12 +1702,22 @@ ENTRY(\sym)
+@@ -1215,12 +1686,22 @@ ENTRY(\sym)
CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
call error_entry
DEFAULT_FRAME 0
@@ -22178,7 +22178,7 @@ index 1b69951..8430a6d 100644
.endm
.macro paranoidzeroentry sym do_sym
-@@ -1248,15 +1730,25 @@ ENTRY(\sym)
+@@ -1233,15 +1714,25 @@ ENTRY(\sym)
CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
call save_paranoid
TRACE_IRQS_OFF
@@ -22206,7 +22206,7 @@ index 1b69951..8430a6d 100644
.macro paranoidzeroentry_ist sym do_sym ist
ENTRY(\sym)
INTR_FRAME
-@@ -1267,14 +1759,30 @@ ENTRY(\sym)
+@@ -1252,14 +1743,30 @@ ENTRY(\sym)
CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
call save_paranoid
TRACE_IRQS_OFF_DEBUG
@@ -22238,7 +22238,7 @@ index 1b69951..8430a6d 100644
.endm
.macro errorentry sym do_sym
-@@ -1286,13 +1794,23 @@ ENTRY(\sym)
+@@ -1271,13 +1778,23 @@ ENTRY(\sym)
CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
call error_entry
DEFAULT_FRAME 0
@@ -22263,7 +22263,7 @@ index 1b69951..8430a6d 100644
.endm
/* error code is on the stack already */
-@@ -1306,13 +1824,23 @@ ENTRY(\sym)
+@@ -1291,13 +1808,23 @@ ENTRY(\sym)
call save_paranoid
DEFAULT_FRAME 0
TRACE_IRQS_OFF
@@ -22288,7 +22288,7 @@ index 1b69951..8430a6d 100644
.endm
zeroentry divide_error do_divide_error
-@@ -1342,9 +1870,10 @@ gs_change:
+@@ -1327,9 +1854,10 @@ gs_change:
2: mfence /* workaround */
SWAPGS
popfq_cfi
@@ -22300,7 +22300,7 @@ index 1b69951..8430a6d 100644
_ASM_EXTABLE(gs_change,bad_gs)
.section .fixup,"ax"
-@@ -1372,9 +1901,10 @@ ENTRY(call_softirq)
+@@ -1357,9 +1885,10 @@ ENTRY(call_softirq)
CFI_DEF_CFA_REGISTER rsp
CFI_ADJUST_CFA_OFFSET -8
decl PER_CPU_VAR(irq_count)
@@ -22312,7 +22312,7 @@ index 1b69951..8430a6d 100644
#ifdef CONFIG_XEN
zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
-@@ -1412,7 +1942,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
+@@ -1397,7 +1926,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
decl PER_CPU_VAR(irq_count)
jmp error_exit
CFI_ENDPROC
@@ -22321,7 +22321,7 @@ index 1b69951..8430a6d 100644
/*
* Hypervisor uses this for application faults while it executes.
-@@ -1471,7 +2001,7 @@ ENTRY(xen_failsafe_callback)
+@@ -1456,7 +1985,7 @@ ENTRY(xen_failsafe_callback)
SAVE_ALL
jmp error_exit
CFI_ENDPROC
@@ -22330,7 +22330,7 @@ index 1b69951..8430a6d 100644
apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
xen_hvm_callback_vector xen_evtchn_do_upcall
-@@ -1523,18 +2053,33 @@ ENTRY(paranoid_exit)
+@@ -1508,18 +2037,33 @@ ENTRY(paranoid_exit)
DEFAULT_FRAME
DISABLE_INTERRUPTS(CLBR_NONE)
TRACE_IRQS_OFF_DEBUG
@@ -22366,7 +22366,7 @@ index 1b69951..8430a6d 100644
jmp irq_return
paranoid_userspace:
GET_THREAD_INFO(%rcx)
-@@ -1563,7 +2108,7 @@ paranoid_schedule:
+@@ -1548,7 +2092,7 @@ paranoid_schedule:
TRACE_IRQS_OFF
jmp paranoid_userspace
CFI_ENDPROC
@@ -22375,7 +22375,7 @@ index 1b69951..8430a6d 100644
/*
* Exception entry point. This expects an error code/orig_rax on the stack.
-@@ -1590,12 +2135,13 @@ ENTRY(error_entry)
+@@ -1575,12 +2119,13 @@ ENTRY(error_entry)
movq_cfi r14, R14+8
movq_cfi r15, R15+8
xorl %ebx,%ebx
@@ -22390,7 +22390,7 @@ index 1b69951..8430a6d 100644
ret
/*
-@@ -1622,7 +2168,7 @@ bstep_iret:
+@@ -1607,7 +2152,7 @@ bstep_iret:
movq %rcx,RIP+8(%rsp)
jmp error_swapgs
CFI_ENDPROC
@@ -22399,7 +22399,7 @@ index 1b69951..8430a6d 100644
/* ebx: no swapgs flag (1: don't need swapgs, 0: need it) */
-@@ -1633,7 +2179,7 @@ ENTRY(error_exit)
+@@ -1618,7 +2163,7 @@ ENTRY(error_exit)
DISABLE_INTERRUPTS(CLBR_NONE)
TRACE_IRQS_OFF
GET_THREAD_INFO(%rcx)
@@ -22408,7 +22408,7 @@ index 1b69951..8430a6d 100644
jne retint_kernel
LOCKDEP_SYS_EXIT_IRQ
movl TI_flags(%rcx),%edx
-@@ -1642,7 +2188,7 @@ ENTRY(error_exit)
+@@ -1627,7 +2172,7 @@ ENTRY(error_exit)
jnz retint_careful
jmp retint_swapgs
CFI_ENDPROC
@@ -22417,7 +22417,7 @@ index 1b69951..8430a6d 100644
/*
* Test if a given stack is an NMI stack or not.
-@@ -1700,9 +2246,11 @@ ENTRY(nmi)
+@@ -1685,9 +2230,11 @@ ENTRY(nmi)
* If %cs was not the kernel segment, then the NMI triggered in user
* space, which means it is definitely not nested.
*/
@@ -22430,7 +22430,7 @@ index 1b69951..8430a6d 100644
/*
* Check the special variable on the stack to see if NMIs are
* executing.
-@@ -1736,8 +2284,7 @@ nested_nmi:
+@@ -1721,8 +2268,7 @@ nested_nmi:
1:
/* Set up the interrupted NMIs stack to jump to repeat_nmi */
@@ -22440,7 +22440,7 @@ index 1b69951..8430a6d 100644
CFI_ADJUST_CFA_OFFSET 1*8
leaq -10*8(%rsp), %rdx
pushq_cfi $__KERNEL_DS
-@@ -1755,6 +2302,7 @@ nested_nmi_out:
+@@ -1740,6 +2286,7 @@ nested_nmi_out:
CFI_RESTORE rdx
/* No need to check faults here */
@@ -22448,7 +22448,7 @@ index 1b69951..8430a6d 100644
INTERRUPT_RETURN
CFI_RESTORE_STATE
-@@ -1871,6 +2419,8 @@ end_repeat_nmi:
+@@ -1856,6 +2403,8 @@ end_repeat_nmi:
*/
movq %cr2, %r12
@@ -22457,7 +22457,7 @@ index 1b69951..8430a6d 100644
/* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
movq %rsp,%rdi
movq $-1,%rsi
-@@ -1883,26 +2433,31 @@ end_repeat_nmi:
+@@ -1868,26 +2417,31 @@ end_repeat_nmi:
movq %r12, %cr2
1:
@@ -22560,7 +22560,7 @@ index 42a392a..fbbd930 100644
return -EFAULT;
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
-index 55b6761..a6456fc 100644
+index 1be8e43..d9b9ef6 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -67,12 +67,12 @@ again:
@@ -22604,7 +22604,7 @@ index 55b6761..a6456fc 100644
}
pmd = (physaddr & PMD_MASK) + early_pmd_flags;
pmd_p[pmd_index(address)] = pmd;
-@@ -175,7 +175,6 @@ void __init x86_64_start_kernel(char * real_mode_data)
+@@ -175,7 +175,6 @@ asmlinkage void __init x86_64_start_kernel(char * real_mode_data)
if (console_loglevel == 10)
early_printk("Kernel alive\n");
@@ -22613,7 +22613,7 @@ index 55b6761..a6456fc 100644
init_level4_pgt[511] = early_level4_pgt[511];
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
-index 5dd87a8..d68b3f4 100644
+index 81ba276..30c5411 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -26,6 +26,12 @@
@@ -23036,7 +23036,7 @@ index 5dd87a8..d68b3f4 100644
+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0
+ .endr
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
-index e1aabdb..73dcad8 100644
+index e1aabdb..fee4fee 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -20,6 +20,8 @@
@@ -23061,7 +23061,7 @@ index e1aabdb..73dcad8 100644
.text
__HEAD
-@@ -89,11 +97,23 @@ startup_64:
+@@ -89,11 +97,24 @@ startup_64:
* Fixup the physical addresses in the page table
*/
addq %rbp, early_level4_pgt + (L4_START_KERNEL*8)(%rip)
@@ -23077,18 +23077,18 @@ index e1aabdb..73dcad8 100644
+#ifndef CONFIG_XEN
+ addq %rbp, level3_ident_pgt + (1*8)(%rip)
+#endif
-
-- addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
++
+ addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
+
+ addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip)
+ addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip)
-+
+
+ addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
+ addq %rbp, level2_fixmap_pgt + (507*8)(%rip)
/*
* Set up the identity mapping for the switchover. These
-@@ -177,8 +197,8 @@ ENTRY(secondary_startup_64)
+@@ -177,8 +198,8 @@ ENTRY(secondary_startup_64)
movq $(init_level4_pgt - __START_KERNEL_map), %rax
1:
@@ -23099,7 +23099,7 @@ index e1aabdb..73dcad8 100644
movq %rcx, %cr4
/* Setup early boot stage 4 level pagetables. */
-@@ -199,10 +219,18 @@ ENTRY(secondary_startup_64)
+@@ -199,10 +220,19 @@ ENTRY(secondary_startup_64)
movl $MSR_EFER, %ecx
rdmsr
btsl $_EFER_SCE, %eax /* Enable System Call */
@@ -23108,18 +23108,19 @@ index e1aabdb..73dcad8 100644
jnc 1f
btsl $_EFER_NX, %eax
btsq $_PAGE_BIT_NX,early_pmd_flags(%rip)
-+ leaq init_level4_pgt(%rip), %rdi
+#ifndef CONFIG_EFI
-+ btsq $_PAGE_BIT_NX, 8*L4_PAGE_OFFSET(%rdi)
++ btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_PAGE_OFFSET(%rip)
+#endif
-+ btsq $_PAGE_BIT_NX, 8*L4_VMALLOC_START(%rdi)
-+ btsq $_PAGE_BIT_NX, 8*L4_VMALLOC_END(%rdi)
-+ btsq $_PAGE_BIT_NX, 8*L4_VMEMMAP_START(%rdi)
++ btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_START(%rip)
++ btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_END(%rip)
++ btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMEMMAP_START(%rip)
++ btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*506(%rip)
++ btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*507(%rip)
+ btsq $_PAGE_BIT_NX, __supported_pte_mask(%rip)
1: wrmsr /* Make changes effective */
/* Setup cr0 */
-@@ -282,6 +310,7 @@ ENTRY(secondary_startup_64)
+@@ -282,6 +312,7 @@ ENTRY(secondary_startup_64)
* REX.W + FF /5 JMP m16:64 Jump far, absolute indirect,
* address given in m16:64.
*/
@@ -23127,7 +23128,7 @@ index e1aabdb..73dcad8 100644
movq initial_code(%rip),%rax
pushq $0 # fake return address to stop unwinder
pushq $__KERNEL_CS # set correct cs
-@@ -388,7 +417,7 @@ ENTRY(early_idt_handler)
+@@ -388,7 +419,7 @@ ENTRY(early_idt_handler)
call dump_stack
#ifdef CONFIG_KALLSYMS
leaq early_idt_ripmsg(%rip),%rdi
@@ -23136,7 +23137,7 @@ index e1aabdb..73dcad8 100644
call __print_symbol
#endif
#endif /* EARLY_PRINTK */
-@@ -416,6 +445,7 @@ ENDPROC(early_idt_handler)
+@@ -416,6 +447,7 @@ ENDPROC(early_idt_handler)
early_recursion_flag:
.long 0
@@ -23144,7 +23145,7 @@ index e1aabdb..73dcad8 100644
#ifdef CONFIG_EARLY_PRINTK
early_idt_msg:
.asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
-@@ -443,29 +473,52 @@ NEXT_PAGE(early_level4_pgt)
+@@ -443,29 +475,52 @@ NEXT_PAGE(early_level4_pgt)
NEXT_PAGE(early_dynamic_pgts)
.fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
@@ -23206,7 +23207,7 @@ index e1aabdb..73dcad8 100644
NEXT_PAGE(level3_kernel_pgt)
.fill L3_START_KERNEL,8,0
-@@ -473,6 +526,9 @@ NEXT_PAGE(level3_kernel_pgt)
+@@ -473,6 +528,9 @@ NEXT_PAGE(level3_kernel_pgt)
.quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
.quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
@@ -23216,23 +23217,22 @@ index e1aabdb..73dcad8 100644
NEXT_PAGE(level2_kernel_pgt)
/*
* 512 MB kernel mapping. We spend a full page on this pagetable
-@@ -488,30 +544,62 @@ NEXT_PAGE(level2_kernel_pgt)
- KERNEL_IMAGE_SIZE/PMD_SIZE)
-
+@@ -490,28 +548,64 @@ NEXT_PAGE(level2_kernel_pgt)
NEXT_PAGE(level2_fixmap_pgt)
-- .fill 506,8,0
-- .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
+ .fill 506,8,0
+ .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
- /* 8MB reserved for vsyscalls + a 2MB hole = 4 + 1 entries */
- .fill 5,8,0
-+ .fill 507,8,0
+ .quad level1_vsyscall_pgt - __START_KERNEL_map + _PAGE_TABLE
+ /* 6MB reserved for vsyscalls + a 2MB hole = 3 + 1 entries */
+ .fill 4,8,0
--NEXT_PAGE(level1_fixmap_pgt)
-+NEXT_PAGE(level1_vsyscall_pgt)
+ NEXT_PAGE(level1_fixmap_pgt)
.fill 512,8,0
++NEXT_PAGE(level1_vsyscall_pgt)
++ .fill 512,8,0
++
#undef PMDS
- .data
@@ -23432,7 +23432,7 @@ index 4ddaf66..6292f4e 100644
return -EPERM;
}
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
-index 3a8185c..3c042ee 100644
+index 22d0687..e07b2a5 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -21,7 +21,7 @@
@@ -23627,19 +23627,35 @@ index d04d3ec..ea4b374 100644
return;
if (regs->sp >= curbase + sizeof(struct thread_info) +
-diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c
-index dc1404b..bbc43e7 100644
---- a/arch/x86/kernel/kdebugfs.c
-+++ b/arch/x86/kernel/kdebugfs.c
-@@ -27,7 +27,7 @@ struct setup_data_node {
- u32 len;
- };
+diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
+index ee11b7d..4df4d0c 100644
+--- a/arch/x86/kernel/jump_label.c
++++ b/arch/x86/kernel/jump_label.c
+@@ -49,7 +49,7 @@ static void __jump_label_transform(struct jump_entry *entry,
+ * We are enabling this jump label. If it is not a nop
+ * then something must have gone wrong.
+ */
+- if (unlikely(memcmp((void *)entry->code, ideal_nop, 5) != 0))
++ if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5) != 0))
+ bug_at((void *)entry->code, __LINE__);
--static ssize_t setup_data_read(struct file *file, char __user *user_buf,
-+static ssize_t __size_overflow(3) setup_data_read(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
- {
- struct setup_data_node *node = file->private_data;
+ code.jump = 0xe9;
+@@ -64,13 +64,13 @@ static void __jump_label_transform(struct jump_entry *entry,
+ */
+ if (init) {
+ const unsigned char default_nop[] = { STATIC_KEY_INIT_NOP };
+- if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
++ if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5) != 0))
+ bug_at((void *)entry->code, __LINE__);
+ } else {
+ code.jump = 0xe9;
+ code.offset = entry->target -
+ (entry->code + JUMP_LABEL_NOP_SIZE);
+- if (unlikely(memcmp((void *)entry->code, &code, 5) != 0))
++ if (unlikely(memcmp((void *)ktla_ktva(entry->code), &code, 5) != 0))
+ bug_at((void *)entry->code, __LINE__);
+ }
+ memcpy(&code, ideal_nops[NOP_ATOMIC5], JUMP_LABEL_NOP_SIZE);
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index 836f832..a8bda67 100644
--- a/arch/x86/kernel/kgdb.c
@@ -23734,7 +23750,7 @@ index 836f832..a8bda67 100644
}
diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
-index 211bce4..6e2580a 100644
+index 79a3f96..6ba030a 100644
--- a/arch/x86/kernel/kprobes/core.c
+++ b/arch/x86/kernel/kprobes/core.c
@@ -119,9 +119,12 @@ static void __kprobes __synthesize_relative_insn(void *from, void *to, u8 op)
@@ -23851,7 +23867,7 @@ index 211bce4..6e2580a 100644
switch (val) {
diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c
-index 76dc6f0..66bdfc3 100644
+index 898160b..758cde8 100644
--- a/arch/x86/kernel/kprobes/opt.c
+++ b/arch/x86/kernel/kprobes/opt.c
@@ -79,6 +79,7 @@ found:
@@ -23869,8 +23885,8 @@ index 76dc6f0..66bdfc3 100644
+ pax_close_kernel();
}
- static void __used __kprobes kprobes_optinsn_template_holder(void)
-@@ -338,7 +340,7 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
+ asm (
+@@ -335,7 +337,7 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
* Verify if the address gap is in 2GB range, because this uses
* a relative jump.
*/
@@ -23879,7 +23895,7 @@ index 76dc6f0..66bdfc3 100644
if (abs(rel) > 0x7fffffff)
return -ERANGE;
-@@ -353,16 +355,18 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
+@@ -350,16 +352,18 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
op->optinsn.size = ret;
/* Copy arch-dep-instance from template */
@@ -23901,16 +23917,16 @@ index 76dc6f0..66bdfc3 100644
(u8 *)op->kp.addr + op->optinsn.size);
flush_icache_range((unsigned long) buf,
-@@ -385,7 +389,7 @@ static void __kprobes setup_optimize_kprobe(struct text_poke_param *tprm,
- ((long)op->kp.addr + RELATIVEJUMP_SIZE));
+@@ -384,7 +388,7 @@ void __kprobes arch_optimize_kprobes(struct list_head *oplist)
+ WARN_ON(kprobe_disabled(&op->kp));
- /* Backup instructions which will be replaced by jump address */
-- memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
-+ memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
- RELATIVE_ADDR_SIZE);
+ /* Backup instructions which will be replaced by jump address */
+- memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
++ memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
+ RELATIVE_ADDR_SIZE);
- insn_buf[0] = RELATIVEJUMP_OPCODE;
-@@ -483,7 +487,7 @@ setup_detour_execution(struct kprobe *p, struct pt_regs *regs, int reenter)
+ insn_buf[0] = RELATIVEJUMP_OPCODE;
+@@ -433,7 +437,7 @@ setup_detour_execution(struct kprobe *p, struct pt_regs *regs, int reenter)
/* This kprobe is really able to run optimized path. */
op = container_of(p, struct optimized_kprobe, kp);
/* Detour through copied instructions */
@@ -24202,7 +24218,7 @@ index 88458fa..349f7a4 100644
};
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
-index ba77ebc..65da999 100644
+index 6fcb49c..5b3f4ff 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -138,7 +138,7 @@ static int __kprobes nmi_handle(unsigned int type, struct pt_regs *regs, bool b2
@@ -24276,20 +24292,20 @@ index 6d9582e..f746287 100644
return;
}
diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
-index 676b8c7..870ba04 100644
+index bbb6c73..24a58ef 100644
--- a/arch/x86/kernel/paravirt-spinlocks.c
+++ b/arch/x86/kernel/paravirt-spinlocks.c
-@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t *lock, unsigned long flags)
- arch_spin_lock(lock);
- }
+@@ -8,7 +8,7 @@
+
+ #include <asm/paravirt.h>
-struct pv_lock_ops pv_lock_ops = {
+struct pv_lock_ops pv_lock_ops __read_only = {
#ifdef CONFIG_SMP
- .spin_is_locked = __ticket_spin_is_locked,
- .spin_is_contended = __ticket_spin_is_contended,
+ .lock_spinning = __PV_IS_CALLEE_SAVE(paravirt_nop),
+ .unlock_kick = paravirt_nop,
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
-index cd6de64..27c6af0 100644
+index 1b10af8..0b58cbc 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -55,6 +55,9 @@ u64 _paravirt_ident_64(u64 x)
@@ -24302,7 +24318,7 @@ index cd6de64..27c6af0 100644
void __init default_banner(void)
{
-@@ -147,15 +150,19 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
+@@ -142,15 +145,19 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
if (opfunc == NULL)
/* If there's no function, patch it with a ud2a (BUG) */
ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
@@ -24325,7 +24341,7 @@ index cd6de64..27c6af0 100644
else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
type == PARAVIRT_PATCH(pv_cpu_ops.irq_enable_sysexit) ||
-@@ -180,7 +187,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
+@@ -175,7 +182,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
if (insn_len > len || start == NULL)
insn_len = len;
else
@@ -24334,7 +24350,7 @@ index cd6de64..27c6af0 100644
return insn_len;
}
-@@ -304,7 +311,7 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
+@@ -299,7 +306,7 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
return this_cpu_read(paravirt_lazy_mode);
}
@@ -24343,7 +24359,7 @@ index cd6de64..27c6af0 100644
.name = "bare hardware",
.paravirt_enabled = 0,
.kernel_rpl = 0,
-@@ -315,16 +322,16 @@ struct pv_info pv_info = {
+@@ -310,16 +317,16 @@ struct pv_info pv_info = {
#endif
};
@@ -24358,21 +24374,21 @@ index cd6de64..27c6af0 100644
.steal_clock = native_steal_clock,
};
--struct pv_irq_ops pv_irq_ops = {
-+struct pv_irq_ops pv_irq_ops __read_only = {
+-__visible struct pv_irq_ops pv_irq_ops = {
++__visible struct pv_irq_ops pv_irq_ops __read_only = {
.save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
.restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
.irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
-@@ -336,7 +343,7 @@ struct pv_irq_ops pv_irq_ops = {
+@@ -331,7 +338,7 @@ __visible struct pv_irq_ops pv_irq_ops = {
#endif
};
--struct pv_cpu_ops pv_cpu_ops = {
-+struct pv_cpu_ops pv_cpu_ops __read_only = {
+-__visible struct pv_cpu_ops pv_cpu_ops = {
++__visible struct pv_cpu_ops pv_cpu_ops __read_only = {
.cpuid = native_cpuid,
.get_debugreg = native_get_debugreg,
.set_debugreg = native_set_debugreg,
-@@ -394,21 +401,26 @@ struct pv_cpu_ops pv_cpu_ops = {
+@@ -389,21 +396,26 @@ __visible struct pv_cpu_ops pv_cpu_ops = {
.end_context_switch = paravirt_nop,
};
@@ -24402,7 +24418,7 @@ index cd6de64..27c6af0 100644
.read_cr2 = native_read_cr2,
.write_cr2 = native_write_cr2,
-@@ -458,6 +470,7 @@ struct pv_mmu_ops pv_mmu_ops = {
+@@ -453,6 +465,7 @@ struct pv_mmu_ops pv_mmu_ops = {
.make_pud = PTE_IDENT,
.set_pgd = native_set_pgd,
@@ -24410,7 +24426,7 @@ index cd6de64..27c6af0 100644
#endif
#endif /* PAGETABLE_LEVELS >= 3 */
-@@ -478,6 +491,12 @@ struct pv_mmu_ops pv_mmu_ops = {
+@@ -473,6 +486,12 @@ struct pv_mmu_ops pv_mmu_ops = {
},
.set_fixmap = native_set_fixmap,
@@ -24463,15 +24479,15 @@ index 6c483ba..d10ce2f 100644
static struct dma_map_ops swiotlb_dma_ops = {
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
-index 83369e5..52b93f0 100644
+index c83516b..432ad6d 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -36,7 +36,8 @@
* section. Since TSS's are completely CPU-local, we want them
* on exact cacheline boundaries, to eliminate cacheline ping-pong.
*/
--DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
-+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
+-__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
++struct tss_struct init_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
+EXPORT_SYMBOL(init_tss);
#ifdef CONFIG_X86_64
@@ -24571,7 +24587,7 @@ index 83369e5..52b93f0 100644
+}
+#endif
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index f8adefc..4bce3d6 100644
+index 884f98f..ec23e04 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -65,6 +65,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
@@ -24676,7 +24692,7 @@ index f8adefc..4bce3d6 100644
}
-
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index 05646ba..0c2906d 100644
+index bb1dc51..08dda7f 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -158,10 +158,11 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
@@ -24878,7 +24894,7 @@ index 7461f50..1334029 100644
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
-index 2cb9470..ff1fd80 100644
+index a16bae3..1f65f25 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -43,11 +43,11 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
@@ -24910,7 +24926,7 @@ index 2cb9470..ff1fd80 100644
return ret;
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
-index 5f4ad27..9d96c99 100644
+index 7e920bf..cc24446 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -68,6 +68,11 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
@@ -24956,7 +24972,7 @@ index 5f4ad27..9d96c99 100644
"rm" (real_mode_header->machine_real_restart_asm),
"a" (type));
#else
-@@ -458,7 +485,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
+@@ -466,7 +493,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
* try to force a triple fault and then cycle between hitting the keyboard
* controller and doing that
*/
@@ -24965,7 +24981,7 @@ index 5f4ad27..9d96c99 100644
{
int i;
int attempt = 0;
-@@ -567,13 +594,13 @@ void native_machine_shutdown(void)
+@@ -575,13 +602,13 @@ void native_machine_shutdown(void)
#endif
}
@@ -24981,7 +24997,7 @@ index 5f4ad27..9d96c99 100644
{
pr_notice("machine restart\n");
-@@ -582,7 +609,7 @@ static void native_machine_restart(char *__unused)
+@@ -590,7 +617,7 @@ static void native_machine_restart(char *__unused)
__machine_emergency_restart(0);
}
@@ -24990,7 +25006,7 @@ index 5f4ad27..9d96c99 100644
{
/* Stop other cpus and apics */
machine_shutdown();
-@@ -592,7 +619,7 @@ static void native_machine_halt(void)
+@@ -600,7 +627,7 @@ static void native_machine_halt(void)
stop_this_cpu(NULL);
}
@@ -24999,7 +25015,7 @@ index 5f4ad27..9d96c99 100644
{
if (pm_power_off) {
if (!reboot_force)
-@@ -601,9 +628,10 @@ static void native_machine_power_off(void)
+@@ -609,9 +636,10 @@ static void native_machine_power_off(void)
}
/* A fallback in case there is no PM info available */
tboot_shutdown(TB_SHUTDOWN_HALT);
@@ -25055,7 +25071,7 @@ index 3fd2c69..16ef367 100644
1:
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 234e1e3..01cd64d 100644
+index f0de629..a4978a8f 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -110,6 +110,7 @@
@@ -25071,14 +25087,14 @@ index 234e1e3..01cd64d 100644
-#if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
--unsigned long mmu_cr4_features;
+-__visible unsigned long mmu_cr4_features;
+#ifdef CONFIG_X86_64
-+unsigned long mmu_cr4_features __read_only = X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE;
++__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE;
+#elif defined(CONFIG_X86_PAE)
-+unsigned long mmu_cr4_features __read_only = X86_CR4_PAE;
++__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PAE;
#else
--unsigned long mmu_cr4_features = X86_CR4_PAE;
-+unsigned long mmu_cr4_features __read_only;
+-__visible unsigned long mmu_cr4_features = X86_CR4_PAE;
++__visible unsigned long mmu_cr4_features __read_only;
#endif
+void set_in_cr4(unsigned long mask)
@@ -25248,7 +25264,7 @@ index 5cdff03..80fa283 100644
* Up to this point, the boot CPU has been using .init.data
* area. Reload any changed state for the boot CPU.
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
-index d859eea..44e17c4 100644
+index 9e5de68..16c53cb 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -190,7 +190,7 @@ static unsigned long align_sigframe(unsigned long sp)
@@ -25326,7 +25342,7 @@ index d859eea..44e17c4 100644
}
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
-index cdaa347..f5af55d 100644
+index 7c3a5a6..f0a8961 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -341,7 +341,7 @@ static int __init nonmi_ipi_setup(char *str)
@@ -25339,7 +25355,7 @@ index cdaa347..f5af55d 100644
.smp_prepare_cpus = native_smp_prepare_cpus,
.smp_cpus_done = native_smp_cpus_done,
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
-index aecc98a..0244a53 100644
+index 6cacab6..750636a 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -251,14 +251,18 @@ static void notrace start_secondary(void *unused)
@@ -25367,7 +25383,7 @@ index aecc98a..0244a53 100644
/*
* Check TSC synchronization with the BP:
*/
-@@ -748,6 +752,7 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
+@@ -749,6 +753,7 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
idle->thread.sp = (unsigned long) (((struct pt_regs *)
(THREAD_SIZE + task_stack_page(idle))) - 1);
per_cpu(current_task, cpu) = idle;
@@ -25375,7 +25391,7 @@ index aecc98a..0244a53 100644
#ifdef CONFIG_X86_32
/* Stack for startup_32 can be just as for start_secondary onwards */
-@@ -755,11 +760,13 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
+@@ -756,11 +761,13 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
#else
clear_tsk_thread_flag(idle, TIF_FORK);
initial_gs = per_cpu_offset(cpu);
@@ -25392,7 +25408,7 @@ index aecc98a..0244a53 100644
initial_code = (unsigned long)start_secondary;
stack_start = idle->thread.sp;
-@@ -908,6 +915,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
+@@ -909,6 +916,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
/* the FPU context is blank, nobody can own it */
__cpu_disable_lazy_restore(cpu);
@@ -25735,7 +25751,7 @@ index 30277e2..5664a29 100644
if (!(addr & ~PAGE_MASK))
return addr;
diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
-index addf7b5..f960685 100644
+index 91a4496..1730bff 100644
--- a/arch/x86/kernel/tboot.c
+++ b/arch/x86/kernel/tboot.c
@@ -221,7 +221,7 @@ static int tboot_setup_sleep(void)
@@ -25756,8 +25772,8 @@ index addf7b5..f960685 100644
shutdown();
/* should not reach here */
-@@ -301,7 +301,7 @@ static int tboot_sleep(u8 sleep_state, u32 pm1a_control, u32 pm1b_control)
- return 0;
+@@ -310,7 +310,7 @@ static int tboot_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b)
+ return -ENODEV;
}
-static atomic_t ap_wfs_count;
@@ -25765,7 +25781,7 @@ index addf7b5..f960685 100644
static int tboot_wait_for_aps(int num_aps)
{
-@@ -325,9 +325,9 @@ static int tboot_cpu_callback(struct notifier_block *nfb, unsigned long action,
+@@ -334,9 +334,9 @@ static int tboot_cpu_callback(struct notifier_block *nfb, unsigned long action,
{
switch (action) {
case CPU_DYING:
@@ -25777,7 +25793,7 @@ index addf7b5..f960685 100644
return NOTIFY_BAD;
break;
}
-@@ -413,7 +413,7 @@ static __init int tboot_late_init(void)
+@@ -422,7 +422,7 @@ static __init int tboot_late_init(void)
tboot_create_trampoline();
@@ -25864,10 +25880,10 @@ index 1c113db..287b42e 100644
static int trace_irq_vector_refcount;
static DEFINE_MUTEX(irq_vector_mutex);
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 1b23a1c..910de0d 100644
+index 8c8093b..c93f581 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
-@@ -65,7 +65,7 @@
+@@ -66,7 +66,7 @@
#include <asm/proto.h>
/* No need to be aligned, but done to keep all IDTs defined the same way. */
@@ -25876,7 +25892,7 @@ index 1b23a1c..910de0d 100644
#else
#include <asm/processor-flags.h>
#include <asm/setup.h>
-@@ -74,7 +74,7 @@ asmlinkage int system_call(void);
+@@ -75,7 +75,7 @@ asmlinkage int system_call(void);
#endif
/* Must be page-aligned because the real IDT is used in a fixmap. */
@@ -25885,7 +25901,7 @@ index 1b23a1c..910de0d 100644
DECLARE_BITMAP(used_vectors, NR_VECTORS);
EXPORT_SYMBOL_GPL(used_vectors);
-@@ -106,11 +106,11 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
+@@ -107,11 +107,11 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
}
static int __kprobes
@@ -25899,7 +25915,7 @@ index 1b23a1c..910de0d 100644
/*
* Traps 0, 1, 3, 4, and 5 should be forwarded to vm86.
* On nmi (interrupt 2), do_trap should not be called.
-@@ -123,12 +123,24 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
+@@ -124,12 +124,24 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
return -1;
}
#endif
@@ -25925,7 +25941,7 @@ index 1b23a1c..910de0d 100644
return 0;
}
-@@ -136,7 +148,7 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
+@@ -137,7 +149,7 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
}
static void __kprobes
@@ -25934,7 +25950,7 @@ index 1b23a1c..910de0d 100644
long error_code, siginfo_t *info)
{
struct task_struct *tsk = current;
-@@ -160,7 +172,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
+@@ -161,7 +173,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
printk_ratelimit()) {
pr_info("%s[%d] trap %s ip:%lx sp:%lx error:%lx",
@@ -25943,7 +25959,7 @@ index 1b23a1c..910de0d 100644
regs->ip, regs->sp, error_code);
print_vma_addr(" in ", regs->ip);
pr_cont("\n");
-@@ -276,7 +288,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
+@@ -277,7 +289,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
conditional_sti(regs);
#ifdef CONFIG_X86_32
@@ -25952,7 +25968,7 @@ index 1b23a1c..910de0d 100644
local_irq_enable();
handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code);
goto exit;
-@@ -284,18 +296,42 @@ do_general_protection(struct pt_regs *regs, long error_code)
+@@ -285,18 +297,42 @@ do_general_protection(struct pt_regs *regs, long error_code)
#endif
tsk = current;
@@ -25997,7 +26013,7 @@ index 1b23a1c..910de0d 100644
tsk->thread.error_code = error_code;
tsk->thread.trap_nr = X86_TRAP_GP;
-@@ -453,7 +489,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
+@@ -457,7 +493,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
/* It's safe to allow irq's after DR6 has been saved */
preempt_conditional_sti(regs);
@@ -26006,7 +26022,7 @@ index 1b23a1c..910de0d 100644
handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code,
X86_TRAP_DB);
preempt_conditional_cli(regs);
-@@ -468,7 +504,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
+@@ -472,7 +508,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
* We already checked v86 mode above, so we can check for kernel mode
* by just checking the CPL of CS.
*/
@@ -26015,7 +26031,7 @@ index 1b23a1c..910de0d 100644
tsk->thread.debugreg6 &= ~DR_STEP;
set_tsk_thread_flag(tsk, TIF_SINGLESTEP);
regs->flags &= ~X86_EFLAGS_TF;
-@@ -500,7 +536,7 @@ void math_error(struct pt_regs *regs, int error_code, int trapnr)
+@@ -504,7 +540,7 @@ void math_error(struct pt_regs *regs, int error_code, int trapnr)
return;
conditional_sti(regs);
@@ -26455,7 +26471,7 @@ index b014d94..e775258 100644
+EXPORT_SYMBOL(cpu_pgd);
+#endif
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
-index 5f24c71..1dadf09 100644
+index 8ce0072..431a0e7 100644
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -93,7 +93,7 @@ struct x86_cpuinit_ops x86_cpuinit = {
@@ -26467,18 +26483,18 @@ index 5f24c71..1dadf09 100644
.calibrate_tsc = native_calibrate_tsc,
.get_wallclock = mach_get_cmos_time,
.set_wallclock = mach_set_rtc_mmss,
-@@ -107,7 +107,7 @@ struct x86_platform_ops x86_platform = {
- };
-
+@@ -109,7 +109,7 @@ struct x86_platform_ops x86_platform = {
EXPORT_SYMBOL_GPL(x86_platform);
+
+ #if defined(CONFIG_PCI_MSI)
-struct x86_msi_ops x86_msi = {
+struct x86_msi_ops x86_msi __read_only = {
.setup_msi_irqs = native_setup_msi_irqs,
.compose_msi_msg = native_compose_msi_msg,
.teardown_msi_irq = native_teardown_msi_irq,
-@@ -116,7 +116,7 @@ struct x86_msi_ops x86_msi = {
- .setup_hpet_msi = default_setup_hpet_msi,
- };
+@@ -140,7 +140,7 @@ void arch_restore_msi_irqs(struct pci_dev *dev, int irq)
+ }
+ #endif
-struct x86_io_apic_ops x86_io_apic_ops = {
+struct x86_io_apic_ops x86_io_apic_ops __read_only = {
@@ -26506,7 +26522,7 @@ index 422fd82..c3687ca 100644
if ((unsigned long)buf % 64 || fx_only) {
u64 init_bv = pcntxt_mask & ~XSTATE_FPSSE;
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
-index a20ecb5..d0e2194 100644
+index b110fe6..d9c19f2 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -124,15 +124,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
@@ -26557,7 +26573,7 @@ index a20ecb5..d0e2194 100644
out:
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index afc1124..3e431f2 100644
+index 5439117..d08f3d4 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -55,7 +55,7 @@
@@ -26570,10 +26586,10 @@ index afc1124..3e431f2 100644
#define APIC_LVT_NUM 6
/* 14 is the version for Xeon and Pentium 8.4.8*/
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
-index 7769699..c8aca4a7f 100644
+index ad75d77..a679d32 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
-@@ -208,7 +208,7 @@ retry_walk:
+@@ -331,7 +331,7 @@ retry_walk:
if (unlikely(kvm_is_error_hva(host_addr)))
goto error;
@@ -26610,10 +26626,10 @@ index c0bc803..6837a50 100644
local_irq_disable();
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 064d0be..f5f758e 100644
+index 2b2fce1..da76be4 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
-@@ -1311,12 +1311,12 @@ static void vmcs_write64(unsigned long field, u64 value)
+@@ -1316,12 +1316,12 @@ static void vmcs_write64(unsigned long field, u64 value)
#endif
}
@@ -26628,7 +26644,7 @@ index 064d0be..f5f758e 100644
{
vmcs_writel(field, vmcs_readl(field) | mask);
}
-@@ -1517,7 +1517,11 @@ static void reload_tss(void)
+@@ -1522,7 +1522,11 @@ static void reload_tss(void)
struct desc_struct *descs;
descs = (void *)gdt->address;
@@ -26640,7 +26656,7 @@ index 064d0be..f5f758e 100644
load_TR_desc();
}
-@@ -1741,6 +1745,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
+@@ -1746,6 +1750,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 */
@@ -26651,7 +26667,16 @@ index 064d0be..f5f758e 100644
rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
vmx->loaded_vmcs->cpu = cpu;
-@@ -2940,8 +2948,11 @@ static __init int hardware_setup(void)
+@@ -2037,7 +2045,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
+ * reads and returns guest's timestamp counter "register"
+ * guest_tsc = host_tsc + tsc_offset -- 21.3
+ */
+-static u64 guest_read_tsc(void)
++static u64 __intentional_overflow(-1) guest_read_tsc(void)
+ {
+ u64 host_tsc, tsc_offset;
+
+@@ -2982,8 +2990,11 @@ static __init int hardware_setup(void)
if (!cpu_has_vmx_flexpriority())
flexpriority_enabled = 0;
@@ -26665,7 +26690,7 @@ index 064d0be..f5f758e 100644
if (enable_ept && !cpu_has_vmx_ept_2m_page())
kvm_disable_largepages();
-@@ -2952,13 +2963,15 @@ static __init int hardware_setup(void)
+@@ -2994,13 +3005,15 @@ static __init int hardware_setup(void)
if (!cpu_has_vmx_apicv())
enable_apicv = 0;
@@ -26685,7 +26710,7 @@ index 064d0be..f5f758e 100644
if (nested)
nested_vmx_setup_ctls_msrs();
-@@ -4081,7 +4094,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
+@@ -4127,7 +4140,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
vmcs_writel(HOST_CR4, read_cr4()); /* 22.2.3, 22.2.5 */
@@ -26696,7 +26721,7 @@ index 064d0be..f5f758e 100644
vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */
#ifdef CONFIG_X86_64
-@@ -4103,7 +4119,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
+@@ -4149,7 +4165,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;
@@ -26705,7 +26730,7 @@ index 064d0be..f5f758e 100644
rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
-@@ -7039,6 +7055,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -7191,6 +7207,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
"jmp 2f \n\t"
"1: " __ex(ASM_VMX_VMRESUME) "\n\t"
"2: "
@@ -26718,7 +26743,7 @@ index 064d0be..f5f758e 100644
/* Save guest registers, load host registers, keep flags */
"mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
"pop %0 \n\t"
-@@ -7091,6 +7113,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -7243,6 +7265,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))
@@ -26730,7 +26755,7 @@ index 064d0be..f5f758e 100644
: "cc", "memory"
#ifdef CONFIG_X86_64
, "rax", "rbx", "rdi", "rsi"
-@@ -7104,7 +7131,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -7256,7 +7283,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
if (debugctlmsr)
update_debugctlmsr(debugctlmsr);
@@ -26739,7 +26764,7 @@ index 064d0be..f5f758e 100644
/*
* The sysexit path does not restore ds/es, so we must set them to
* a reasonable value ourselves.
-@@ -7113,8 +7140,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -7265,8 +7292,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.
*/
@@ -26761,10 +26786,10 @@ index 064d0be..f5f758e 100644
vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index d21bce5..fdae9f1 100644
+index e5ca72a..83d5177 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
-@@ -1766,8 +1766,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
+@@ -1779,8 +1779,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
{
struct kvm *kvm = vcpu->kvm;
int lm = is_long_mode(vcpu);
@@ -26775,7 +26800,7 @@ index d21bce5..fdae9f1 100644
u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
: kvm->arch.xen_hvm_config.blob_size_32;
u32 page_num = data & ~PAGE_MASK;
-@@ -2650,6 +2650,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
+@@ -2663,6 +2663,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
if (n < msr_list.nmsrs)
goto out;
r = -EFAULT;
@@ -26784,7 +26809,7 @@ index d21bce5..fdae9f1 100644
if (copy_to_user(user_msr_list->indices, &msrs_to_save,
num_msrs_to_save * sizeof(u32)))
goto out;
-@@ -5344,7 +5346,7 @@ static struct notifier_block pvclock_gtod_notifier = {
+@@ -5462,7 +5464,7 @@ static struct notifier_block pvclock_gtod_notifier = {
};
#endif
@@ -26792,12 +26817,12 @@ index d21bce5..fdae9f1 100644
+int kvm_arch_init(const void *opaque)
{
int r;
- struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque;
+ struct kvm_x86_ops *ops = opaque;
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
-index 6a22c19..1763f04 100644
+index bdf8532..f63c587 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
-@@ -1201,9 +1201,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
+@@ -1206,9 +1206,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
* Rebooting also tells the Host we're finished, but the RESTART flag tells the
* Launcher to reboot us.
*/
@@ -29118,7 +29143,7 @@ index a63efd6..ccecad8 100644
ret
CFI_ENDPROC
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
-index 3eb18ac..6890bc3 100644
+index 3eb18ac..4b22130 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -42,11 +42,13 @@ do { \
@@ -29197,7 +29222,7 @@ index 3eb18ac..6890bc3 100644
" addl $-64, %0\n"
" addl $64, %4\n"
" addl $64, %3\n"
-@@ -149,10 +151,12 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
+@@ -149,10 +151,116 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
" shrl $2, %0\n"
" andl $3, %%eax\n"
" cld\n"
@@ -29207,13 +29232,55 @@ index 3eb18ac..6890bc3 100644
"37: rep; movsb\n"
"100:\n"
+ __COPYUSER_RESTORE_ES
- ".section .fixup,\"ax\"\n"
- "101: lea 0(%%eax,%0,4),%0\n"
- " jmp 100b\n"
-@@ -202,46 +206,150 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
- }
-
- static unsigned long
++ ".section .fixup,\"ax\"\n"
++ "101: lea 0(%%eax,%0,4),%0\n"
++ " jmp 100b\n"
++ ".previous\n"
++ _ASM_EXTABLE(1b,100b)
++ _ASM_EXTABLE(2b,100b)
++ _ASM_EXTABLE(3b,100b)
++ _ASM_EXTABLE(4b,100b)
++ _ASM_EXTABLE(5b,100b)
++ _ASM_EXTABLE(6b,100b)
++ _ASM_EXTABLE(7b,100b)
++ _ASM_EXTABLE(8b,100b)
++ _ASM_EXTABLE(9b,100b)
++ _ASM_EXTABLE(10b,100b)
++ _ASM_EXTABLE(11b,100b)
++ _ASM_EXTABLE(12b,100b)
++ _ASM_EXTABLE(13b,100b)
++ _ASM_EXTABLE(14b,100b)
++ _ASM_EXTABLE(15b,100b)
++ _ASM_EXTABLE(16b,100b)
++ _ASM_EXTABLE(17b,100b)
++ _ASM_EXTABLE(18b,100b)
++ _ASM_EXTABLE(19b,100b)
++ _ASM_EXTABLE(20b,100b)
++ _ASM_EXTABLE(21b,100b)
++ _ASM_EXTABLE(22b,100b)
++ _ASM_EXTABLE(23b,100b)
++ _ASM_EXTABLE(24b,100b)
++ _ASM_EXTABLE(25b,100b)
++ _ASM_EXTABLE(26b,100b)
++ _ASM_EXTABLE(27b,100b)
++ _ASM_EXTABLE(28b,100b)
++ _ASM_EXTABLE(29b,100b)
++ _ASM_EXTABLE(30b,100b)
++ _ASM_EXTABLE(31b,100b)
++ _ASM_EXTABLE(32b,100b)
++ _ASM_EXTABLE(33b,100b)
++ _ASM_EXTABLE(34b,100b)
++ _ASM_EXTABLE(35b,100b)
++ _ASM_EXTABLE(36b,100b)
++ _ASM_EXTABLE(37b,100b)
++ _ASM_EXTABLE(99b,101b)
++ : "=&c"(size), "=&D" (d0), "=&S" (d1)
++ : "1"(to), "2"(from), "0"(size)
++ : "eax", "edx", "memory");
++ return size;
++}
++
++static unsigned long
+__generic_copy_from_user_intel(void *to, const void __user *from, unsigned long size)
+{
+ int d0, d1;
@@ -29269,57 +29336,10 @@ index 3eb18ac..6890bc3 100644
+ "36: movl %%eax, %0\n"
+ "37: rep; "__copyuser_seg" movsb\n"
+ "100:\n"
-+ ".section .fixup,\"ax\"\n"
-+ "101: lea 0(%%eax,%0,4),%0\n"
-+ " jmp 100b\n"
-+ ".previous\n"
-+ _ASM_EXTABLE(1b,100b)
-+ _ASM_EXTABLE(2b,100b)
-+ _ASM_EXTABLE(3b,100b)
-+ _ASM_EXTABLE(4b,100b)
-+ _ASM_EXTABLE(5b,100b)
-+ _ASM_EXTABLE(6b,100b)
-+ _ASM_EXTABLE(7b,100b)
-+ _ASM_EXTABLE(8b,100b)
-+ _ASM_EXTABLE(9b,100b)
-+ _ASM_EXTABLE(10b,100b)
-+ _ASM_EXTABLE(11b,100b)
-+ _ASM_EXTABLE(12b,100b)
-+ _ASM_EXTABLE(13b,100b)
-+ _ASM_EXTABLE(14b,100b)
-+ _ASM_EXTABLE(15b,100b)
-+ _ASM_EXTABLE(16b,100b)
-+ _ASM_EXTABLE(17b,100b)
-+ _ASM_EXTABLE(18b,100b)
-+ _ASM_EXTABLE(19b,100b)
-+ _ASM_EXTABLE(20b,100b)
-+ _ASM_EXTABLE(21b,100b)
-+ _ASM_EXTABLE(22b,100b)
-+ _ASM_EXTABLE(23b,100b)
-+ _ASM_EXTABLE(24b,100b)
-+ _ASM_EXTABLE(25b,100b)
-+ _ASM_EXTABLE(26b,100b)
-+ _ASM_EXTABLE(27b,100b)
-+ _ASM_EXTABLE(28b,100b)
-+ _ASM_EXTABLE(29b,100b)
-+ _ASM_EXTABLE(30b,100b)
-+ _ASM_EXTABLE(31b,100b)
-+ _ASM_EXTABLE(32b,100b)
-+ _ASM_EXTABLE(33b,100b)
-+ _ASM_EXTABLE(34b,100b)
-+ _ASM_EXTABLE(35b,100b)
-+ _ASM_EXTABLE(36b,100b)
-+ _ASM_EXTABLE(37b,100b)
-+ _ASM_EXTABLE(99b,101b)
-+ : "=&c"(size), "=&D" (d0), "=&S" (d1)
-+ : "1"(to), "2"(from), "0"(size)
-+ : "eax", "edx", "memory");
-+ return size;
-+}
-+
-+static unsigned long __size_overflow(3)
- __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
- {
+ ".section .fixup,\"ax\"\n"
+ "101: lea 0(%%eax,%0,4),%0\n"
+ " jmp 100b\n"
+@@ -207,41 +315,41 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
int d0, d1;
__asm__ __volatile__(
" .align 2,0x90\n"
@@ -29391,15 +29411,7 @@ index 3eb18ac..6890bc3 100644
"8:\n"
".section .fixup,\"ax\"\n"
"9: lea 0(%%eax,%0,4),%0\n"
-@@ -298,48 +406,48 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
- * hyoshiok@miraclelinux.com
- */
-
--static unsigned long __copy_user_zeroing_intel_nocache(void *to,
-+static unsigned long __size_overflow(3) __copy_user_zeroing_intel_nocache(void *to,
- const void __user *from, unsigned long size)
- {
- int d0, d1;
+@@ -305,41 +413,41 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
__asm__ __volatile__(
" .align 2,0x90\n"
@@ -29471,15 +29483,7 @@ index 3eb18ac..6890bc3 100644
"8:\n"
".section .fixup,\"ax\"\n"
"9: lea 0(%%eax,%0,4),%0\n"
-@@ -392,48 +500,48 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
- return size;
- }
-
--static unsigned long __copy_user_intel_nocache(void *to,
-+static unsigned long __size_overflow(3) __copy_user_intel_nocache(void *to,
- const void __user *from, unsigned long size)
- {
- int d0, d1;
+@@ -399,41 +507,41 @@ static unsigned long __copy_user_intel_nocache(void *to,
__asm__ __volatile__(
" .align 2,0x90\n"
@@ -29721,7 +29725,7 @@ index 3eb18ac..6890bc3 100644
+EXPORT_SYMBOL(set_fs);
+#endif
diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
-index 906fea3..0194a18 100644
+index c905e89..01ab928 100644
--- a/arch/x86/lib/usercopy_64.c
+++ b/arch/x86/lib/usercopy_64.c
@@ -18,6 +18,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
@@ -29764,7 +29768,7 @@ index 906fea3..0194a18 100644
@@ -69,11 +70,13 @@ EXPORT_SYMBOL(copy_in_user);
* it is not necessary to optimize tail handling.
*/
- unsigned long
+ __visible unsigned long
-copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest)
+copy_user_handle_tail(char __user *to, char __user *from, unsigned long len, unsigned zerorest)
{
@@ -29850,7 +29854,7 @@ index 903ec1e..c4166b2 100644
}
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index 654be4a..a4a3da1 100644
+index 3aaeffc..42ea9fb 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -14,11 +14,18 @@
@@ -30104,7 +30108,7 @@ index 654be4a..a4a3da1 100644
code = BUS_MCEERR_AR;
}
#endif
-@@ -898,6 +1010,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
+@@ -889,6 +1001,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
return 1;
}
@@ -30204,7 +30208,7 @@ index 654be4a..a4a3da1 100644
/*
* Handle a spurious fault caused by a stale TLB entry.
*
-@@ -964,6 +1169,9 @@ int show_unhandled_signals = 1;
+@@ -955,6 +1160,9 @@ int show_unhandled_signals = 1;
static inline int
access_error(unsigned long error_code, struct vm_area_struct *vma)
{
@@ -30214,7 +30218,7 @@ index 654be4a..a4a3da1 100644
if (error_code & PF_WRITE) {
/* write, present and write, not present: */
if (unlikely(!(vma->vm_flags & VM_WRITE)))
-@@ -992,7 +1200,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
+@@ -983,7 +1191,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
if (error_code & PF_USER)
return false;
@@ -30223,24 +30227,10 @@ index 654be4a..a4a3da1 100644
return false;
return true;
-@@ -1008,18 +1216,33 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
- {
- struct vm_area_struct *vma;
- struct task_struct *tsk;
-- unsigned long address;
- struct mm_struct *mm;
- int fault;
- int write = error_code & PF_WRITE;
- unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE |
- (write ? FAULT_FLAG_WRITE : 0);
-
-- tsk = current;
-- mm = tsk->mm;
--
+@@ -1010,6 +1218,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
/* Get the faulting address: */
-- address = read_cr2();
-+ unsigned long address = read_cr2();
-+
+ address = read_cr2();
+
+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
+ if (!user_mode(regs) && address < 2 * pax_user_shadow_base) {
+ if (!search_exception_tables(regs->ip)) {
@@ -30257,12 +30247,10 @@ index 654be4a..a4a3da1 100644
+ }
+#endif
+
-+ tsk = current;
-+ mm = tsk->mm;
-
/*
* Detect and handle instructions that would cause a page fault for
-@@ -1080,7 +1303,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
+ * both a tracked kernel page and a userspace page.
+@@ -1069,7 +1293,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
* User-mode registers count as a user access even for any
* potential system fault or CPU buglet:
*/
@@ -30270,8 +30258,8 @@ index 654be4a..a4a3da1 100644
+ if (user_mode(regs)) {
local_irq_enable();
error_code |= PF_USER;
- } else {
-@@ -1142,6 +1365,11 @@ retry:
+ flags |= FAULT_FLAG_USER;
+@@ -1135,6 +1359,11 @@ retry:
might_sleep();
}
@@ -30283,7 +30271,7 @@ index 654be4a..a4a3da1 100644
vma = find_vma(mm, address);
if (unlikely(!vma)) {
bad_area(regs, error_code, address);
-@@ -1153,18 +1381,24 @@ retry:
+@@ -1146,18 +1375,24 @@ retry:
bad_area(regs, error_code, address);
return;
}
@@ -30319,7 +30307,7 @@ index 654be4a..a4a3da1 100644
if (unlikely(expand_stack(vma, address))) {
bad_area(regs, error_code, address);
return;
-@@ -1230,3 +1464,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
+@@ -1231,3 +1466,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
__do_page_fault(regs, error_code);
exception_exit(prev_state);
}
@@ -30642,10 +30630,10 @@ index 4500142..53a363c 100644
return (void *)vaddr;
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
-index 7e73e8c..11d3b86 100644
+index 9d980d8..6bbfacb 100644
--- a/arch/x86/mm/hugetlbpage.c
+++ b/arch/x86/mm/hugetlbpage.c
-@@ -84,23 +84,30 @@ int pud_huge(pud_t pud)
+@@ -92,23 +92,30 @@ int pmd_huge_support(void)
#ifdef HAVE_ARCH_HUGETLB_UNMAPPED_AREA
static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
unsigned long addr, unsigned long len,
@@ -30679,7 +30667,7 @@ index 7e73e8c..11d3b86 100644
{
struct hstate *h = hstate_file(file);
struct vm_unmapped_area_info info;
-@@ -112,6 +119,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
+@@ -120,6 +127,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
info.high_limit = current->mm->mmap_base;
info.align_mask = PAGE_MASK & ~huge_page_mask(h);
info.align_offset = 0;
@@ -30687,7 +30675,7 @@ index 7e73e8c..11d3b86 100644
addr = vm_unmapped_area(&info);
/*
-@@ -124,6 +132,12 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
+@@ -132,6 +140,12 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
VM_BUG_ON(addr != -ENOMEM);
info.flags = 0;
info.low_limit = TASK_UNMAPPED_BASE;
@@ -30700,7 +30688,7 @@ index 7e73e8c..11d3b86 100644
info.high_limit = TASK_SIZE;
addr = vm_unmapped_area(&info);
}
-@@ -138,10 +152,20 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -146,10 +160,20 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
struct hstate *h = hstate_file(file);
struct mm_struct *mm = current->mm;
struct vm_area_struct *vma;
@@ -30722,7 +30710,7 @@ index 7e73e8c..11d3b86 100644
return -ENOMEM;
if (flags & MAP_FIXED) {
-@@ -150,19 +174,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
+@@ -158,19 +182,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
return addr;
}
@@ -31364,7 +31352,7 @@ index 7b179b4..6bd17777 100644
return (void *)vaddr;
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
-index 0215e2c..1c62dab 100644
+index 799580c..72f9fe0 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -97,7 +97,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
@@ -32128,7 +32116,7 @@ index 90555bf..f5f1828 100644
}
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
-index 282375f..e03a98f 100644
+index ae699b3..f1b2ad2 100644
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -48,7 +48,11 @@ void leave_mm(int cpu)
@@ -32300,7 +32288,7 @@ index 877b9a1..a8ecf42 100644
+ pax_force_retaddr
ret
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
-index 79c216a..08d39cc 100644
+index 516593e..29d3c55 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -50,13 +50,90 @@ static inline u8 *emit_code(u8 *ptr, u32 bytes, unsigned int len)
@@ -32586,18 +32574,19 @@ index 79c216a..08d39cc 100644
fp->bpf_func = (void *)image;
}
out:
-@@ -776,9 +883,7 @@ void bpf_jit_free(struct sk_filter *fp)
+@@ -776,10 +883,9 @@ static void bpf_jit_free_deferred(struct work_struct *work)
{
- if (fp->bpf_func != sk_run_filter) {
- unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
-- struct bpf_binary_header *header = (void *)addr;
--
-- set_memory_rw(addr, header->pages);
-- module_free(NULL, header);
-+ set_memory_rw(addr, 1);
-+ module_free_exec(NULL, (void *)addr);
- }
+ struct sk_filter *fp = container_of(work, struct sk_filter, work);
+ unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
+- struct bpf_binary_header *header = (void *)addr;
+
+- set_memory_rw(addr, header->pages);
+- module_free(NULL, header);
++ set_memory_rw(addr, 1);
++ module_free_exec(NULL, (void *)addr);
+ kfree(fp);
}
+
diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
index d6aa6e8..266395a 100644
--- a/arch/x86/oprofile/backtrace.c
@@ -32635,7 +32624,7 @@ index d6aa6e8..266395a 100644
if (depth)
dump_trace(NULL, regs, (unsigned long *)stack, 0,
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
-index 48768df..ba9143c 100644
+index 6890d84..1dad1f1 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -23,6 +23,7 @@
@@ -32661,7 +32650,7 @@ index 48768df..ba9143c 100644
mux_init(ops);
diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
-index b2b9443..be58856 100644
+index 50d86c0..7985318 100644
--- a/arch/x86/oprofile/op_model_amd.c
+++ b/arch/x86/oprofile/op_model_amd.c
@@ -519,9 +519,11 @@ static int op_amd_init(struct oprofile_operations *ops)
@@ -32758,11 +32747,11 @@ index 372e9b8..e775a6c 100644
.callback = fix_broken_hp_bios_irq9,
.ident = "HP Pavilion N5400 Series Laptop",
diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
-index 6eb18c4..20d83de 100644
+index 903fded..94b0d88 100644
--- a/arch/x86/pci/mrst.c
+++ b/arch/x86/pci/mrst.c
-@@ -238,7 +238,9 @@ int __init pci_mrst_init(void)
- printk(KERN_INFO "Intel MID platform detected, using MID PCI ops\n");
+@@ -241,7 +241,9 @@ int __init pci_mrst_init(void)
+ pr_info("Intel MID platform detected, using MID PCI ops\n");
pci_mmcfg_late_init();
pcibios_enable_irq = mrst_pci_irq_enable;
- pci_root_ops = pci_mrst_ops;
@@ -33351,7 +33340,7 @@ index 4c07cca..2c8427d 100644
ret
ENDPROC(efi_call6)
diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
-index 47fe66f..6206449 100644
+index 3ca5957..7909c18 100644
--- a/arch/x86/platform/mrst/mrst.c
+++ b/arch/x86/platform/mrst/mrst.c
@@ -78,13 +78,15 @@ struct sfi_rtc_table_entry sfi_mrtc_array[SFI_MRTC_MAX];
@@ -33386,7 +33375,7 @@ index d6ee929..3637cb5 100644
.getproplen = olpc_dt_getproplen,
.getproperty = olpc_dt_getproperty,
diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
-index 1cf5b30..fd45732 100644
+index 424f4c9..f2a2988 100644
--- a/arch/x86/power/cpu.c
+++ b/arch/x86/power/cpu.c
@@ -137,11 +137,8 @@ static void do_fpu_end(void)
@@ -33949,7 +33938,7 @@ index 431e875..cbb23f3 100644
-}
-__setup("vdso=", vdso_setup);
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 193097e..7590269 100644
+index fa6ade7..73da73a5 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -123,8 +123,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
@@ -33961,7 +33950,7 @@ index 193097e..7590269 100644
RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
__read_mostly int xen_have_vector_callback;
EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-@@ -542,8 +540,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
+@@ -541,8 +539,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
{
unsigned long va = dtr->address;
unsigned int size = dtr->size + 1;
@@ -33971,7 +33960,7 @@ index 193097e..7590269 100644
int f;
/*
-@@ -591,8 +588,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
+@@ -590,8 +587,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
{
unsigned long va = dtr->address;
unsigned int size = dtr->size + 1;
@@ -33981,7 +33970,7 @@ index 193097e..7590269 100644
int f;
/*
-@@ -600,7 +596,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
+@@ -599,7 +595,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
* 8-byte entries, or 16 4k pages..
*/
@@ -33990,7 +33979,7 @@ index 193097e..7590269 100644
BUG_ON(va & ~PAGE_MASK);
for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
-@@ -985,7 +981,7 @@ static u32 xen_safe_apic_wait_icr_idle(void)
+@@ -988,7 +984,7 @@ static u32 xen_safe_apic_wait_icr_idle(void)
return 0;
}
@@ -33999,7 +33988,7 @@ index 193097e..7590269 100644
{
apic->read = xen_apic_read;
apic->write = xen_apic_write;
-@@ -1290,30 +1286,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
+@@ -1293,30 +1289,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
#endif
};
@@ -34037,7 +34026,7 @@ index 193097e..7590269 100644
{
if (pm_power_off)
pm_power_off();
-@@ -1464,7 +1460,17 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1467,7 +1463,17 @@ asmlinkage void __init xen_start_kernel(void)
__userpte_alloc_gfp &= ~__GFP_HIGHMEM;
/* Work out if we support NX */
@@ -34056,7 +34045,7 @@ index 193097e..7590269 100644
xen_setup_features();
-@@ -1495,13 +1501,6 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1498,13 +1504,6 @@ asmlinkage void __init xen_start_kernel(void)
machine_ops = xen_machine_ops;
@@ -34071,9 +34060,18 @@ index 193097e..7590269 100644
#ifdef CONFIG_ACPI_NUMA
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index fdc3ba2..3daee39 100644
+index fdc3ba2..23cae00 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
+@@ -379,7 +379,7 @@ static pteval_t pte_mfn_to_pfn(pteval_t val)
+ return val;
+ }
+
+-static pteval_t pte_pfn_to_mfn(pteval_t val)
++static pteval_t __intentional_overflow(-1) pte_pfn_to_mfn(pteval_t val)
+ {
+ if (val & _PAGE_PRESENT) {
+ unsigned long pfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT;
@@ -1894,6 +1894,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
/* L3_k[510] -> level2_kernel_pgt
* L3_i[511] -> level2_fixmap_pgt */
@@ -34114,22 +34112,30 @@ index fdc3ba2..3daee39 100644
.alloc_pud = xen_alloc_pmd_init,
.release_pud = xen_release_pmd_init,
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
-index b81c88e..2cbe7b8 100644
+index 31d0475..51af671 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
-@@ -272,11 +272,6 @@ static void __init xen_smp_prepare_boot_cpu(void)
- {
- BUG_ON(smp_processor_id() != 0);
+@@ -274,17 +274,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
native_smp_prepare_boot_cpu();
+
+ if (xen_pv_domain()) {
+- /* We've switched to the "real" per-cpu gdt, so make sure the
+- old memory can be recycled */
+- make_lowmem_page_readwrite(xen_initial_gdt);
-
-- /* We've switched to the "real" per-cpu gdt, so make sure the
-- old memory can be recycled */
-- make_lowmem_page_readwrite(xen_initial_gdt);
--
- xen_filter_cpu_maps();
- xen_setup_vcpu_info_placement();
- }
-@@ -346,7 +341,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
+ #ifdef CONFIG_X86_32
+ /*
+ * Xen starts us with XEN_FLAT_RING1_DS, but linux code
+ * expects __USER_DS
+ */
+- loadsegment(ds, __USER_DS);
+- loadsegment(es, __USER_DS);
++ loadsegment(ds, __KERNEL_DS);
++ loadsegment(es, __KERNEL_DS);
+ #endif
+
+ xen_filter_cpu_maps();
+@@ -364,7 +360,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
ctxt->user_regs.ss = __KERNEL_DS;
#ifdef CONFIG_X86_32
ctxt->user_regs.fs = __KERNEL_PERCPU;
@@ -34138,7 +34144,7 @@ index b81c88e..2cbe7b8 100644
#else
ctxt->gs_base_kernel = per_cpu_offset(cpu);
#endif
-@@ -356,8 +351,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
+@@ -374,8 +370,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
{
ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
@@ -34149,7 +34155,7 @@ index b81c88e..2cbe7b8 100644
xen_copy_trap_info(ctxt->trap_ctxt);
-@@ -402,13 +397,12 @@ static int xen_cpu_up(unsigned int cpu, struct task_struct *idle)
+@@ -420,13 +416,12 @@ static int xen_cpu_up(unsigned int cpu, struct task_struct *idle)
int rc;
per_cpu(current_task, cpu) = idle;
@@ -34165,15 +34171,15 @@ index b81c88e..2cbe7b8 100644
#endif
xen_setup_runstate_info(cpu);
xen_setup_timer(cpu);
-@@ -678,7 +672,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
+@@ -702,7 +697,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
void __init xen_smp_init(void)
{
- smp_ops = xen_smp_ops;
+ memcpy((void *)&smp_ops, &xen_smp_ops, sizeof smp_ops);
xen_fill_possible_map();
- xen_init_spinlocks();
}
+
diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
index 33ca6e4..0ded929 100644
--- a/arch/x86/xen/xen-asm_32.S
@@ -34222,7 +34228,7 @@ index 7faed58..ba4427c 100644
mov %rsi,xen_start_info
mov $init_thread_union+THREAD_SIZE,%rsp
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 86782c5..fa272c8 100644
+index 95f8c61..611d6e8 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -10,8 +10,6 @@
@@ -34296,19 +34302,19 @@ index af00795..2bb8105 100644
#define XCHAL_ICACHE_SIZE 32768 /* I-cache size in bytes or 0 */
#define XCHAL_DCACHE_SIZE 32768 /* D-cache size in bytes or 0 */
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
-index 290792a..416f287 100644
+index 4e491d9..c8e18e4 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
-@@ -808,7 +808,7 @@ static void blkcg_css_free(struct cgroup *cgroup)
-
- static struct cgroup_subsys_state *blkcg_css_alloc(struct cgroup *cgroup)
+@@ -812,7 +812,7 @@ static void blkcg_css_free(struct cgroup_subsys_state *css)
+ static struct cgroup_subsys_state *
+ blkcg_css_alloc(struct cgroup_subsys_state *parent_css)
{
- static atomic64_t id_seq = ATOMIC64_INIT(0);
+ static atomic64_unchecked_t id_seq = ATOMIC64_INIT(0);
struct blkcg *blkcg;
- struct cgroup *parent = cgroup->parent;
-@@ -823,7 +823,7 @@ static struct cgroup_subsys_state *blkcg_css_alloc(struct cgroup *cgroup)
+ if (!parent_css) {
+@@ -826,7 +826,7 @@ blkcg_css_alloc(struct cgroup_subsys_state *parent_css)
blkcg->cfq_weight = CFQ_WEIGHT_DEFAULT;
blkcg->cfq_leaf_weight = CFQ_WEIGHT_DEFAULT;
@@ -34388,7 +34394,7 @@ index 420a5a9..23834aa 100644
if (blk_verify_command(rq->cmd, has_write_perm))
return -EPERM;
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
-index 7e5d474..0cf0017 100644
+index fbd5a67..5d631b5 100644
--- a/block/compat_ioctl.c
+++ b/block/compat_ioctl.c
@@ -341,7 +341,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
@@ -34401,7 +34407,7 @@ index 7e5d474..0cf0017 100644
err = -EFAULT;
goto out;
diff --git a/block/genhd.c b/block/genhd.c
-index dadf42b..48dc887 100644
+index 791f419..89f21c4 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -467,21 +467,24 @@ static char *bdevt_str(dev_t devt, char *buf)
@@ -34433,10 +34439,10 @@ index dadf42b..48dc887 100644
EXPORT_SYMBOL(blk_unregister_region);
diff --git a/block/partitions/efi.c b/block/partitions/efi.c
-index c85fc89..51e690b 100644
+index a8287b4..241a48e 100644
--- a/block/partitions/efi.c
+++ b/block/partitions/efi.c
-@@ -234,14 +234,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
+@@ -292,14 +292,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
if (!gpt)
return NULL;
@@ -34455,12 +34461,21 @@ index c85fc89..51e690b 100644
- return NULL;
-
if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
- (u8 *) pte,
- count) < count) {
+ (u8 *) pte, count) < count) {
+ kfree(pte);
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
-index a5ffcc9..3cedc9c 100644
+index a5ffcc9..e057498 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
+@@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
+ return put_user(0, p);
+ }
+
+-static int sg_get_timeout(struct request_queue *q)
++static int __intentional_overflow(-1) sg_get_timeout(struct request_queue *q)
+ {
+ return jiffies_to_clock_t(q->sg_timeout);
+ }
@@ -224,8 +224,20 @@ EXPORT_SYMBOL(blk_verify_command);
static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
struct sg_io_hdr *hdr, fmode_t mode)
@@ -34582,10 +34597,10 @@ index 33dc6a0..4b24b47 100644
EXPORT_SYMBOL_GPL(cper_next_record_id);
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
-index ec9b57d..9682b3a 100644
+index 8ec37bb..b0716e5 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
-@@ -478,7 +478,7 @@ static void __ghes_print_estatus(const char *pfx,
+@@ -498,7 +498,7 @@ static void __ghes_print_estatus(const char *pfx,
const struct acpi_hest_generic *generic,
const struct acpi_hest_generic_status *estatus)
{
@@ -34594,7 +34609,7 @@ index ec9b57d..9682b3a 100644
unsigned int curr_seqno;
char pfx_seq[64];
-@@ -489,7 +489,7 @@ static void __ghes_print_estatus(const char *pfx,
+@@ -509,7 +509,7 @@ static void __ghes_print_estatus(const char *pfx,
else
pfx = KERN_ERR;
}
@@ -34604,24 +34619,24 @@ index ec9b57d..9682b3a 100644
printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n",
pfx_seq, generic->header.source_id);
diff --git a/drivers/acpi/bgrt.c b/drivers/acpi/bgrt.c
-index be60399..778b33e8 100644
+index a83e3c6..c3d617f 100644
--- a/drivers/acpi/bgrt.c
+++ b/drivers/acpi/bgrt.c
-@@ -87,8 +87,10 @@ static int __init bgrt_init(void)
+@@ -86,8 +86,10 @@ static int __init bgrt_init(void)
+ if (!bgrt_image)
return -ENODEV;
- sysfs_bin_attr_init(&image_attr);
-- image_attr.private = bgrt_image;
-- image_attr.size = bgrt_image_size;
+- bin_attr_image.private = bgrt_image;
+- bin_attr_image.size = bgrt_image_size;
+ pax_open_kernel();
-+ *(void **)&image_attr.private = bgrt_image;
-+ *(size_t *)&image_attr.size = bgrt_image_size;
++ *(void **)&bin_attr_image.private = bgrt_image;
++ *(size_t *)&bin_attr_image.size = bgrt_image_size;
+ pax_close_kernel();
bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
if (!bgrt_kobj)
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
-index cb96296..b81293b 100644
+index 9515f18..4b149c9 100644
--- a/drivers/acpi/blacklist.c
+++ b/drivers/acpi/blacklist.c
@@ -52,7 +52,7 @@ struct acpi_blacklist_item {
@@ -34633,7 +34648,7 @@ index cb96296..b81293b 100644
/*
* POLICY: If *anything* doesn't work, put it on the blacklist.
-@@ -193,7 +193,7 @@ static int __init dmi_disable_osi_win7(const struct dmi_system_id *d)
+@@ -199,7 +199,7 @@ static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
return 0;
}
@@ -34674,10 +34689,10 @@ index 05306a5..733d1f0 100644
static void delete_gpe_attr_array(void)
{
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
-index acfd0f7..e5acb08 100644
+index aaac4fb..e325c00 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
-@@ -1231,7 +1231,7 @@ int ahci_kick_engine(struct ata_port *ap)
+@@ -1239,7 +1239,7 @@ int ahci_kick_engine(struct ata_port *ap)
}
EXPORT_SYMBOL_GPL(ahci_kick_engine);
@@ -34687,7 +34702,7 @@ index acfd0f7..e5acb08 100644
unsigned long timeout_msec)
{
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index c24354d..335c975 100644
+index 83b1a9f..005b1ec 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -98,7 +98,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
@@ -34699,7 +34714,7 @@ index c24354d..335c975 100644
struct ata_force_param {
const char *name;
-@@ -4792,7 +4792,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4808,7 +4808,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
struct ata_port *ap;
unsigned int tag;
@@ -34708,7 +34723,7 @@ index c24354d..335c975 100644
ap = qc->ap;
qc->flags = 0;
-@@ -4808,7 +4808,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4824,7 +4824,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
struct ata_port *ap;
struct ata_link *link;
@@ -34717,7 +34732,7 @@ index c24354d..335c975 100644
WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
ap = qc->ap;
link = qc->dev->link;
-@@ -5927,6 +5927,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5943,6 +5943,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
return;
spin_lock(&lock);
@@ -34725,7 +34740,7 @@ index c24354d..335c975 100644
for (cur = ops->inherits; cur; cur = cur->inherits) {
void **inherit = (void **)cur;
-@@ -5940,8 +5941,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5956,8 +5957,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
if (IS_ERR(*pp))
*pp = NULL;
@@ -34736,7 +34751,7 @@ index c24354d..335c975 100644
spin_unlock(&lock);
}
-@@ -6134,7 +6136,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
+@@ -6150,7 +6152,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
/* give ports names and add SCSI hosts */
for (i = 0; i < host->n_ports; i++) {
@@ -34746,10 +34761,10 @@ index c24354d..335c975 100644
}
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index b1e880a..8cf82e1 100644
+index db6dfcf..770d1f0 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
-@@ -4104,7 +4104,7 @@ int ata_sas_port_init(struct ata_port *ap)
+@@ -4113,7 +4113,7 @@ int ata_sas_port_init(struct ata_port *ap)
if (rc)
return rc;
@@ -34759,7 +34774,7 @@ index b1e880a..8cf82e1 100644
}
EXPORT_SYMBOL_GPL(ata_sas_port_init);
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
-index 577d902b..cb4781e 100644
+index 45b5ab3..98446b8 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -53,7 +53,7 @@ enum {
@@ -34772,7 +34787,7 @@ index 577d902b..cb4781e 100644
extern int libata_fua;
extern int libata_noacpi;
diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
-index 848ed32..132f39d 100644
+index 853f610..97d24da 100644
--- a/drivers/ata/pata_arasan_cf.c
+++ b/drivers/ata/pata_arasan_cf.c
@@ -865,7 +865,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
@@ -35039,10 +35054,10 @@ index 204814e..cede831 100644
fore200e->tx_sat++;
DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
-index 507362a..a845e57 100644
+index 8557adc..3fb5d55 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c
-@@ -1698,7 +1698,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
+@@ -1691,7 +1691,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
hprintk("HBUF_ERR! (cid 0x%x)\n", cid);
@@ -35051,7 +35066,7 @@ index 507362a..a845e57 100644
goto return_host_buffers;
}
-@@ -1725,7 +1725,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
+@@ -1718,7 +1718,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
RBRQ_LEN_ERR(he_dev->rbrq_head)
? "LEN_ERR" : "",
vcc->vpi, vcc->vci);
@@ -35060,7 +35075,7 @@ index 507362a..a845e57 100644
goto return_host_buffers;
}
-@@ -1777,7 +1777,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
+@@ -1770,7 +1770,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
vcc->push(vcc, skb);
spin_lock(&he_dev->global_lock);
@@ -35069,7 +35084,7 @@ index 507362a..a845e57 100644
return_host_buffers:
++pdus_assembled;
-@@ -2103,7 +2103,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
+@@ -2096,7 +2096,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
tpd->vcc->pop(tpd->vcc, tpd->skb);
else
dev_kfree_skb_any(tpd->skb);
@@ -35078,7 +35093,7 @@ index 507362a..a845e57 100644
}
pci_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
return;
-@@ -2515,7 +2515,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -2508,7 +2508,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
vcc->pop(vcc, skb);
else
dev_kfree_skb_any(skb);
@@ -35087,7 +35102,7 @@ index 507362a..a845e57 100644
return -EINVAL;
}
-@@ -2526,7 +2526,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -2519,7 +2519,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
vcc->pop(vcc, skb);
else
dev_kfree_skb_any(skb);
@@ -35096,7 +35111,7 @@ index 507362a..a845e57 100644
return -EINVAL;
}
#endif
-@@ -2538,7 +2538,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -2531,7 +2531,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
vcc->pop(vcc, skb);
else
dev_kfree_skb_any(skb);
@@ -35105,7 +35120,7 @@ index 507362a..a845e57 100644
spin_unlock_irqrestore(&he_dev->global_lock, flags);
return -ENOMEM;
}
-@@ -2580,7 +2580,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -2573,7 +2573,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
vcc->pop(vcc, skb);
else
dev_kfree_skb_any(skb);
@@ -35114,7 +35129,7 @@ index 507362a..a845e57 100644
spin_unlock_irqrestore(&he_dev->global_lock, flags);
return -ENOMEM;
}
-@@ -2611,7 +2611,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -2604,7 +2604,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
__enqueue_tpd(he_dev, tpd, cid);
spin_unlock_irqrestore(&he_dev->global_lock, flags);
@@ -35462,10 +35477,10 @@ index fa7d701..1e404c7 100644
lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
-index 6587dc2..149833d 100644
+index 5aca5f4..ce3a6b0 100644
--- a/drivers/atm/nicstar.c
+++ b/drivers/atm/nicstar.c
-@@ -1641,7 +1641,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
if ((vc = (vc_map *) vcc->dev_data) == NULL) {
printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
card->index);
@@ -35474,7 +35489,7 @@ index 6587dc2..149833d 100644
dev_kfree_skb_any(skb);
return -EINVAL;
}
-@@ -1649,7 +1649,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1648,7 +1648,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
if (!vc->tx) {
printk("nicstar%d: Trying to transmit on a non-tx VC.\n",
card->index);
@@ -35483,7 +35498,7 @@ index 6587dc2..149833d 100644
dev_kfree_skb_any(skb);
return -EINVAL;
}
-@@ -1657,14 +1657,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1656,14 +1656,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
printk("nicstar%d: Only AAL0 and AAL5 are supported.\n",
card->index);
@@ -35500,7 +35515,7 @@ index 6587dc2..149833d 100644
dev_kfree_skb_any(skb);
return -EINVAL;
}
-@@ -1712,11 +1712,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
+@@ -1711,11 +1711,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
}
if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
@@ -35514,7 +35529,7 @@ index 6587dc2..149833d 100644
return 0;
}
-@@ -2033,14 +2033,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2032,14 +2032,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
printk
("nicstar%d: Can't allocate buffers for aal0.\n",
card->index);
@@ -35531,7 +35546,7 @@ index 6587dc2..149833d 100644
dev_kfree_skb_any(sb);
break;
}
-@@ -2055,7 +2055,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2054,7 +2054,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
ATM_SKB(sb)->vcc = vcc;
__net_timestamp(sb);
vcc->push(vcc, sb);
@@ -35540,7 +35555,7 @@ index 6587dc2..149833d 100644
cell += ATM_CELL_PAYLOAD;
}
-@@ -2072,7 +2072,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2071,7 +2071,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
if (iovb == NULL) {
printk("nicstar%d: Out of iovec buffers.\n",
card->index);
@@ -35549,7 +35564,7 @@ index 6587dc2..149833d 100644
recycle_rx_buf(card, skb);
return;
}
-@@ -2096,7 +2096,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2095,7 +2095,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
small or large buffer itself. */
} else if (NS_PRV_IOVCNT(iovb) >= NS_MAX_IOVECS) {
printk("nicstar%d: received too big AAL5 SDU.\n", card->index);
@@ -35558,7 +35573,7 @@ index 6587dc2..149833d 100644
recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
NS_MAX_IOVECS);
NS_PRV_IOVCNT(iovb) = 0;
-@@ -2116,7 +2116,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2115,7 +2115,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
("nicstar%d: Expected a small buffer, and this is not one.\n",
card->index);
which_list(card, skb);
@@ -35567,7 +35582,7 @@ index 6587dc2..149833d 100644
recycle_rx_buf(card, skb);
vc->rx_iov = NULL;
recycle_iov_buf(card, iovb);
-@@ -2129,7 +2129,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2128,7 +2128,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
("nicstar%d: Expected a large buffer, and this is not one.\n",
card->index);
which_list(card, skb);
@@ -35576,7 +35591,7 @@ index 6587dc2..149833d 100644
recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
NS_PRV_IOVCNT(iovb));
vc->rx_iov = NULL;
-@@ -2152,7 +2152,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2151,7 +2151,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
printk(" - PDU size mismatch.\n");
else
printk(".\n");
@@ -35585,7 +35600,7 @@ index 6587dc2..149833d 100644
recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
NS_PRV_IOVCNT(iovb));
vc->rx_iov = NULL;
-@@ -2166,7 +2166,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2165,7 +2165,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
/* skb points to a small buffer */
if (!atm_charge(vcc, skb->truesize)) {
push_rxbufs(card, skb);
@@ -35594,7 +35609,7 @@ index 6587dc2..149833d 100644
} else {
skb_put(skb, len);
dequeue_sm_buf(card, skb);
-@@ -2176,7 +2176,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2175,7 +2175,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
ATM_SKB(skb)->vcc = vcc;
__net_timestamp(skb);
vcc->push(vcc, skb);
@@ -35603,7 +35618,7 @@ index 6587dc2..149833d 100644
}
} else if (NS_PRV_IOVCNT(iovb) == 2) { /* One small plus one large buffer */
struct sk_buff *sb;
-@@ -2187,7 +2187,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2186,7 +2186,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
if (len <= NS_SMBUFSIZE) {
if (!atm_charge(vcc, sb->truesize)) {
push_rxbufs(card, sb);
@@ -35612,7 +35627,7 @@ index 6587dc2..149833d 100644
} else {
skb_put(sb, len);
dequeue_sm_buf(card, sb);
-@@ -2197,7 +2197,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2196,7 +2196,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
ATM_SKB(sb)->vcc = vcc;
__net_timestamp(sb);
vcc->push(vcc, sb);
@@ -35621,7 +35636,7 @@ index 6587dc2..149833d 100644
}
push_rxbufs(card, skb);
-@@ -2206,7 +2206,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2205,7 +2205,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
if (!atm_charge(vcc, skb->truesize)) {
push_rxbufs(card, skb);
@@ -35630,7 +35645,7 @@ index 6587dc2..149833d 100644
} else {
dequeue_lg_buf(card, skb);
#ifdef NS_USE_DESTRUCTORS
-@@ -2219,7 +2219,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2218,7 +2218,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
ATM_SKB(skb)->vcc = vcc;
__net_timestamp(skb);
vcc->push(vcc, skb);
@@ -35639,7 +35654,7 @@ index 6587dc2..149833d 100644
}
push_rxbufs(card, sb);
-@@ -2240,7 +2240,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2239,7 +2239,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
printk
("nicstar%d: Out of huge buffers.\n",
card->index);
@@ -35648,7 +35663,7 @@ index 6587dc2..149833d 100644
recycle_iovec_rx_bufs(card,
(struct iovec *)
iovb->data,
-@@ -2291,7 +2291,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2290,7 +2290,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
card->hbpool.count++;
} else
dev_kfree_skb_any(hb);
@@ -35657,7 +35672,7 @@ index 6587dc2..149833d 100644
} else {
/* Copy the small buffer to the huge buffer */
sb = (struct sk_buff *)iov->iov_base;
-@@ -2328,7 +2328,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
+@@ -2327,7 +2327,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
#endif /* NS_USE_DESTRUCTORS */
__net_timestamp(hb);
vcc->push(vcc, hb);
@@ -35783,10 +35798,10 @@ index 969c3c2..9b72956 100644
}
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
-index d414331..b4dd4ba 100644
+index 4c289ab..de1c333 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
-@@ -1163,7 +1163,7 @@ int subsys_interface_register(struct subsys_interface *sif)
+@@ -1193,7 +1193,7 @@ int subsys_interface_register(struct subsys_interface *sif)
return -EINVAL;
mutex_lock(&subsys->p->mutex);
@@ -35795,7 +35810,7 @@ index d414331..b4dd4ba 100644
if (sif->add_dev) {
subsys_dev_iter_init(&iter, subsys, NULL, NULL);
while ((dev = subsys_dev_iter_next(&iter)))
-@@ -1188,7 +1188,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
+@@ -1218,7 +1218,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
subsys = sif->subsys;
mutex_lock(&subsys->p->mutex);
@@ -35833,10 +35848,10 @@ index 7413d06..79155fa 100644
while (1) {
spin_lock(&req_lock);
diff --git a/drivers/base/node.c b/drivers/base/node.c
-index 7616a77c..8f57f51 100644
+index bc9f43b..29703b8 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
-@@ -626,7 +626,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
+@@ -620,7 +620,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
struct node_attr {
struct device_attribute attr;
enum node_states state;
@@ -35868,7 +35883,7 @@ index bfb8955..42c9b9a 100644
if (IS_ERR_OR_NULL(genpd))
diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
-index a53ebd2..8f73eeb 100644
+index 03e089a..0e9560c 100644
--- a/drivers/base/power/sysfs.c
+++ b/drivers/base/power/sysfs.c
@@ -185,7 +185,7 @@ static ssize_t rtpm_status_show(struct device *dev,
@@ -35942,7 +35957,7 @@ index e8d11b6..7b1b36f 100644
}
EXPORT_SYMBOL_GPL(unregister_syscore_ops);
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
-index 90a4e6b..002d10f 100644
+index edfa251..1734d4d 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -3011,7 +3011,7 @@ static void start_io(ctlr_info_t *h)
@@ -36002,7 +36017,7 @@ index 90a4e6b..002d10f 100644
h->transMethod = CFGTBL_Trans_Performant;
return;
-@@ -4320,7 +4320,7 @@ static int cciss_pci_init(ctlr_info_t *h)
+@@ -4327,7 +4327,7 @@ static int cciss_pci_init(ctlr_info_t *h)
if (prod_index < 0)
return -ENODEV;
h->product_name = products[prod_index].product_name;
@@ -36011,7 +36026,7 @@ index 90a4e6b..002d10f 100644
if (cciss_board_disabled(h)) {
dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
-@@ -5052,7 +5052,7 @@ reinit_after_soft_reset:
+@@ -5059,7 +5059,7 @@ reinit_after_soft_reset:
}
/* make sure the board interrupts are off */
@@ -36020,7 +36035,7 @@ index 90a4e6b..002d10f 100644
rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
if (rc)
goto clean2;
-@@ -5102,7 +5102,7 @@ reinit_after_soft_reset:
+@@ -5109,7 +5109,7 @@ reinit_after_soft_reset:
* fake ones to scoop up any residual completions.
*/
spin_lock_irqsave(&h->lock, flags);
@@ -36029,7 +36044,7 @@ index 90a4e6b..002d10f 100644
spin_unlock_irqrestore(&h->lock, flags);
free_irq(h->intr[h->intr_mode], h);
rc = cciss_request_irq(h, cciss_msix_discard_completions,
-@@ -5122,9 +5122,9 @@ reinit_after_soft_reset:
+@@ -5129,9 +5129,9 @@ reinit_after_soft_reset:
dev_info(&h->pdev->dev, "Board READY.\n");
dev_info(&h->pdev->dev,
"Waiting for stale completions to drain.\n");
@@ -36041,7 +36056,7 @@ index 90a4e6b..002d10f 100644
rc = controller_reset_failed(h->cfgtable);
if (rc)
-@@ -5147,7 +5147,7 @@ reinit_after_soft_reset:
+@@ -5154,7 +5154,7 @@ reinit_after_soft_reset:
cciss_scsi_setup(h);
/* Turn the interrupts on so we can service requests */
@@ -36050,7 +36065,7 @@ index 90a4e6b..002d10f 100644
/* Get the firmware version */
inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
-@@ -5219,7 +5219,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
+@@ -5226,7 +5226,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
kfree(flush_buf);
if (return_code != IO_OK)
dev_warn(&h->pdev->dev, "Error flushing cache\n");
@@ -36404,18 +36419,27 @@ index 40e7155..df5c79a 100644
file_end_write(file);
if (likely(bw == len))
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
-index f5d0ea1..c62380a 100644
+index 5618847..5a46f3b 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
-@@ -84,7 +84,7 @@
- #define MAX_SPEED 0xffff
+@@ -108,7 +108,7 @@ static int pkt_seq_show(struct seq_file *m, void *p);
+
+ static sector_t get_zone(sector_t sector, struct pktcdvd_device *pd)
+ {
+- return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1);
++ return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1UL);
+ }
- #define ZONE(sector, pd) (((sector) + (pd)->offset) & \
-- ~(sector_t)((pd)->settings.size - 1))
-+ ~(sector_t)((pd)->settings.size - 1UL))
+ /*
+@@ -1897,7 +1897,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
+ return -EROFS;
+ }
+ pd->settings.fp = ti.fp;
+- pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1);
++ pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1UL);
- static DEFINE_MUTEX(pktcdvd_mutex);
- static struct pktcdvd_device *pkt_devs[MAX_WRITERS];
+ if (ti.nwa_v) {
+ pd->nwa = be32_to_cpu(ti.next_writable);
diff --git a/drivers/bluetooth/btwilink.c b/drivers/bluetooth/btwilink.c
index 60abf59..80789e1 100644
--- a/drivers/bluetooth/btwilink.c
@@ -36430,10 +36454,10 @@ index 60abf59..80789e1 100644
int err;
diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
-index 7332889..9ece19e 100644
+index 2009266..7be9ca2 100644
--- a/drivers/bus/arm-cci.c
+++ b/drivers/bus/arm-cci.c
-@@ -419,7 +419,7 @@ static int __init cci_probe(void)
+@@ -405,7 +405,7 @@ static int __init cci_probe(void)
nb_cci_ports = cci_config->nb_ace + cci_config->nb_ace_lite;
@@ -36602,7 +36626,7 @@ index 86fe45c..c0ea948 100644
}
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
-index 4445fa1..7c6de37 100644
+index ec4e10f..f2a763b 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -420,7 +420,7 @@ struct ipmi_smi {
@@ -36636,10 +36660,10 @@ index 4445fa1..7c6de37 100644
intf->proc_dir = NULL;
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
-index af4b23f..79806fc 100644
+index 15e4a60..b046093 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
-@@ -275,7 +275,7 @@ struct smi_info {
+@@ -280,7 +280,7 @@ struct smi_info {
unsigned char slave_addr;
/* Counters and things for the proc filesystem. */
@@ -36648,7 +36672,7 @@ index af4b23f..79806fc 100644
struct task_struct *thread;
-@@ -284,9 +284,9 @@ struct smi_info {
+@@ -289,9 +289,9 @@ struct smi_info {
};
#define smi_inc_stat(smi, stat) \
@@ -36660,7 +36684,7 @@ index af4b23f..79806fc 100644
#define SI_MAX_PARMS 4
-@@ -3258,7 +3258,7 @@ static int try_smi_init(struct smi_info *new_smi)
+@@ -3324,7 +3324,7 @@ static int try_smi_init(struct smi_info *new_smi)
atomic_set(&new_smi->req_events, 0);
new_smi->run_to_completion = 0;
for (i = 0; i < SI_NUM_STATS; i++)
@@ -36828,7 +36852,7 @@ index 9df78e2..01ba9ae 100644
*ppos = i;
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
-index 5c5cc00..ac9edb7 100644
+index d39cca6..8c1e269 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -2345,9 +2345,9 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
@@ -36903,10 +36927,10 @@ index 5c5cc00..ac9edb7 100644
if (cmd != SIOCWANDEV)
diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 92e6c67..c640ec3 100644
+index 7a744d3..35a177ee 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
-@@ -272,8 +272,13 @@
+@@ -269,8 +269,13 @@
/*
* Configuration information
*/
@@ -36920,7 +36944,7 @@ index 92e6c67..c640ec3 100644
#define SEC_XFER_SIZE 512
#define EXTRACT_SIZE 10
-@@ -313,10 +318,17 @@ static struct poolinfo {
+@@ -310,10 +315,17 @@ static struct poolinfo {
int poolwords;
int tap1, tap2, tap3, tap4, tap5;
} poolinfo_table[] = {
@@ -36938,7 +36962,7 @@ index 92e6c67..c640ec3 100644
#if 0
/* x^2048 + x^1638 + x^1231 + x^819 + x^411 + x + 1 -- 115 */
{ 2048, 1638, 1231, 819, 411, 1 },
-@@ -524,8 +536,8 @@ static void _mix_pool_bytes(struct entropy_store *r, const void *in,
+@@ -521,8 +533,8 @@ static void _mix_pool_bytes(struct entropy_store *r, const void *in,
input_rotate += i ? 7 : 14;
}
@@ -36949,7 +36973,7 @@ index 92e6c67..c640ec3 100644
smp_wmb();
if (out)
-@@ -1032,7 +1044,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
+@@ -1029,7 +1041,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
extract_buf(r, tmp);
i = min_t(int, nbytes, EXTRACT_SIZE);
@@ -36958,7 +36982,7 @@ index 92e6c67..c640ec3 100644
ret = -EFAULT;
break;
}
-@@ -1368,7 +1380,7 @@ EXPORT_SYMBOL(generate_random_uuid);
+@@ -1365,7 +1377,7 @@ EXPORT_SYMBOL(generate_random_uuid);
#include <linux/sysctl.h>
static int min_read_thresh = 8, min_write_thresh;
@@ -36967,7 +36991,7 @@ index 92e6c67..c640ec3 100644
static int max_write_thresh = INPUT_POOL_WORDS * 32;
static char sysctl_bootid[16];
-@@ -1384,7 +1396,7 @@ static char sysctl_bootid[16];
+@@ -1381,7 +1393,7 @@ static char sysctl_bootid[16];
static int proc_do_uuid(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp, loff_t *ppos)
{
@@ -36977,7 +37001,7 @@ index 92e6c67..c640ec3 100644
uuid = table->data;
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
-index bf2349db..5456d53 100644
+index 7cc1fe22..b602d6b 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -54,6 +54,7 @@
@@ -36997,7 +37021,7 @@ index bf2349db..5456d53 100644
int model;
struct input_dev *input_jog_dev;
struct input_dev *input_key_dev;
-@@ -897,7 +898,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
+@@ -892,7 +893,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
static int sonypi_misc_release(struct inode *inode, struct file *file)
{
mutex_lock(&sonypi_device.lock);
@@ -37006,7 +37030,7 @@ index bf2349db..5456d53 100644
mutex_unlock(&sonypi_device.lock);
return 0;
}
-@@ -906,9 +907,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
+@@ -901,9 +902,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
{
mutex_lock(&sonypi_device.lock);
/* Flush input queue on first open */
@@ -37069,7 +37093,7 @@ index 84ddc55..1d32f1e 100644
return 0;
}
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
-index fc45567..fa2a590 100644
+index b79cf3e..de172d64f 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -682,7 +682,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count,
@@ -37104,7 +37128,7 @@ index a33f46f..a720eed 100644
composite = kzalloc(sizeof(*composite), GFP_KERNEL);
if (!composite) {
diff --git a/drivers/clk/socfpga/clk.c b/drivers/clk/socfpga/clk.c
-index 5bb848c..f1d4fc9 100644
+index 81dd31a..ef5c542 100644
--- a/drivers/clk/socfpga/clk.c
+++ b/drivers/clk/socfpga/clk.c
@@ -22,6 +22,7 @@
@@ -37138,10 +37162,10 @@ index 5bb848c..f1d4fc9 100644
.get_parent = socfpga_clk_get_parent,
.set_parent = socfpga_clk_set_parent,
diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
-index 3926402..37b580d 100644
+index 506fd23..01a593f 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
-@@ -173,7 +173,7 @@ static ssize_t show_global_boost(struct kobject *kobj,
+@@ -172,7 +172,7 @@ static ssize_t show_global_boost(struct kobject *kobj,
return sprintf(buf, "%u\n", boost_enabled);
}
@@ -37150,7 +37174,7 @@ index 3926402..37b580d 100644
show_global_boost,
store_global_boost);
-@@ -722,8 +722,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+@@ -721,8 +721,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu);
per_cpu(acfreq_data, cpu) = data;
@@ -37164,7 +37188,7 @@ index 3926402..37b580d 100644
result = acpi_processor_register_performance(data->acpi_data, cpu);
if (result)
-@@ -851,7 +854,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+@@ -850,7 +853,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
break;
case ACPI_ADR_SPACE_FIXED_HARDWARE:
@@ -37175,25 +37199,11 @@ index 3926402..37b580d 100644
policy->cur = get_cur_freq_on_cpu(cpu);
break;
default:
-@@ -862,8 +867,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
- acpi_processor_notify_smm(THIS_MODULE);
-
- /* Check for APERF/MPERF support in hardware */
-- if (boot_cpu_has(X86_FEATURE_APERFMPERF))
-- acpi_cpufreq_driver.getavg = cpufreq_get_measured_perf;
-+ if (boot_cpu_has(X86_FEATURE_APERFMPERF)) {
-+ pax_open_kernel();
-+ *(void **)&acpi_cpufreq_driver.getavg = cpufreq_get_measured_perf;
-+ pax_close_kernel();
-+ }
-
- pr_debug("CPU%u - ACPI performance management activated.\n", cpu);
- for (i = 0; i < perf->state_count; i++)
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
-index f0a5e2b..0a7ee46 100644
+index 04548f7..457a342 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
-@@ -1959,7 +1959,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
+@@ -2069,7 +2069,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
return NOTIFY_OK;
}
@@ -37202,7 +37212,7 @@ index f0a5e2b..0a7ee46 100644
.notifier_call = cpufreq_cpu_callback,
};
-@@ -1991,8 +1991,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
+@@ -2101,8 +2101,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
pr_debug("trying to register driver %s\n", driver_data->name);
@@ -37217,10 +37227,10 @@ index f0a5e2b..0a7ee46 100644
write_lock_irqsave(&cpufreq_driver_lock, flags);
if (cpufreq_driver) {
diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
-index e59afaa..a53a3ff 100644
+index 0806c31..6a73276 100644
--- a/drivers/cpufreq/cpufreq_governor.c
+++ b/drivers/cpufreq/cpufreq_governor.c
-@@ -191,7 +191,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
+@@ -187,7 +187,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
struct dbs_data *dbs_data;
struct od_cpu_dbs_info_s *od_dbs_info = NULL;
struct cs_cpu_dbs_info_s *cs_dbs_info = NULL;
@@ -37229,7 +37239,7 @@ index e59afaa..a53a3ff 100644
struct od_dbs_tuners *od_tuners = NULL;
struct cs_dbs_tuners *cs_tuners = NULL;
struct cpu_dbs_common_info *cpu_cdbs;
-@@ -257,7 +257,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
+@@ -253,7 +253,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
if ((cdata->governor == GOV_CONSERVATIVE) &&
(!policy->governor->initialized)) {
@@ -37238,7 +37248,7 @@ index e59afaa..a53a3ff 100644
cpufreq_register_notifier(cs_ops->notifier_block,
CPUFREQ_TRANSITION_NOTIFIER);
-@@ -277,7 +277,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
+@@ -273,7 +273,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
if ((dbs_data->cdata->governor == GOV_CONSERVATIVE) &&
(policy->governor->initialized == 1)) {
@@ -37248,10 +37258,10 @@ index e59afaa..a53a3ff 100644
cpufreq_unregister_notifier(cs_ops->notifier_block,
CPUFREQ_TRANSITION_NOTIFIER);
diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
-index d5f12b4..eb30af1 100644
+index 88cd39f..87f0393 100644
--- a/drivers/cpufreq/cpufreq_governor.h
+++ b/drivers/cpufreq/cpufreq_governor.h
-@@ -204,7 +204,7 @@ struct common_dbs_data {
+@@ -202,7 +202,7 @@ struct common_dbs_data {
void (*exit)(struct dbs_data *dbs_data);
/* Governor specific ops, see below */
@@ -37259,21 +37269,21 @@ index d5f12b4..eb30af1 100644
+ const void *gov_ops;
};
- /* Governer Per policy data */
-@@ -224,7 +224,7 @@ struct od_ops {
+ /* Governor Per policy data */
+@@ -222,7 +222,7 @@ struct od_ops {
unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
unsigned int freq_next, unsigned int relation);
- void (*freq_increase)(struct cpufreq_policy *p, unsigned int freq);
+ void (*freq_increase)(struct cpufreq_policy *policy, unsigned int freq);
-};
+} __no_const;
struct cs_ops {
struct notifier_block *notifier_block;
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
-index c087347..989aa2e 100644
+index 32f26f6..feb657b 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
-@@ -560,7 +560,7 @@ static void od_exit(struct dbs_data *dbs_data)
+@@ -522,7 +522,7 @@ static void od_exit(struct dbs_data *dbs_data)
define_get_cpu_dbs_routines(od_cpu_dbs_info);
@@ -37282,7 +37292,7 @@ index c087347..989aa2e 100644
.powersave_bias_init_cpu = ondemand_powersave_bias_init_cpu,
.powersave_bias_target = generic_powersave_bias_target,
.freq_increase = dbs_freq_increase,
-@@ -615,14 +615,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
+@@ -577,14 +577,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
(struct cpufreq_policy *, unsigned int, unsigned int),
unsigned int powersave_bias)
{
@@ -37304,10 +37314,10 @@ index c087347..989aa2e 100644
}
EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
-index d37568c..fbb19a1 100644
+index 4cf0d28..5830372 100644
--- a/drivers/cpufreq/cpufreq_stats.c
+++ b/drivers/cpufreq/cpufreq_stats.c
-@@ -365,7 +365,7 @@ static int cpufreq_stat_cpu_callback(struct notifier_block *nfb,
+@@ -352,7 +352,7 @@ static int cpufreq_stat_cpu_callback(struct notifier_block *nfb,
}
/* priority=1 so this will get called before cpufreq_remove_dev */
@@ -37317,7 +37327,7 @@ index d37568c..fbb19a1 100644
.priority = 1,
};
diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
-index 9ee7817..17b658e 100644
+index 2f0a2a6..93d728e 100644
--- a/drivers/cpufreq/p4-clockmod.c
+++ b/drivers/cpufreq/p4-clockmod.c
@@ -160,10 +160,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
@@ -37349,7 +37359,7 @@ index 9ee7817..17b658e 100644
if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
-index 880ee29..2445bc6 100644
+index ac76b48..2445bc6 100644
--- a/drivers/cpufreq/sparc-us3-cpufreq.c
+++ b/drivers/cpufreq/sparc-us3-cpufreq.c
@@ -18,14 +18,12 @@
@@ -37396,7 +37406,7 @@ index 880ee29..2445bc6 100644
static int __init us3_freq_init(void)
{
unsigned long manuf, impl, ver;
-@@ -208,57 +219,15 @@ static int __init us3_freq_init(void)
+@@ -208,55 +219,15 @@ static int __init us3_freq_init(void)
(impl == CHEETAH_IMPL ||
impl == CHEETAH_PLUS_IMPL ||
impl == JAGUAR_IMPL ||
@@ -37404,12 +37414,11 @@ index 880ee29..2445bc6 100644
- struct cpufreq_driver *driver;
-
- ret = -ENOMEM;
-- driver = kzalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
+- driver = kzalloc(sizeof(*driver), GFP_KERNEL);
- if (!driver)
- goto err_out;
-
-- us3_freq_table = kzalloc(
-- (NR_CPUS * sizeof(struct us3_freq_percpu_info)),
+- us3_freq_table = kzalloc((NR_CPUS * sizeof(*us3_freq_table)),
- GFP_KERNEL);
- if (!us3_freq_table)
- goto err_out;
@@ -37419,7 +37428,6 @@ index 880ee29..2445bc6 100644
- driver->target = us3_freq_target;
- driver->get = us3_freq_get;
- driver->exit = us3_freq_cpu_exit;
-- driver->owner = THIS_MODULE,
- strcpy(driver->name, "UltraSPARC-III");
-
- cpufreq_us3_driver = driver;
@@ -37458,7 +37466,7 @@ index 880ee29..2445bc6 100644
MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
-index 0915e71..53376ed 100644
+index f897d51..15da295 100644
--- a/drivers/cpufreq/speedstep-centrino.c
+++ b/drivers/cpufreq/speedstep-centrino.c
@@ -353,8 +353,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
@@ -37476,10 +37484,10 @@ index 0915e71..53376ed 100644
if (policy->cpu != 0)
return -ENODEV;
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
-index fdc432f..98e64e2 100644
+index d75040d..4738ca5 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
-@@ -254,7 +254,7 @@ static int poll_idle(struct cpuidle_device *dev,
+@@ -252,7 +252,7 @@ static int poll_idle(struct cpuidle_device *dev,
static void poll_idle_init(struct cpuidle_driver *drv)
{
@@ -37511,10 +37519,10 @@ index ea2f8e7..70ac501 100644
}
diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
-index 428754a..8bdf9cc 100644
+index 8739cc0..dc859d0 100644
--- a/drivers/cpuidle/sysfs.c
+++ b/drivers/cpuidle/sysfs.c
-@@ -131,7 +131,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
+@@ -134,7 +134,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
NULL
};
@@ -37546,7 +37554,7 @@ index 12fea3e..1e28f47 100644
err = pci_request_regions(pdev, name);
if (err)
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
-index e94e619..f7e249c 100644
+index c99c00d..990a4b2 100644
--- a/drivers/devfreq/devfreq.c
+++ b/drivers/devfreq/devfreq.c
@@ -607,7 +607,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
@@ -37567,11 +37575,11 @@ index e94e619..f7e249c 100644
err_out:
mutex_unlock(&devfreq_list_lock);
-diff --git a/drivers/dma/sh/shdma.c b/drivers/dma/sh/shdma.c
-index 5039fbc..841169f 100644
---- a/drivers/dma/sh/shdma.c
-+++ b/drivers/dma/sh/shdma.c
-@@ -488,7 +488,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
+diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
+index 1069e88..dfcd642 100644
+--- a/drivers/dma/sh/shdmac.c
++++ b/drivers/dma/sh/shdmac.c
+@@ -511,7 +511,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
return ret;
}
@@ -37597,10 +37605,10 @@ index 211021d..201d47f 100644
EXPORT_SYMBOL_GPL(edac_device_alloc_index);
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
-index e7c32c4..6397af1 100644
+index 9f7e0e60..348c875 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
-@@ -148,7 +148,7 @@ static const char * const edac_caps[] = {
+@@ -150,7 +150,7 @@ static const char * const edac_caps[] = {
struct dev_ch_attribute {
struct device_attribute attr;
int channel;
@@ -37609,7 +37617,7 @@ index e7c32c4..6397af1 100644
#define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
struct dev_ch_attribute dev_attr_legacy_##_name = \
-@@ -1005,14 +1005,16 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
+@@ -1007,14 +1007,16 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
}
if (mci->set_sdram_scrub_rate || mci->get_sdram_scrub_rate) {
@@ -37800,7 +37808,7 @@ index de4aa40..49ab1f2 100644
static ssize_t show_immediate(struct device *dev,
struct device_attribute *dattr, char *buf)
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
-index 28a94c7..58da63a 100644
+index e5af0e3..d318058 100644
--- a/drivers/firewire/core-transaction.c
+++ b/drivers/firewire/core-transaction.c
@@ -38,6 +38,7 @@
@@ -37837,22 +37845,10 @@ index 94a58a0..f5eba42 100644
container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
-index 232fa8f..386c255 100644
+index fa0affb..aa448eb 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
-@@ -504,11 +504,6 @@ void __init dmi_scan_machine(void)
- }
- }
- else {
-- /*
-- * no iounmap() for that ioremap(); it would be a no-op, but
-- * it's so early in setup that sucker gets confused into doing
-- * what it shouldn't if we actually call it.
-- */
- p = dmi_ioremap(0xF0000, 0x10000);
- if (p == NULL)
- goto error;
-@@ -806,7 +801,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
+@@ -791,7 +791,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
if (buf == NULL)
return -1;
@@ -37916,7 +37912,7 @@ index 2a90ba6..07f3733 100644
ret = sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr);
diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
-index 2729e3d..f9deca1 100644
+index 814addb..0937d7f 100644
--- a/drivers/gpio/gpio-ich.c
+++ b/drivers/gpio/gpio-ich.c
@@ -71,7 +71,7 @@ struct ichx_desc {
@@ -37942,10 +37938,10 @@ index 9902732..64b62dd 100644
return -EINVAL;
}
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
-index 6a64749..0767a9f 100644
+index c722c3b..2ec6040 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
-@@ -322,7 +322,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
+@@ -328,7 +328,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
struct drm_crtc *tmp;
int crtc_mask = 1;
@@ -37955,10 +37951,19 @@ index 6a64749..0767a9f 100644
dev = crtc->dev;
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
-index 6dd7173..32d755c 100644
+index fe58d08..07bc38e 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
-@@ -307,7 +307,7 @@ module_exit(drm_core_exit);
+@@ -186,7 +186,7 @@ static void drm_legacy_dev_reinit(struct drm_device *dev)
+ atomic_set(&dev->vma_count, 0);
+
+ for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
+- atomic_set(&dev->counts[i], 0);
++ atomic_set_unchecked(&dev->counts[i], 0);
+
+ dev->sigdata.lock = NULL;
+
+@@ -302,7 +302,7 @@ module_exit(drm_core_exit);
/**
* Copy and IOCTL return string to user space
*/
@@ -37967,7 +37972,7 @@ index 6dd7173..32d755c 100644
{
int len;
-@@ -377,7 +377,7 @@ long drm_ioctl(struct file *filp,
+@@ -372,7 +372,7 @@ long drm_ioctl(struct file *filp,
struct drm_file *file_priv = filp->private_data;
struct drm_device *dev;
const struct drm_ioctl_desc *ioctl = NULL;
@@ -37976,7 +37981,7 @@ index 6dd7173..32d755c 100644
unsigned int nr = DRM_IOCTL_NR(cmd);
int retcode = -EINVAL;
char stack_kdata[128];
-@@ -390,7 +390,7 @@ long drm_ioctl(struct file *filp,
+@@ -385,7 +385,7 @@ long drm_ioctl(struct file *filp,
return -ENODEV;
atomic_inc(&dev->ioctl_count);
@@ -37986,19 +37991,10 @@ index 6dd7173..32d755c 100644
if ((nr >= DRM_CORE_IOCTL_COUNT) &&
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
-index 3a24385..4e426e0 100644
+index 3f84277..c627c54 100644
--- a/drivers/gpu/drm/drm_fops.c
+++ b/drivers/gpu/drm/drm_fops.c
-@@ -71,7 +71,7 @@ static int drm_setup(struct drm_device * dev)
- }
-
- for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
-- atomic_set(&dev->counts[i], 0);
-+ atomic_set_unchecked(&dev->counts[i], 0);
-
- dev->sigdata.lock = NULL;
-
-@@ -135,7 +135,7 @@ int drm_open(struct inode *inode, struct file *filp)
+@@ -97,7 +97,7 @@ int drm_open(struct inode *inode, struct file *filp)
if (drm_device_is_unplugged(dev))
return -ENODEV;
@@ -38007,7 +38003,7 @@ index 3a24385..4e426e0 100644
need_setup = 1;
mutex_lock(&dev->struct_mutex);
old_imapping = inode->i_mapping;
-@@ -151,7 +151,7 @@ int drm_open(struct inode *inode, struct file *filp)
+@@ -113,7 +113,7 @@ int drm_open(struct inode *inode, struct file *filp)
retcode = drm_open_helper(inode, filp, dev);
if (retcode)
goto err_undo;
@@ -38016,7 +38012,7 @@ index 3a24385..4e426e0 100644
if (need_setup) {
retcode = drm_setup(dev);
if (retcode)
-@@ -166,7 +166,7 @@ err_undo:
+@@ -128,7 +128,7 @@ err_undo:
iput(container_of(dev->dev_mapping, struct inode, i_data));
dev->dev_mapping = old_mapping;
mutex_unlock(&dev->struct_mutex);
@@ -38025,7 +38021,7 @@ index 3a24385..4e426e0 100644
return retcode;
}
EXPORT_SYMBOL(drm_open);
-@@ -456,7 +456,7 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -405,7 +405,7 @@ int drm_release(struct inode *inode, struct file *filp)
mutex_lock(&drm_global_mutex);
@@ -38034,7 +38030,7 @@ index 3a24385..4e426e0 100644
if (dev->driver->preclose)
dev->driver->preclose(dev, file_priv);
-@@ -465,10 +465,10 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -414,10 +414,10 @@ int drm_release(struct inode *inode, struct file *filp)
* Begin inline drm_release
*/
@@ -38047,7 +38043,7 @@ index 3a24385..4e426e0 100644
/* Release any auth tokens that might point to this file_priv,
(do that under the drm_global_mutex) */
-@@ -565,8 +565,8 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -516,8 +516,8 @@ int drm_release(struct inode *inode, struct file *filp)
* End inline drm_release
*/
@@ -38120,7 +38116,7 @@ index f731116..629842c 100644
item->object = NULL;
}
diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
-index d4b20ce..77a8d41 100644
+index 5329832..b503f49 100644
--- a/drivers/gpu/drm/drm_info.c
+++ b/drivers/gpu/drm/drm_info.c
@@ -75,10 +75,14 @@ int drm_vm_info(struct seq_file *m, void *data)
@@ -38151,7 +38147,7 @@ index d4b20ce..77a8d41 100644
type = "??";
else
type = types[map->type];
-@@ -253,7 +257,11 @@ int drm_vma_info(struct seq_file *m, void *data)
+@@ -257,7 +261,11 @@ int drm_vma_info(struct seq_file *m, void *data)
vma->vm_flags & VM_MAYSHARE ? 's' : 'p',
vma->vm_flags & VM_LOCKED ? 'l' : '-',
vma->vm_flags & VM_IO ? 'i' : '-',
@@ -38215,19 +38211,6 @@ index 2f4c434..dd12cd2 100644
else
ret = drm_ioctl(filp, cmd, arg);
-diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
-index ffd7a7b..a64643e 100644
---- a/drivers/gpu/drm/drm_ioctl.c
-+++ b/drivers/gpu/drm/drm_ioctl.c
-@@ -265,7 +265,7 @@ int drm_getstats(struct drm_device *dev, void *data,
- stats->data[i].value =
- (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
- else
-- stats->data[i].value = atomic_read(&dev->counts[i]);
-+ stats->data[i].value = atomic_read_unchecked(&dev->counts[i]);
- stats->data[i].type = dev->types[i];
- }
-
diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
index d752c96..fe08455 100644
--- a/drivers/gpu/drm/drm_lock.c
@@ -38251,10 +38234,10 @@ index d752c96..fe08455 100644
if (drm_lock_free(&master->lock, lock->context)) {
/* FIXME: Should really bail out here. */
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
-index 327ca19..684d3c0 100644
+index 39d8645..59e06fa 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
-@@ -495,7 +495,7 @@ void drm_unplug_dev(struct drm_device *dev)
+@@ -484,7 +484,7 @@ void drm_unplug_dev(struct drm_device *dev)
drm_device_set_unplugged(dev);
@@ -38277,10 +38260,10 @@ index 2290b3b..22056a1 100644
minor->kdev.parent = minor->dev->dev;
diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
-index ada49ed..29275a0 100644
+index ab1892eb..d7009ca 100644
--- a/drivers/gpu/drm/i810/i810_dma.c
+++ b/drivers/gpu/drm/i810/i810_dma.c
-@@ -945,8 +945,8 @@ static int i810_dma_vertex(struct drm_device *dev, void *data,
+@@ -944,8 +944,8 @@ static int i810_dma_vertex(struct drm_device *dev, void *data,
dma->buflist[vertex->idx],
vertex->discard, vertex->used);
@@ -38291,7 +38274,7 @@ index ada49ed..29275a0 100644
sarea_priv->last_enqueue = dev_priv->counter - 1;
sarea_priv->last_dispatch = (int)hw_status[5];
-@@ -1106,8 +1106,8 @@ static int i810_dma_mc(struct drm_device *dev, void *data,
+@@ -1105,8 +1105,8 @@ static int i810_dma_mc(struct drm_device *dev, void *data,
i810_dma_dispatch_mc(dev, dma->buflist[mc->idx], mc->used,
mc->last_render);
@@ -38303,7 +38286,7 @@ index ada49ed..29275a0 100644
sarea_priv->last_dispatch = (int)hw_status[5];
diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
-index 6e0acad..93c8289 100644
+index d4d16ed..8fb0b51 100644
--- a/drivers/gpu/drm/i810/i810_drv.h
+++ b/drivers/gpu/drm/i810/i810_drv.h
@@ -108,8 +108,8 @@ typedef struct drm_i810_private {
@@ -38318,10 +38301,10 @@ index 6e0acad..93c8289 100644
int front_offset;
} drm_i810_private_t;
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
-index 47d6c74..279123f 100644
+index a6f4cb5..6b2beb2 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
-@@ -541,7 +541,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
+@@ -624,7 +624,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
I915_READ(GTIMR));
}
seq_printf(m, "Interrupts received: %d\n",
@@ -38331,10 +38314,10 @@ index 47d6c74..279123f 100644
if (IS_GEN6(dev) || IS_GEN7(dev)) {
seq_printf(m,
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index f466980..8f2883f 100644
+index d5c784d..06e5c36 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1260,7 +1260,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -1263,7 +1263,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
bool can_switch;
spin_lock(&dev->count_lock);
@@ -38344,10 +38327,10 @@ index f466980..8f2883f 100644
return can_switch;
}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 2f09e80..077876d 100644
+index ab0f2c0..53c1bda 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -1028,7 +1028,7 @@ typedef struct drm_i915_private {
+@@ -1181,7 +1181,7 @@ typedef struct drm_i915_private {
drm_dma_handle_t *status_page_dmah;
struct resource mch_res;
@@ -38357,10 +38340,10 @@ index 2f09e80..077876d 100644
/* protects the irq masks */
spinlock_t irq_lock;
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index 87a3227..cd13d8f 100644
+index bf34577..3fd2ffa 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -727,9 +727,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
+@@ -768,9 +768,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
static int
validate_exec_list(struct drm_i915_gem_exec_object2 *exec,
@@ -38408,10 +38391,10 @@ index 3c59584..500f2e9 100644
return ret;
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index 46d46ba..6e49848 100644
+index 4b91228..590c643 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -975,7 +975,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
+@@ -1085,7 +1085,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
int pipe;
u32 pipe_stats[I915_MAX_PIPES];
@@ -38420,34 +38403,16 @@ index 46d46ba..6e49848 100644
while (true) {
iir = I915_READ(VLV_IIR);
-@@ -1192,7 +1192,7 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg)
+@@ -1390,7 +1390,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
irqreturn_t ret = IRQ_NONE;
- int i;
+ bool err_int_reenable = false;
- atomic_inc(&dev_priv->irq_received);
+ atomic_inc_unchecked(&dev_priv->irq_received);
/* We get interrupts on unclaimed registers, so check for this before we
* do any I915_{READ,WRITE}. */
-@@ -1312,7 +1312,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
- int ret = IRQ_NONE;
- u32 de_iir, gt_iir, de_ier, pm_iir, sde_ier;
-
-- atomic_inc(&dev_priv->irq_received);
-+ atomic_inc_unchecked(&dev_priv->irq_received);
-
- /* disable master interrupt before clearing iir */
- de_ier = I915_READ(DEIER);
-@@ -2617,7 +2617,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
- {
- drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-
-- atomic_set(&dev_priv->irq_received, 0);
-+ atomic_set_unchecked(&dev_priv->irq_received, 0);
-
- I915_WRITE(HWSTAM, 0xeffe);
-
-@@ -2639,7 +2639,7 @@ static void ivybridge_irq_preinstall(struct drm_device *dev)
+@@ -2146,7 +2146,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
{
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -38456,7 +38421,7 @@ index 46d46ba..6e49848 100644
I915_WRITE(HWSTAM, 0xeffe);
-@@ -2667,7 +2667,7 @@ static void valleyview_irq_preinstall(struct drm_device *dev)
+@@ -2164,7 +2164,7 @@ static void valleyview_irq_preinstall(struct drm_device *dev)
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
int pipe;
@@ -38465,7 +38430,7 @@ index 46d46ba..6e49848 100644
/* VLV magic */
I915_WRITE(VLV_IMR, 0);
-@@ -2979,7 +2979,7 @@ static void i8xx_irq_preinstall(struct drm_device * dev)
+@@ -2452,7 +2452,7 @@ static void i8xx_irq_preinstall(struct drm_device * dev)
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
int pipe;
@@ -38474,7 +38439,7 @@ index 46d46ba..6e49848 100644
for_each_pipe(pipe)
I915_WRITE(PIPESTAT(pipe), 0);
-@@ -3058,7 +3058,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
+@@ -2530,7 +2530,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
@@ -38483,7 +38448,7 @@ index 46d46ba..6e49848 100644
iir = I915_READ16(IIR);
if (iir == 0)
-@@ -3133,7 +3133,7 @@ static void i915_irq_preinstall(struct drm_device * dev)
+@@ -2604,7 +2604,7 @@ static void i915_irq_preinstall(struct drm_device * dev)
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
int pipe;
@@ -38492,7 +38457,7 @@ index 46d46ba..6e49848 100644
if (I915_HAS_HOTPLUG(dev)) {
I915_WRITE(PORT_HOTPLUG_EN, 0);
-@@ -3232,7 +3232,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
+@@ -2703,7 +2703,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
int pipe, ret = IRQ_NONE;
@@ -38501,7 +38466,7 @@ index 46d46ba..6e49848 100644
iir = I915_READ(IIR);
do {
-@@ -3356,7 +3356,7 @@ static void i965_irq_preinstall(struct drm_device * dev)
+@@ -2827,7 +2827,7 @@ static void i965_irq_preinstall(struct drm_device * dev)
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
int pipe;
@@ -38510,7 +38475,7 @@ index 46d46ba..6e49848 100644
I915_WRITE(PORT_HOTPLUG_EN, 0);
I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
-@@ -3465,7 +3465,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
+@@ -2941,7 +2941,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
@@ -38520,10 +38485,10 @@ index 46d46ba..6e49848 100644
iir = I915_READ(IIR);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index ad2a258..684e615 100644
+index d78d33f..01d7c58 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -9461,13 +9461,13 @@ struct intel_quirk {
+@@ -9972,13 +9972,13 @@ struct intel_quirk {
int subsystem_vendor;
int subsystem_device;
void (*hook)(struct drm_device *dev);
@@ -38539,7 +38504,7 @@ index ad2a258..684e615 100644
static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
{
-@@ -9475,18 +9475,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
+@@ -9986,18 +9986,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
return 1;
}
@@ -38571,7 +38536,7 @@ index ad2a258..684e615 100644
},
};
diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
-index 54558a0..2d97005 100644
+index ca4bc54..ee598a2 100644
--- a/drivers/gpu/drm/mga/mga_drv.h
+++ b/drivers/gpu/drm/mga/mga_drv.h
@@ -120,9 +120,9 @@ typedef struct drm_mga_private {
@@ -38675,10 +38640,10 @@ index 3e72876..d1c15ad 100644
#define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
-index 41ff7e0..fa854ef 100644
+index 994fd6e..6e12565 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
-@@ -92,7 +92,6 @@ struct nouveau_drm {
+@@ -94,7 +94,6 @@ struct nouveau_drm {
struct drm_global_reference mem_global_ref;
struct ttm_bo_global_ref bo_global_ref;
struct ttm_bo_device bdev;
@@ -38687,7 +38652,7 @@ index 41ff7e0..fa854ef 100644
struct ttm_buffer_object *,
struct ttm_mem_reg *, struct ttm_mem_reg *);
diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
-index 08214bc..9208577 100644
+index c1a7e5a..38b8539 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ioc32.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
@@ -50,7 +50,7 @@ long nouveau_compat_ioctl(struct file *filp, unsigned int cmd,
@@ -38700,10 +38665,10 @@ index 08214bc..9208577 100644
if (nr < DRM_COMMAND_BASE)
diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
-index 25d3495..d81aaf6 100644
+index 81638d7..2e45854 100644
--- a/drivers/gpu/drm/nouveau/nouveau_vga.c
+++ b/drivers/gpu/drm/nouveau/nouveau_vga.c
-@@ -62,7 +62,7 @@ nouveau_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -65,7 +65,7 @@ nouveau_switcheroo_can_switch(struct pci_dev *pdev)
bool can_switch;
spin_lock(&dev->count_lock);
@@ -38712,8 +38677,127 @@ index 25d3495..d81aaf6 100644
spin_unlock(&dev->count_lock);
return can_switch;
}
+diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
+index eb89653..613cf71 100644
+--- a/drivers/gpu/drm/qxl/qxl_cmd.c
++++ b/drivers/gpu/drm/qxl/qxl_cmd.c
+@@ -285,27 +285,27 @@ static int wait_for_io_cmd_user(struct qxl_device *qdev, uint8_t val, long port,
+ int ret;
+
+ mutex_lock(&qdev->async_io_mutex);
+- irq_num = atomic_read(&qdev->irq_received_io_cmd);
++ irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
+ if (qdev->last_sent_io_cmd > irq_num) {
+ if (intr)
+ ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
+- atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
++ atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
+ else
+ ret = wait_event_timeout(qdev->io_cmd_event,
+- atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
++ atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
+ /* 0 is timeout, just bail the "hw" has gone away */
+ if (ret <= 0)
+ goto out;
+- irq_num = atomic_read(&qdev->irq_received_io_cmd);
++ irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
+ }
+ outb(val, addr);
+ qdev->last_sent_io_cmd = irq_num + 1;
+ if (intr)
+ ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
+- atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
++ atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
+ else
+ ret = wait_event_timeout(qdev->io_cmd_event,
+- atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
++ atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
+ out:
+ if (ret > 0)
+ ret = 0;
+diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c
+index c3c2bbd..bc3c0fb 100644
+--- a/drivers/gpu/drm/qxl/qxl_debugfs.c
++++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
+@@ -42,10 +42,10 @@ qxl_debugfs_irq_received(struct seq_file *m, void *data)
+ struct drm_info_node *node = (struct drm_info_node *) m->private;
+ struct qxl_device *qdev = node->minor->dev->dev_private;
+
+- seq_printf(m, "%d\n", atomic_read(&qdev->irq_received));
+- seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_display));
+- seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_cursor));
+- seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_io_cmd));
++ seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received));
++ seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_display));
++ seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_cursor));
++ seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_io_cmd));
+ seq_printf(m, "%d\n", qdev->irq_received_error);
+ return 0;
+ }
+diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
+index f7c9add..fb971d2 100644
+--- a/drivers/gpu/drm/qxl/qxl_drv.h
++++ b/drivers/gpu/drm/qxl/qxl_drv.h
+@@ -290,10 +290,10 @@ struct qxl_device {
+ unsigned int last_sent_io_cmd;
+
+ /* interrupt handling */
+- atomic_t irq_received;
+- atomic_t irq_received_display;
+- atomic_t irq_received_cursor;
+- atomic_t irq_received_io_cmd;
++ atomic_unchecked_t irq_received;
++ atomic_unchecked_t irq_received_display;
++ atomic_unchecked_t irq_received_cursor;
++ atomic_unchecked_t irq_received_io_cmd;
+ unsigned irq_received_error;
+ wait_queue_head_t display_event;
+ wait_queue_head_t cursor_event;
+diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
+index 21393dc..329f3a9 100644
+--- a/drivers/gpu/drm/qxl/qxl_irq.c
++++ b/drivers/gpu/drm/qxl/qxl_irq.c
+@@ -33,19 +33,19 @@ irqreturn_t qxl_irq_handler(DRM_IRQ_ARGS)
+
+ pending = xchg(&qdev->ram_header->int_pending, 0);
+
+- atomic_inc(&qdev->irq_received);
++ atomic_inc_unchecked(&qdev->irq_received);
+
+ if (pending & QXL_INTERRUPT_DISPLAY) {
+- atomic_inc(&qdev->irq_received_display);
++ atomic_inc_unchecked(&qdev->irq_received_display);
+ wake_up_all(&qdev->display_event);
+ qxl_queue_garbage_collect(qdev, false);
+ }
+ if (pending & QXL_INTERRUPT_CURSOR) {
+- atomic_inc(&qdev->irq_received_cursor);
++ atomic_inc_unchecked(&qdev->irq_received_cursor);
+ wake_up_all(&qdev->cursor_event);
+ }
+ if (pending & QXL_INTERRUPT_IO_CMD) {
+- atomic_inc(&qdev->irq_received_io_cmd);
++ atomic_inc_unchecked(&qdev->irq_received_io_cmd);
+ wake_up_all(&qdev->io_cmd_event);
+ }
+ if (pending & QXL_INTERRUPT_ERROR) {
+@@ -82,10 +82,10 @@ int qxl_irq_init(struct qxl_device *qdev)
+ init_waitqueue_head(&qdev->io_cmd_event);
+ INIT_WORK(&qdev->client_monitors_config_work,
+ qxl_client_monitors_config_work_func);
+- atomic_set(&qdev->irq_received, 0);
+- atomic_set(&qdev->irq_received_display, 0);
+- atomic_set(&qdev->irq_received_cursor, 0);
+- atomic_set(&qdev->irq_received_io_cmd, 0);
++ atomic_set_unchecked(&qdev->irq_received, 0);
++ atomic_set_unchecked(&qdev->irq_received_display, 0);
++ atomic_set_unchecked(&qdev->irq_received_cursor, 0);
++ atomic_set_unchecked(&qdev->irq_received_io_cmd, 0);
+ qdev->irq_received_error = 0;
+ ret = drm_irq_install(qdev->ddev);
+ qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
-index 1dfd84c..104896c 100644
+index 037786d..2a95e33 100644
--- a/drivers/gpu/drm/qxl/qxl_ttm.c
+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
@@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
@@ -38736,7 +38820,7 @@ index 1dfd84c..104896c 100644
}
vma->vm_ops = &qxl_ttm_vm_ops;
return 0;
-@@ -556,25 +558,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
+@@ -558,25 +560,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
{
#if defined(CONFIG_DEBUG_FS)
@@ -38778,7 +38862,7 @@ index 1dfd84c..104896c 100644
return 0;
#endif
diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
-index d4660cf..70dbe65 100644
+index c451257..0ad2134 100644
--- a/drivers/gpu/drm/r128/r128_cce.c
+++ b/drivers/gpu/drm/r128/r128_cce.c
@@ -377,7 +377,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
@@ -38791,7 +38875,7 @@ index d4660cf..70dbe65 100644
/* We don't support anything other than bus-mastering ring mode,
* but the ring can be in either AGP or PCI space for the ring
diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
-index 930c71b..499aded 100644
+index 56eb5e3..c4ec43d 100644
--- a/drivers/gpu/drm/r128/r128_drv.h
+++ b/drivers/gpu/drm/r128/r128_drv.h
@@ -90,14 +90,14 @@ typedef struct drm_r128_private {
@@ -38869,7 +38953,7 @@ index 2ea4f09..d391371 100644
return IRQ_HANDLED;
}
diff --git a/drivers/gpu/drm/r128/r128_state.c b/drivers/gpu/drm/r128/r128_state.c
-index 19bb7e6..de7e2a2 100644
+index 01dd9ae..6352f04 100644
--- a/drivers/gpu/drm/r128/r128_state.c
+++ b/drivers/gpu/drm/r128/r128_state.c
@@ -320,10 +320,10 @@ static void r128_clear_box(drm_r128_private_t *dev_priv,
@@ -38907,10 +38991,10 @@ index af85299..ed9ac8d 100644
if (regcomp
(&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index d15f27e..ef11ffc 100644
+index 841d0e0..9eaa268 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
-@@ -1105,7 +1105,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -1117,7 +1117,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
bool can_switch;
spin_lock(&dev->count_lock);
@@ -39023,10 +39107,10 @@ index 4d20910..6726b6d 100644
DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
-index 6c0ce89..57a2529 100644
+index 71245d6..94c556d 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
-@@ -782,7 +782,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
+@@ -784,7 +784,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
man->size = size >> PAGE_SHIFT;
}
@@ -39035,7 +39119,7 @@ index 6c0ce89..57a2529 100644
static const struct vm_operations_struct *ttm_vm_ops = NULL;
static int radeon_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-@@ -823,8 +823,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
+@@ -825,8 +825,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
}
if (unlikely(ttm_vm_ops == NULL)) {
ttm_vm_ops = vma->vm_ops;
@@ -39046,12 +39130,13 @@ index 6c0ce89..57a2529 100644
}
vma->vm_ops = &radeon_ttm_vm_ops;
return 0;
-@@ -853,38 +855,33 @@ static int radeon_mm_dump_table(struct seq_file *m, void *data)
+@@ -855,38 +857,33 @@ static int radeon_mm_dump_table(struct seq_file *m, void *data)
static int radeon_ttm_debugfs_init(struct radeon_device *rdev)
{
#if defined(CONFIG_DEBUG_FS)
- static struct drm_info_list radeon_mem_types_list[RADEON_DEBUGFS_MEM_TYPES+2];
- static char radeon_mem_types_names[RADEON_DEBUGFS_MEM_TYPES+2][32];
+- unsigned i;
+ static struct drm_info_list radeon_mem_types_list[RADEON_DEBUGFS_MEM_TYPES+2] = {
+ {
+ .name = "radeon_vram_mm",
@@ -39070,7 +39155,7 @@ index 6c0ce89..57a2529 100644
+ .show = &ttm_dma_page_alloc_debugfs,
+ },
+ };
- unsigned i;
++ unsigned i = RADEON_DEBUGFS_MEM_TYPES + 1;
- for (i = 0; i < RADEON_DEBUGFS_MEM_TYPES; i++) {
- if (i == 0)
@@ -39110,7 +39195,7 @@ index 6c0ce89..57a2529 100644
return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i);
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
-index d8ddfb3..609de1d 100644
+index 1447d79..40b2a5b 100644
--- a/drivers/gpu/drm/radeon/rs690.c
+++ b/drivers/gpu/drm/radeon/rs690.c
@@ -345,9 +345,11 @@ static void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
@@ -39149,12 +39234,12 @@ index dbc2def..0a9f710 100644
kobject_put(&zone->kobj);
return ret;
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
-index bd2a3b4..122d9ad 100644
+index 863bef9..cba15cf 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
-@@ -394,9 +394,9 @@ static int ttm_pool_get_num_unused_pages(void)
- static int ttm_pool_mm_shrink(struct shrinker *shrink,
- struct shrink_control *sc)
+@@ -391,9 +391,9 @@ out:
+ static unsigned long
+ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
{
- static atomic_t start_pool = ATOMIC_INIT(0);
+ static atomic_unchecked_t start_pool = ATOMIC_INIT(0);
@@ -39163,7 +39248,7 @@ index bd2a3b4..122d9ad 100644
+ unsigned pool_offset = atomic_add_return_unchecked(1, &start_pool);
struct ttm_page_pool *pool;
int shrink_pages = sc->nr_to_scan;
-
+ unsigned long freed = 0;
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
index 97e9d61..bf23c461 100644
--- a/drivers/gpu/drm/udl/udl_fb.c
@@ -39177,7 +39262,7 @@ index 97e9d61..bf23c461 100644
pr_warn("released /dev/fb%d user=%d count=%d\n",
diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
-index 893a650..6190d3b 100644
+index a811ef2..ff99b05 100644
--- a/drivers/gpu/drm/via/via_drv.h
+++ b/drivers/gpu/drm/via/via_drv.h
@@ -51,7 +51,7 @@ typedef struct drm_via_ring_buffer {
@@ -39273,7 +39358,7 @@ index ac98964..5dbf512 100644
case VIA_IRQ_ABSOLUTE:
break;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
-index 13aeda7..4a952d1 100644
+index 150ec64..f5165f2 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -290,7 +290,7 @@ struct vmw_private {
@@ -39383,7 +39468,7 @@ index 8a8725c2..afed796 100644
marker = list_first_entry(&queue->head,
struct vmw_marker, head);
diff --git a/drivers/gpu/host1x/drm/dc.c b/drivers/gpu/host1x/drm/dc.c
-index 5360e5a..c2c0d26 100644
+index b1a05ad..1c9d899 100644
--- a/drivers/gpu/host1x/drm/dc.c
+++ b/drivers/gpu/host1x/drm/dc.c
@@ -1004,7 +1004,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
@@ -39395,11 +39480,33 @@ index 5360e5a..c2c0d26 100644
err = drm_debugfs_create_files(dc->debugfs_files,
ARRAY_SIZE(debugfs_files),
+diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
+index ec0ae2d..dc0780b 100644
+--- a/drivers/gpu/vga/vga_switcheroo.c
++++ b/drivers/gpu/vga/vga_switcheroo.c
+@@ -643,7 +643,7 @@ static int vga_switcheroo_runtime_resume(struct device *dev)
+
+ /* this version is for the case where the power switch is separate
+ to the device being powered down. */
+-int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain)
++int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain)
+ {
+ /* copy over all the bus versions */
+ if (dev->bus && dev->bus->pm) {
+@@ -688,7 +688,7 @@ static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
+ return ret;
+ }
+
+-int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain)
++int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain)
+ {
+ /* copy over all the bus versions */
+ if (dev->bus && dev->bus->pm) {
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index 15323da..8431ce9 100644
+index e80da62..bbcba01 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
-@@ -2371,7 +2371,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
+@@ -2417,7 +2417,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
int hid_add_device(struct hid_device *hdev)
{
@@ -39408,7 +39515,7 @@ index 15323da..8431ce9 100644
int ret;
if (WARN_ON(hdev->status & HID_STAT_ADDED))
-@@ -2405,7 +2405,7 @@ int hid_add_device(struct hid_device *hdev)
+@@ -2451,7 +2451,7 @@ int hid_add_device(struct hid_device *hdev)
/* XXX hack, any other cleaner solution after the driver core
* is converted to allow more than 20 bytes as the device name? */
dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
@@ -39431,7 +39538,7 @@ index c13fb5b..55a3802 100644
*off += size;
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
-index 145a4cb..2353a3e 100644
+index 93b00d7..0a71596 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -47,7 +47,7 @@ struct uhid_device {
@@ -39443,7 +39550,7 @@ index 145a4cb..2353a3e 100644
struct uhid_event report_buf;
};
-@@ -187,7 +187,7 @@ static int uhid_hid_get_raw(struct hid_device *hid, unsigned char rnum,
+@@ -163,7 +163,7 @@ static int uhid_hid_get_raw(struct hid_device *hid, unsigned char rnum,
spin_lock_irqsave(&uhid->qlock, flags);
ev->type = UHID_FEATURE;
@@ -39452,7 +39559,7 @@ index 145a4cb..2353a3e 100644
ev->u.feature.rnum = rnum;
ev->u.feature.rtype = report_type;
-@@ -471,7 +471,7 @@ static int uhid_dev_feature_answer(struct uhid_device *uhid,
+@@ -446,7 +446,7 @@ static int uhid_dev_feature_answer(struct uhid_device *uhid,
spin_lock_irqsave(&uhid->qlock, flags);
/* id for old report; drop it silently */
@@ -39490,7 +39597,7 @@ index 88f4096..e50452e 100644
__asm__ __volatile__ ("call *%8" : "=d"(hv_status_hi),
"=a"(hv_status_lo) : "d" (control_hi),
diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
-index deb5c25..ed2d4fd 100644
+index 7e17a54..a50a33d 100644
--- a/drivers/hv/hv_balloon.c
+++ b/drivers/hv/hv_balloon.c
@@ -464,7 +464,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
@@ -39502,15 +39609,15 @@ index deb5c25..ed2d4fd 100644
static int dm_ring_size = (5 * PAGE_SIZE);
-@@ -825,7 +825,7 @@ static void hot_add_req(struct work_struct *dummy)
- memset(&resp, 0, sizeof(struct dm_hot_add_response));
- resp.hdr.type = DM_MEM_HOT_ADD_RESPONSE;
- resp.hdr.size = sizeof(struct dm_hot_add_response);
+@@ -886,7 +886,7 @@ static void hot_add_req(struct work_struct *dummy)
+ pr_info("Memory hot add failed\n");
+
+ dm->state = DM_INITIALIZED;
- resp.hdr.trans_id = atomic_inc_return(&trans_id);
+ resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
-
- #ifdef CONFIG_MEMORY_HOTPLUG
- pg_start = dm->ha_wrk.ha_page_range.finfo.start_page;
+ vmbus_sendpacket(dm->dev->channel, &resp,
+ sizeof(struct dm_hot_add_response),
+ (unsigned long)NULL,
@@ -960,7 +960,7 @@ static void post_status(struct hv_dynmem_device *dm)
memset(&status, 0, sizeof(struct dm_status));
status.hdr.type = DM_STATUS_REPORT;
@@ -39529,15 +39636,15 @@ index deb5c25..ed2d4fd 100644
return;
vmbus_sendpacket(dm->dev->channel, &status,
-@@ -1081,7 +1081,7 @@ static void balloon_up(struct work_struct *dummy)
- bl_resp = (struct dm_balloon_response *)send_buffer;
- memset(send_buffer, 0, PAGE_SIZE);
- bl_resp->hdr.type = DM_BALLOON_RESPONSE;
-- bl_resp->hdr.trans_id = atomic_inc_return(&trans_id);
-+ bl_resp->hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
- bl_resp->hdr.size = sizeof(struct dm_balloon_response);
- bl_resp->more_pages = 1;
+@@ -1108,7 +1108,7 @@ static void balloon_up(struct work_struct *dummy)
+ */
+ do {
+- bl_resp->hdr.trans_id = atomic_inc_return(&trans_id);
++ bl_resp->hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
+ ret = vmbus_sendpacket(dm_device.dev->channel,
+ bl_resp,
+ bl_resp->hdr.size,
@@ -1152,7 +1152,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
memset(&resp, 0, sizeof(struct dm_unballoon_response));
@@ -39588,7 +39695,7 @@ index d84918f..7f38f9f 100644
/*
* Represents channel interrupts. Each bit position represents a
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
-index e8e071fc1..5b4b245 100644
+index f9fe46f..356b119 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -672,10 +672,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
@@ -39605,7 +39712,7 @@ index e8e071fc1..5b4b245 100644
child_device_obj->device.bus = &hv_bus;
child_device_obj->device.parent = &hv_acpi_dev->dev;
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
-index 6351aba..dc4aaf4 100644
+index a9e3d01..9dd246e 100644
--- a/drivers/hwmon/acpi_power_meter.c
+++ b/drivers/hwmon/acpi_power_meter.c
@@ -117,7 +117,7 @@ struct sensor_template {
@@ -39668,10 +39775,10 @@ index b25c643..a13460d 100644
{
sysfs_attr_init(&attr->attr);
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
-index 2e5e2dc..5208b31 100644
+index 78be661..4dd032f 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
-@@ -785,7 +785,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
+@@ -797,7 +797,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
return NOTIFY_OK;
}
@@ -39681,7 +39788,7 @@ index 2e5e2dc..5208b31 100644
};
diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
-index 1429f6e..ee03d59 100644
+index 632f1dc..57e6a58 100644
--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -926,7 +926,7 @@ static int aem_register_sensors(struct aem_data *data,
@@ -39706,8 +39813,26 @@ index 708081b..fe2d4ab 100644
int ret, i;
int in_i = 1, temp_i = 1, curr_i = 1;
enum iio_chan_type type;
+diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
+index 6eb03ce..bea7e3e 100644
+--- a/drivers/hwmon/nct6775.c
++++ b/drivers/hwmon/nct6775.c
+@@ -936,10 +936,10 @@ static struct attribute_group *
+ nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
+ int repeat)
+ {
+- struct attribute_group *group;
++ attribute_group_no_const *group;
+ struct sensor_device_attr_u *su;
+- struct sensor_device_attribute *a;
+- struct sensor_device_attribute_2 *a2;
++ sensor_device_attribute_no_const *a;
++ sensor_device_attribute_2_no_const *a2;
+ struct attribute **attrs;
+ struct sensor_device_template **t;
+ int err, i, j, count;
diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
-index 9add6092..ee7ba3f 100644
+index 9319fcf..189ff45 100644
--- a/drivers/hwmon/pmbus/pmbus_core.c
+++ b/drivers/hwmon/pmbus/pmbus_core.c
@@ -781,7 +781,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
@@ -39756,7 +39881,7 @@ index 9add6092..ee7ba3f 100644
label = devm_kzalloc(data->dev, sizeof(*label), GFP_KERNEL);
if (!label)
diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
-index 2507f90..1645765 100644
+index 97cd45a..ac54d8b 100644
--- a/drivers/hwmon/sht15.c
+++ b/drivers/hwmon/sht15.c
@@ -169,7 +169,7 @@ struct sht15_data {
@@ -39833,6 +39958,19 @@ index 07f01ac..d79ad3d 100644
/* Wrapper access functions for multiplexed SMBus */
static DEFINE_MUTEX(amd756_lock);
+diff --git a/drivers/i2c/busses/i2c-diolan-u2c.c b/drivers/i2c/busses/i2c-diolan-u2c.c
+index dae3ddf..26e21d1 100644
+--- a/drivers/i2c/busses/i2c-diolan-u2c.c
++++ b/drivers/i2c/busses/i2c-diolan-u2c.c
+@@ -99,7 +99,7 @@ MODULE_PARM_DESC(frequency, "I2C clock frequency in hertz");
+ /* usb layer */
+
+ /* Send command to device, and get response. */
+-static int diolan_usb_transfer(struct i2c_diolan_u2c *dev)
++static int __intentional_overflow(-1) diolan_usb_transfer(struct i2c_diolan_u2c *dev)
+ {
+ int ret = 0;
+ int actual;
diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
index 2ca268d..c6acbdf 100644
--- a/drivers/i2c/busses/i2c-nforce2-s4985.c
@@ -39873,7 +40011,7 @@ index 0b510ba..4fbb5085 100644
}
}
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
-index e145931..08bfc59 100644
+index f95c697..0a1b05c 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -506,7 +506,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
@@ -40202,10 +40340,10 @@ index 25b2cdf..099ff97 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 f61ec26..ebf72cf 100644
+index 036b663..c9a8c73 100644
--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
-@@ -398,7 +398,7 @@ struct mlx4_ib_demux_ctx {
+@@ -404,7 +404,7 @@ struct mlx4_ib_demux_ctx {
struct list_head mcg_mgid0_list;
struct workqueue_struct *mcg_wq;
struct mlx4_ib_demux_pv_ctx **tun;
@@ -40215,7 +40353,7 @@ index f61ec26..ebf72cf 100644
};
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
-index 9d3e5c1..d9afe4a 100644
+index 9d3e5c1..6f166df 100644
--- a/drivers/infiniband/hw/mthca/mthca_cmd.c
+++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
@@ -772,7 +772,7 @@ static void mthca_setup_cmd_doorbells(struct mthca_dev *dev, u64 base)
@@ -40227,10 +40365,59 @@ index 9d3e5c1..d9afe4a 100644
{
struct mthca_mailbox *mailbox;
u32 *outbox;
+@@ -1612,7 +1612,7 @@ int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
+ CMD_TIME_CLASS_B);
+ }
+
+-int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
++int __intentional_overflow(-1) mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
+ int num_mtt)
+ {
+ return mthca_cmd(dev, mailbox->dma, num_mtt, 0, CMD_WRITE_MTT,
+@@ -1634,7 +1634,7 @@ int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap,
+ 0, CMD_MAP_EQ, CMD_TIME_CLASS_B);
+ }
+
+-int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
++int __intentional_overflow(-1) mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
+ int eq_num)
+ {
+ return mthca_cmd(dev, mailbox->dma, eq_num, 0, CMD_SW2HW_EQ,
+@@ -1857,7 +1857,7 @@ int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn)
+ CMD_TIME_CLASS_B);
+ }
+
+-int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
++int __intentional_overflow(-1) mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
+ int port, struct ib_wc *in_wc, struct ib_grh *in_grh,
+ void *in_mad, void *response_mad)
+ {
+diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
+index 87897b9..7e79542 100644
+--- a/drivers/infiniband/hw/mthca/mthca_main.c
++++ b/drivers/infiniband/hw/mthca/mthca_main.c
+@@ -692,7 +692,7 @@ err_close:
+ return err;
+ }
+
+-static int mthca_setup_hca(struct mthca_dev *dev)
++static int __intentional_overflow(-1) mthca_setup_hca(struct mthca_dev *dev)
+ {
+ int err;
+
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
-index ed9a989..e0c5871 100644
+index ed9a989..6aa5dc2 100644
--- a/drivers/infiniband/hw/mthca/mthca_mr.c
+++ b/drivers/infiniband/hw/mthca/mthca_mr.c
+@@ -81,7 +81,7 @@ struct mthca_mpt_entry {
+ * through the bitmaps)
+ */
+
+-static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
++static u32 __intentional_overflow(-1) mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
+ {
+ int o;
+ int m;
@@ -426,7 +426,7 @@ static inline u32 adjust_key(struct mthca_dev *dev, u32 key)
return key;
}
@@ -40240,6 +40427,28 @@ index ed9a989..e0c5871 100644
u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
{
struct mthca_mailbox *mailbox;
+@@ -516,7 +516,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd,
+ return mthca_mr_alloc(dev, pd, 12, 0, ~0ULL, access, mr);
+ }
+
+-int mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
++int __intentional_overflow(-1) mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
+ u64 *buffer_list, int buffer_size_shift,
+ int list_len, u64 iova, u64 total_size,
+ u32 access, struct mthca_mr *mr)
+diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
+index 5b71d43..35a9e14 100644
+--- a/drivers/infiniband/hw/mthca/mthca_provider.c
++++ b/drivers/infiniband/hw/mthca/mthca_provider.c
+@@ -763,7 +763,7 @@ unlock:
+ return 0;
+ }
+
+-static int mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
++static int __intentional_overflow(-1) mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
+ {
+ struct mthca_dev *dev = to_mdev(ibcq->device);
+ struct mthca_cq *cq = to_mcq(ibcq);
diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
index 4291410..d2ab1fb 100644
--- a/drivers/infiniband/hw/nes/nes.c
@@ -40322,7 +40531,7 @@ index 33cc589..3bd6538 100644
extern u32 int_mod_timer_init;
extern u32 int_mod_cq_depth_256;
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
-index 24b9f1a..00fd004 100644
+index 6b29249..57081dd 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -68,14 +68,14 @@ u32 cm_packets_dropped;
@@ -40449,7 +40658,7 @@ index 24b9f1a..00fd004 100644
nes_disconnect(nesqp, 1);
cm_id->provider_data = nesqp;
-@@ -3033,7 +3033,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+@@ -3035,7 +3035,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
@@ -40458,7 +40667,7 @@ index 24b9f1a..00fd004 100644
nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
netdev_refcnt_read(nesvnic->netdev));
-@@ -3228,7 +3228,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
+@@ -3224,7 +3224,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
struct nes_cm_core *cm_core;
u8 *start_buff;
@@ -40467,9 +40676,9 @@ index 24b9f1a..00fd004 100644
cm_node = (struct nes_cm_node *)cm_id->provider_data;
loopback = cm_node->loopbackpartner;
cm_core = cm_node->cm_core;
-@@ -3288,7 +3288,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
- ntohl(cm_id->local_addr.sin_addr.s_addr),
- ntohs(cm_id->local_addr.sin_port));
+@@ -3286,7 +3286,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
+ ntohs(raddr->sin_port), ntohl(laddr->sin_addr.s_addr),
+ ntohs(laddr->sin_port));
- atomic_inc(&cm_connects);
+ atomic_inc_unchecked(&cm_connects);
@@ -40485,7 +40694,7 @@ index 24b9f1a..00fd004 100644
}
cm_id->add_ref(cm_id);
-@@ -3499,7 +3499,7 @@ static void cm_event_connected(struct nes_cm_event *event)
+@@ -3505,7 +3505,7 @@ static void cm_event_connected(struct nes_cm_event *event)
if (nesqp->destroyed)
return;
@@ -40493,8 +40702,8 @@ index 24b9f1a..00fd004 100644
+ atomic_inc_unchecked(&cm_connecteds);
nes_debug(NES_DBG_CM, "QP%u attempting to connect to 0x%08X:0x%04X on"
" local port 0x%04X. jiffies = %lu.\n",
- nesqp->hwqp.qp_id,
-@@ -3679,7 +3679,7 @@ static void cm_event_reset(struct nes_cm_event *event)
+ nesqp->hwqp.qp_id, ntohl(raddr->sin_addr.s_addr),
+@@ -3686,7 +3686,7 @@ static void cm_event_reset(struct nes_cm_event *event)
cm_id->add_ref(cm_id);
ret = cm_id->event_handler(cm_id, &cm_event);
@@ -40503,7 +40712,7 @@ index 24b9f1a..00fd004 100644
cm_event.event = IW_CM_EVENT_CLOSE;
cm_event.status = 0;
cm_event.provider_data = cm_id->provider_data;
-@@ -3715,7 +3715,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
+@@ -3726,7 +3726,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
return;
cm_id = cm_node->cm_id;
@@ -40512,7 +40721,7 @@ index 24b9f1a..00fd004 100644
nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
cm_node, cm_id, jiffies);
-@@ -3755,7 +3755,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
+@@ -3770,7 +3770,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
return;
cm_id = cm_node->cm_id;
@@ -40654,7 +40863,7 @@ index 5b53ca5..443da3c 100644
/* Blow away the connection if it exists. */
diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
-index 4a9af79..b993f75 100644
+index 1946101..09766d2 100644
--- a/drivers/infiniband/hw/qib/qib.h
+++ b/drivers/infiniband/hw/qib/qib.h
@@ -52,6 +52,7 @@
@@ -40666,7 +40875,7 @@ index 4a9af79..b993f75 100644
#include "qib_common.h"
#include "qib_verbs.h"
diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
-index da739d9..da1c7f4 100644
+index 922a7fe..bb035db 100644
--- a/drivers/input/gameport/gameport.c
+++ b/drivers/input/gameport/gameport.c
@@ -487,14 +487,14 @@ EXPORT_SYMBOL(gameport_set_phys);
@@ -40687,27 +40896,27 @@ index da739d9..da1c7f4 100644
gameport->dev.release = gameport_release_port;
if (gameport->parent)
diff --git a/drivers/input/input.c b/drivers/input/input.c
-index c044699..174d71a 100644
+index e75d015..57d1c28 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
-@@ -2019,7 +2019,7 @@ static void devm_input_device_unregister(struct device *dev, void *res)
+@@ -1734,7 +1734,7 @@ EXPORT_SYMBOL_GPL(input_class);
*/
- int input_register_device(struct input_dev *dev)
+ struct input_dev *input_allocate_device(void)
{
- static atomic_t input_no = ATOMIC_INIT(0);
+ static atomic_unchecked_t input_no = ATOMIC_INIT(0);
- struct input_devres *devres = NULL;
- struct input_handler *handler;
- unsigned int packet_size;
-@@ -2074,7 +2074,7 @@ int input_register_device(struct input_dev *dev)
- dev->setkeycode = input_default_setkeycode;
+ struct input_dev *dev;
- dev_set_name(&dev->dev, "input%ld",
-- (unsigned long) atomic_inc_return(&input_no) - 1);
-+ (unsigned long) atomic_inc_return_unchecked(&input_no) - 1);
+ dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
+@@ -1749,7 +1749,7 @@ struct input_dev *input_allocate_device(void)
+ INIT_LIST_HEAD(&dev->node);
- error = device_add(&dev->dev);
- if (error)
+ dev_set_name(&dev->dev, "input%ld",
+- (unsigned long) atomic_inc_return(&input_no) - 1);
++ (unsigned long) atomic_inc_return_unchecked(&input_no) - 1);
+
+ __module_get(THIS_MODULE);
+ }
diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
index 04c69af..5f92d00 100644
--- a/drivers/input/joystick/sidewinder.c
@@ -40791,7 +41000,7 @@ index 4c842c3..590b0bf 100644
return count;
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
-index 25fc597..558bf3b3 100644
+index 2b56855..5a55837 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -496,7 +496,7 @@ static void serio_release_port(struct device *dev)
@@ -40878,7 +41087,7 @@ index 39f81ae..2660096 100644
bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
-index ee7c503..5d4ce08 100644
+index d0e9480..d2b6340 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -84,7 +84,7 @@ static u8 gic_cpu_map[NR_GIC_CPU_IF] __read_mostly;
@@ -41003,611 +41212,6 @@ index 4d9b195..455075c 100644
return -EFAULT;
} else {
memcpy(buf, dp, left);
-diff --git a/drivers/isdn/hisax/amd7930_fn.c b/drivers/isdn/hisax/amd7930_fn.c
-index 1063bab..36817e0 100644
---- a/drivers/isdn/hisax/amd7930_fn.c
-+++ b/drivers/isdn/hisax/amd7930_fn.c
-@@ -314,7 +314,7 @@ Amd7930_empty_Dfifo(struct IsdnCardState *cs, int flag)
-
- t += sprintf(t, "Amd7930: empty_Dfifo cnt: %d |", cs->rcvidx);
- QuickHex(t, cs->rcvbuf, cs->rcvidx);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- /* moves received data in sk-buffer */
- memcpy(skb_put(skb, cs->rcvidx), cs->rcvbuf, cs->rcvidx);
-@@ -406,7 +406,7 @@ Amd7930_fill_Dfifo(struct IsdnCardState *cs)
-
- t += sprintf(t, "Amd7930: fill_Dfifo cnt: %d |", count);
- QuickHex(t, deb_ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- /* AMD interrupts on */
- AmdIrqOn(cs);
-diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
-index ee9b9a0..d1427bd 100644
---- a/drivers/isdn/hisax/avm_pci.c
-+++ b/drivers/isdn/hisax/avm_pci.c
-@@ -285,7 +285,7 @@ hdlc_empty_fifo(struct BCState *bcs, int count)
- t += sprintf(t, "hdlc_empty_fifo %c cnt %d",
- bcs->channel ? 'B' : 'A', count);
- QuickHex(t, p, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-@@ -345,7 +345,7 @@ hdlc_fill_fifo(struct BCState *bcs)
- t += sprintf(t, "hdlc_fill_fifo %c cnt %d",
- bcs->channel ? 'B' : 'A', count);
- QuickHex(t, p, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c
-index bf04d2a..b33f53b 100644
---- a/drivers/isdn/hisax/config.c
-+++ b/drivers/isdn/hisax/config.c
-@@ -1896,7 +1896,7 @@ static void EChannel_proc_rcv(struct hisax_d_if *d_if)
- ptr--;
- *ptr++ = '\n';
- *ptr = 0;
-- HiSax_putstatus(cs, NULL, cs->dlog);
-+ HiSax_putstatus(cs, NULL, "%s", cs->dlog);
- } else
- HiSax_putstatus(cs, "LogEcho: ",
- "warning Frame too big (%d)",
-diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c
-index 8d0cf6e..4fc90de 100644
---- a/drivers/isdn/hisax/diva.c
-+++ b/drivers/isdn/hisax/diva.c
-@@ -427,7 +427,7 @@ Memhscx_empty_fifo(struct BCState *bcs, int count)
- t += sprintf(t, "hscx_empty_fifo %c cnt %d",
- bcs->hw.hscx.hscx ? 'B' : 'A', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-@@ -469,7 +469,7 @@ Memhscx_fill_fifo(struct BCState *bcs)
- t += sprintf(t, "hscx_fill_fifo %c cnt %d",
- bcs->hw.hscx.hscx ? 'B' : 'A', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c
-index 1df6f9a..2be1c8a 100644
---- a/drivers/isdn/hisax/elsa.c
-+++ b/drivers/isdn/hisax/elsa.c
-@@ -535,7 +535,7 @@ check_arcofi(struct IsdnCardState *cs)
- t = tmp;
- t += sprintf(tmp, "Arcofi data");
- QuickHex(t, p, cs->dc.isac.mon_rxp);
-- debugl1(cs, tmp);
-+ debugl1(cs, "%s", tmp);
- if ((cs->dc.isac.mon_rxp == 2) && (cs->dc.isac.mon_rx[0] == 0xa0)) {
- switch (cs->dc.isac.mon_rx[1]) {
- case 0x80:
-diff --git a/drivers/isdn/hisax/elsa_ser.c b/drivers/isdn/hisax/elsa_ser.c
-index d4c98d3..3f84dd8 100644
---- a/drivers/isdn/hisax/elsa_ser.c
-+++ b/drivers/isdn/hisax/elsa_ser.c
-@@ -344,7 +344,7 @@ static inline void receive_chars(struct IsdnCardState *cs,
-
- t += sprintf(t, "modem read cnt %d", cs->hw.elsa.rcvcnt);
- QuickHex(t, cs->hw.elsa.rcvbuf, cs->hw.elsa.rcvcnt);
-- debugl1(cs, tmp);
-+ debugl1(cs, "%s", tmp);
- }
- cs->hw.elsa.rcvcnt = 0;
- }
-diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
-index 3ccd724..497bd02 100644
---- a/drivers/isdn/hisax/hfc_pci.c
-+++ b/drivers/isdn/hisax/hfc_pci.c
-@@ -901,7 +901,7 @@ Begin:
- ptr--;
- *ptr++ = '\n';
- *ptr = 0;
-- HiSax_putstatus(cs, NULL, cs->dlog);
-+ HiSax_putstatus(cs, NULL, "%s", cs->dlog);
- } else
- HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", total - 3);
- }
-diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c
-index dc4574f..fa1fefd 100644
---- a/drivers/isdn/hisax/hfc_sx.c
-+++ b/drivers/isdn/hisax/hfc_sx.c
-@@ -674,7 +674,7 @@ receive_emsg(struct IsdnCardState *cs)
- ptr--;
- *ptr++ = '\n';
- *ptr = 0;
-- HiSax_putstatus(cs, NULL, cs->dlog);
-+ HiSax_putstatus(cs, NULL, "%s", cs->dlog);
- } else
- HiSax_putstatus(cs, "LogEcho: ", "warning Frame too big (%d)", skb->len);
- }
-diff --git a/drivers/isdn/hisax/hscx_irq.c b/drivers/isdn/hisax/hscx_irq.c
-index f398d48..a8d6188 100644
---- a/drivers/isdn/hisax/hscx_irq.c
-+++ b/drivers/isdn/hisax/hscx_irq.c
-@@ -75,7 +75,7 @@ hscx_empty_fifo(struct BCState *bcs, int count)
- t += sprintf(t, "hscx_empty_fifo %c cnt %d",
- bcs->hw.hscx.hscx ? 'B' : 'A', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-@@ -115,7 +115,7 @@ hscx_fill_fifo(struct BCState *bcs)
- t += sprintf(t, "hscx_fill_fifo %c cnt %d",
- bcs->hw.hscx.hscx ? 'B' : 'A', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c
-index db5321f..51dae91 100644
---- a/drivers/isdn/hisax/icc.c
-+++ b/drivers/isdn/hisax/icc.c
-@@ -134,7 +134,7 @@ icc_empty_fifo(struct IsdnCardState *cs, int count)
-
- t += sprintf(t, "icc_empty_fifo cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-@@ -176,7 +176,7 @@ icc_fill_fifo(struct IsdnCardState *cs)
-
- t += sprintf(t, "icc_fill_fifo cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/ipacx.c b/drivers/isdn/hisax/ipacx.c
-index 74feb5c..5faa5de 100644
---- a/drivers/isdn/hisax/ipacx.c
-+++ b/drivers/isdn/hisax/ipacx.c
-@@ -260,7 +260,7 @@ dch_empty_fifo(struct IsdnCardState *cs, int count)
-
- t += sprintf(t, "dch_empty_fifo() cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-@@ -307,7 +307,7 @@ dch_fill_fifo(struct IsdnCardState *cs)
-
- t += sprintf(t, "dch_fill_fifo() cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-@@ -539,7 +539,7 @@ bch_empty_fifo(struct BCState *bcs, int count)
-
- t += sprintf(t, "bch_empty_fifo() B-%d cnt %d", hscx, count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-@@ -582,7 +582,7 @@ bch_fill_fifo(struct BCState *bcs)
-
- t += sprintf(t, "chb_fill_fifo() B-%d cnt %d", hscx, count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c
-index a365ccc..7fdf78f 100644
---- a/drivers/isdn/hisax/isac.c
-+++ b/drivers/isdn/hisax/isac.c
-@@ -137,7 +137,7 @@ isac_empty_fifo(struct IsdnCardState *cs, int count)
-
- t += sprintf(t, "isac_empty_fifo cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-@@ -179,7 +179,7 @@ isac_fill_fifo(struct IsdnCardState *cs)
-
- t += sprintf(t, "isac_fill_fifo cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/isar.c b/drivers/isdn/hisax/isar.c
-index 7fdf347..f4956c7 100644
---- a/drivers/isdn/hisax/isar.c
-+++ b/drivers/isdn/hisax/isar.c
-@@ -74,7 +74,7 @@ sendmsg(struct IsdnCardState *cs, u_char his, u_char creg, u_char len,
- t = tmp;
- t += sprintf(t, "sendmbox cnt %d", len);
- QuickHex(t, &msg[len-i], (i > 64) ? 64 : i);
-- debugl1(cs, tmp);
-+ debugl1(cs, "%s", tmp);
- i -= 64;
- }
- }
-@@ -105,7 +105,7 @@ rcv_mbox(struct IsdnCardState *cs, struct isar_reg *ireg, u_char *msg)
- t = tmp;
- t += sprintf(t, "rcv_mbox cnt %d", ireg->clsb);
- QuickHex(t, &msg[ireg->clsb - i], (i > 64) ? 64 : i);
-- debugl1(cs, tmp);
-+ debugl1(cs, "%s", tmp);
- i -= 64;
- }
- }
-@@ -1248,7 +1248,7 @@ isar_int_main(struct IsdnCardState *cs)
- tp += sprintf(debbuf, "msg iis(%x) msb(%x)",
- ireg->iis, ireg->cmsb);
- QuickHex(tp, (u_char *)ireg->par, ireg->clsb);
-- debugl1(cs, debbuf);
-+ debugl1(cs, "%s", debbuf);
- }
- break;
- case ISAR_IIS_INVMSG:
-diff --git a/drivers/isdn/hisax/jade.c b/drivers/isdn/hisax/jade.c
-index f946c58..e2ae787 100644
---- a/drivers/isdn/hisax/jade.c
-+++ b/drivers/isdn/hisax/jade.c
-@@ -81,10 +81,7 @@ modejade(struct BCState *bcs, int mode, int bc)
- int jade = bcs->hw.hscx.hscx;
-
- if (cs->debug & L1_DEB_HSCX) {
-- char tmp[40];
-- sprintf(tmp, "jade %c mode %d ichan %d",
-- 'A' + jade, mode, bc);
-- debugl1(cs, tmp);
-+ debugl1(cs, "jade %c mode %d ichan %d", 'A' + jade, mode, bc);
- }
- bcs->mode = mode;
- bcs->channel = bc;
-@@ -257,23 +254,18 @@ void
- clear_pending_jade_ints(struct IsdnCardState *cs)
- {
- int val;
-- char tmp[64];
-
- cs->BC_Write_Reg(cs, 0, jade_HDLC_IMR, 0x00);
- cs->BC_Write_Reg(cs, 1, jade_HDLC_IMR, 0x00);
-
- val = cs->BC_Read_Reg(cs, 1, jade_HDLC_ISR);
-- sprintf(tmp, "jade B ISTA %x", val);
-- debugl1(cs, tmp);
-+ debugl1(cs, "jade B ISTA %x", val);
- val = cs->BC_Read_Reg(cs, 0, jade_HDLC_ISR);
-- sprintf(tmp, "jade A ISTA %x", val);
-- debugl1(cs, tmp);
-+ debugl1(cs, "jade A ISTA %x", val);
- val = cs->BC_Read_Reg(cs, 1, jade_HDLC_STAR);
-- sprintf(tmp, "jade B STAR %x", val);
-- debugl1(cs, tmp);
-+ debugl1(cs, "jade B STAR %x", val);
- val = cs->BC_Read_Reg(cs, 0, jade_HDLC_STAR);
-- sprintf(tmp, "jade A STAR %x", val);
-- debugl1(cs, tmp);
-+ debugl1(cs, "jade A STAR %x", val);
- /* Unmask ints */
- cs->BC_Write_Reg(cs, 0, jade_HDLC_IMR, 0xF8);
- cs->BC_Write_Reg(cs, 1, jade_HDLC_IMR, 0xF8);
-diff --git a/drivers/isdn/hisax/jade_irq.c b/drivers/isdn/hisax/jade_irq.c
-index f521fc8..b930da9 100644
---- a/drivers/isdn/hisax/jade_irq.c
-+++ b/drivers/isdn/hisax/jade_irq.c
-@@ -65,7 +65,7 @@ jade_empty_fifo(struct BCState *bcs, int count)
- t += sprintf(t, "jade_empty_fifo %c cnt %d",
- bcs->hw.hscx.hscx ? 'B' : 'A', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-@@ -105,7 +105,7 @@ jade_fill_fifo(struct BCState *bcs)
- t += sprintf(t, "jade_fill_fifo %c cnt %d",
- bcs->hw.hscx.hscx ? 'B' : 'A', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-diff --git a/drivers/isdn/hisax/l3_1tr6.c b/drivers/isdn/hisax/l3_1tr6.c
-index 4c1bca5..875402e 100644
---- a/drivers/isdn/hisax/l3_1tr6.c
-+++ b/drivers/isdn/hisax/l3_1tr6.c
-@@ -63,7 +63,7 @@ l3_1tr6_error(struct l3_process *pc, u_char *msg, struct sk_buff *skb)
- {
- dev_kfree_skb(skb);
- if (pc->st->l3.debug & L3_DEB_WARN)
-- l3_debug(pc->st, msg);
-+ l3_debug(pc->st, "%s", msg);
- l3_1tr6_release_req(pc, 0, NULL);
- }
-
-@@ -161,7 +161,6 @@ l3_1tr6_setup(struct l3_process *pc, u_char pr, void *arg)
- {
- u_char *p;
- int bcfound = 0;
-- char tmp[80];
- struct sk_buff *skb = arg;
-
- /* Channel Identification */
-@@ -214,10 +213,9 @@ l3_1tr6_setup(struct l3_process *pc, u_char pr, void *arg)
- /* Signal all services, linklevel takes care of Service-Indicator */
- if (bcfound) {
- if ((pc->para.setup.si1 != 7) && (pc->st->l3.debug & L3_DEB_WARN)) {
-- sprintf(tmp, "non-digital call: %s -> %s",
-+ l3_debug(pc->st, "non-digital call: %s -> %s",
- pc->para.setup.phone,
- pc->para.setup.eazmsn);
-- l3_debug(pc->st, tmp);
- }
- newl3state(pc, 6);
- pc->st->l3.l3l4(pc->st, CC_SETUP | INDICATION, pc);
-@@ -301,7 +299,7 @@ l3_1tr6_info(struct l3_process *pc, u_char pr, void *arg)
- {
- u_char *p;
- int i, tmpcharge = 0;
-- char a_charge[8], tmp[32];
-+ char a_charge[8];
- struct sk_buff *skb = arg;
-
- p = skb->data;
-@@ -316,8 +314,8 @@ l3_1tr6_info(struct l3_process *pc, u_char pr, void *arg)
- pc->st->l3.l3l4(pc->st, CC_CHARGE | INDICATION, pc);
- }
- if (pc->st->l3.debug & L3_DEB_CHARGE) {
-- sprintf(tmp, "charging info %d", pc->para.chargeinfo);
-- l3_debug(pc->st, tmp);
-+ l3_debug(pc->st, "charging info %d",
-+ pc->para.chargeinfo);
- }
- } else if (pc->st->l3.debug & L3_DEB_CHARGE)
- l3_debug(pc->st, "charging info not found");
-@@ -399,7 +397,7 @@ l3_1tr6_disc(struct l3_process *pc, u_char pr, void *arg)
- struct sk_buff *skb = arg;
- u_char *p;
- int i, tmpcharge = 0;
-- char a_charge[8], tmp[32];
-+ char a_charge[8];
-
- StopAllL3Timer(pc);
- p = skb->data;
-@@ -414,8 +412,8 @@ l3_1tr6_disc(struct l3_process *pc, u_char pr, void *arg)
- pc->st->l3.l3l4(pc->st, CC_CHARGE | INDICATION, pc);
- }
- if (pc->st->l3.debug & L3_DEB_CHARGE) {
-- sprintf(tmp, "charging info %d", pc->para.chargeinfo);
-- l3_debug(pc->st, tmp);
-+ l3_debug(pc->st, "charging info %d",
-+ pc->para.chargeinfo);
- }
- } else if (pc->st->l3.debug & L3_DEB_CHARGE)
- l3_debug(pc->st, "charging info not found");
-@@ -746,7 +744,6 @@ up1tr6(struct PStack *st, int pr, void *arg)
- int i, mt, cr;
- struct l3_process *proc;
- struct sk_buff *skb = arg;
-- char tmp[80];
-
- switch (pr) {
- case (DL_DATA | INDICATION):
-@@ -762,26 +759,23 @@ up1tr6(struct PStack *st, int pr, void *arg)
- }
- if (skb->len < 4) {
- if (st->l3.debug & L3_DEB_PROTERR) {
-- sprintf(tmp, "up1tr6 len only %d", skb->len);
-- l3_debug(st, tmp);
-+ l3_debug(st, "up1tr6 len only %d", skb->len);
- }
- dev_kfree_skb(skb);
- return;
- }
- if ((skb->data[0] & 0xfe) != PROTO_DIS_N0) {
- if (st->l3.debug & L3_DEB_PROTERR) {
-- sprintf(tmp, "up1tr6%sunexpected discriminator %x message len %d",
-+ l3_debug(st, "up1tr6%sunexpected discriminator %x message len %d",
- (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
- skb->data[0], skb->len);
-- l3_debug(st, tmp);
- }
- dev_kfree_skb(skb);
- return;
- }
- if (skb->data[1] != 1) {
- if (st->l3.debug & L3_DEB_PROTERR) {
-- sprintf(tmp, "up1tr6 CR len not 1");
-- l3_debug(st, tmp);
-+ l3_debug(st, "up1tr6 CR len not 1");
- }
- dev_kfree_skb(skb);
- return;
-@@ -791,9 +785,8 @@ up1tr6(struct PStack *st, int pr, void *arg)
- if (skb->data[0] == PROTO_DIS_N0) {
- dev_kfree_skb(skb);
- if (st->l3.debug & L3_DEB_STATE) {
-- sprintf(tmp, "up1tr6%s N0 mt %x unhandled",
-+ l3_debug(st, "up1tr6%s N0 mt %x unhandled",
- (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ", mt);
-- l3_debug(st, tmp);
- }
- } else if (skb->data[0] == PROTO_DIS_N1) {
- if (!(proc = getl3proc(st, cr))) {
-@@ -801,8 +794,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
- if (cr < 128) {
- if (!(proc = new_l3_process(st, cr))) {
- if (st->l3.debug & L3_DEB_PROTERR) {
-- sprintf(tmp, "up1tr6 no roc mem");
-- l3_debug(st, tmp);
-+ l3_debug(st, "up1tr6 no roc mem");
- }
- dev_kfree_skb(skb);
- return;
-@@ -821,8 +813,7 @@ up1tr6(struct PStack *st, int pr, void *arg)
- } else {
- if (!(proc = new_l3_process(st, cr))) {
- if (st->l3.debug & L3_DEB_PROTERR) {
-- sprintf(tmp, "up1tr6 no roc mem");
-- l3_debug(st, tmp);
-+ l3_debug(st, "up1tr6 no roc mem");
- }
- dev_kfree_skb(skb);
- return;
-@@ -837,18 +828,16 @@ up1tr6(struct PStack *st, int pr, void *arg)
- if (i == ARRAY_SIZE(datastln1)) {
- dev_kfree_skb(skb);
- if (st->l3.debug & L3_DEB_STATE) {
-- sprintf(tmp, "up1tr6%sstate %d mt %x unhandled",
-+ l3_debug(st, "up1tr6%sstate %d mt %x unhandled",
- (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
- proc->state, mt);
-- l3_debug(st, tmp);
- }
- return;
- } else {
- if (st->l3.debug & L3_DEB_STATE) {
-- sprintf(tmp, "up1tr6%sstate %d mt %x",
-+ l3_debug(st, "up1tr6%sstate %d mt %x",
- (pr == (DL_DATA | INDICATION)) ? " " : "(broadcast) ",
- proc->state, mt);
-- l3_debug(st, tmp);
- }
- datastln1[i].rout(proc, pr, skb);
- }
-@@ -861,7 +850,6 @@ down1tr6(struct PStack *st, int pr, void *arg)
- int i, cr;
- struct l3_process *proc;
- struct Channel *chan;
-- char tmp[80];
-
- if ((DL_ESTABLISH | REQUEST) == pr) {
- l3_msg(st, pr, NULL);
-@@ -888,15 +876,13 @@ down1tr6(struct PStack *st, int pr, void *arg)
- break;
- if (i == ARRAY_SIZE(downstl)) {
- if (st->l3.debug & L3_DEB_STATE) {
-- sprintf(tmp, "down1tr6 state %d prim %d unhandled",
-+ l3_debug(st, "down1tr6 state %d prim %d unhandled",
- proc->state, pr);
-- l3_debug(st, tmp);
- }
- } else {
- if (st->l3.debug & L3_DEB_STATE) {
-- sprintf(tmp, "down1tr6 state %d prim %d",
-+ l3_debug(st, "down1tr6 state %d prim %d",
- proc->state, pr);
-- l3_debug(st, tmp);
- }
- downstl[i].rout(proc, pr, arg);
- }
-diff --git a/drivers/isdn/hisax/netjet.c b/drivers/isdn/hisax/netjet.c
-index b646eed..233e432 100644
---- a/drivers/isdn/hisax/netjet.c
-+++ b/drivers/isdn/hisax/netjet.c
-@@ -176,7 +176,7 @@ static void printframe(struct IsdnCardState *cs, u_char *buf, int count, char *s
- else
- j = i;
- QuickHex(t, p, j);
-- debugl1(cs, tmp);
-+ debugl1(cs, "%s", tmp);
- p += j;
- i -= j;
- t = tmp;
-diff --git a/drivers/isdn/hisax/q931.c b/drivers/isdn/hisax/q931.c
-index 041bf52..af1b020 100644
---- a/drivers/isdn/hisax/q931.c
-+++ b/drivers/isdn/hisax/q931.c
-@@ -1179,7 +1179,7 @@ LogFrame(struct IsdnCardState *cs, u_char *buf, int size)
- dp--;
- *dp++ = '\n';
- *dp = 0;
-- HiSax_putstatus(cs, NULL, cs->dlog);
-+ HiSax_putstatus(cs, NULL, "%s", cs->dlog);
- } else
- HiSax_putstatus(cs, "LogFrame: ", "warning Frame too big (%d)", size);
- }
-@@ -1246,7 +1246,7 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
- }
- if (finish) {
- *dp = 0;
-- HiSax_putstatus(cs, NULL, cs->dlog);
-+ HiSax_putstatus(cs, NULL, "%s", cs->dlog);
- return;
- }
- if ((0xfe & buf[0]) == PROTO_DIS_N0) { /* 1TR6 */
-@@ -1509,5 +1509,5 @@ dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir)
- dp += sprintf(dp, "Unknown protocol %x!", buf[0]);
- }
- *dp = 0;
-- HiSax_putstatus(cs, NULL, cs->dlog);
-+ HiSax_putstatus(cs, NULL, "%s", cs->dlog);
- }
-diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c
-index d8cac69..a858955 100644
---- a/drivers/isdn/hisax/w6692.c
-+++ b/drivers/isdn/hisax/w6692.c
-@@ -154,7 +154,7 @@ W6692_empty_fifo(struct IsdnCardState *cs, int count)
-
- t += sprintf(t, "W6692_empty_fifo cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-@@ -196,7 +196,7 @@ W6692_fill_fifo(struct IsdnCardState *cs)
-
- t += sprintf(t, "W6692_fill_fifo cnt %d", count);
- QuickHex(t, ptr, count);
-- debugl1(cs, cs->dlog);
-+ debugl1(cs, "%s", cs->dlog);
- }
- }
-
-@@ -226,7 +226,7 @@ W6692B_empty_fifo(struct BCState *bcs, int count)
- t += sprintf(t, "W6692B_empty_fifo %c cnt %d",
- bcs->channel + '1', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
-@@ -264,7 +264,7 @@ W6692B_fill_fifo(struct BCState *bcs)
- t += sprintf(t, "W6692B_fill_fifo %c cnt %d",
- bcs->channel + '1', count);
- QuickHex(t, ptr, count);
-- debugl1(cs, bcs->blog);
-+ debugl1(cs, "%s", bcs->blog);
- }
- }
-
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 9bb12ba..d4262f7 100644
--- a/drivers/isdn/i4l/isdn_common.c
@@ -41725,29 +41329,42 @@ index baf2686..02125e6 100644
card->s0num[1][0] = '\0';
card->s0num[2][0] = '\0';
break;
+diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
+index a4f05c5..1433bc5 100644
+--- a/drivers/isdn/mISDN/dsp_cmx.c
++++ b/drivers/isdn/mISDN/dsp_cmx.c
+@@ -1628,7 +1628,7 @@ unsigned long dsp_spl_jiffies; /* calculate the next time to fire */
+ static u16 dsp_count; /* last sample count */
+ static int dsp_count_valid; /* if we have last sample count */
+
+-void
++void __intentional_overflow(-1)
+ dsp_cmx_send(void *arg)
+ {
+ struct dsp_conf *conf;
diff --git a/drivers/leds/leds-clevo-mail.c b/drivers/leds/leds-clevo-mail.c
-index 6a8405d..0bd1c7e 100644
+index d93e245..e7ece6b 100644
--- a/drivers/leds/leds-clevo-mail.c
+++ b/drivers/leds/leds-clevo-mail.c
@@ -40,7 +40,7 @@ static int __init clevo_mail_led_dmi_callback(const struct dmi_system_id *id)
* detected as working, but in reality it is not) as low as
* possible.
*/
--static struct dmi_system_id __initdata clevo_mail_led_dmi_table[] = {
-+static const struct dmi_system_id __initconst clevo_mail_led_dmi_table[] = {
+-static struct dmi_system_id clevo_mail_led_dmi_table[] __initdata = {
++static struct dmi_system_id clevo_mail_led_dmi_table[] __initconst = {
{
.callback = clevo_mail_led_dmi_callback,
.ident = "Clevo D410J",
diff --git a/drivers/leds/leds-ss4200.c b/drivers/leds/leds-ss4200.c
-index 64e204e..c6bf189 100644
+index 5b8f938..b73d657 100644
--- a/drivers/leds/leds-ss4200.c
+++ b/drivers/leds/leds-ss4200.c
@@ -91,7 +91,7 @@ MODULE_PARM_DESC(nodetect, "Skip DMI-based hardware detection");
* detected as working, but in reality it is not) as low as
* possible.
*/
--static struct dmi_system_id __initdata nas_led_whitelist[] = {
-+static const struct dmi_system_id __initconst nas_led_whitelist[] = {
+-static struct dmi_system_id nas_led_whitelist[] __initdata = {
++static struct dmi_system_id nas_led_whitelist[] __initconst = {
{
.callback = ss4200_led_dmi_callback,
.ident = "Intel SS4200-E",
@@ -41783,7 +41400,7 @@ index 0bf1e4e..b4bf44e 100644
printk(KERN_INFO "lguest: mapped switcher at %p\n",
diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
-index a35d8d1..59fb772 100644
+index bfb39bb..08a603b 100644
--- a/drivers/lguest/page_tables.c
+++ b/drivers/lguest/page_tables.c
@@ -559,7 +559,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr)
@@ -41942,10 +41559,10 @@ index a7fd821..9dcf6c3 100644
seq_printf(seq, "\n");
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
-index f1b7586..a49c4bd 100644
+index afe0814..8cf3794 100644
--- a/drivers/md/dm-ioctl.c
+++ b/drivers/md/dm-ioctl.c
-@@ -1739,7 +1739,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
+@@ -1745,7 +1745,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
cmd == DM_LIST_VERSIONS_CMD)
return 0;
@@ -41955,7 +41572,7 @@ index f1b7586..a49c4bd 100644
DMWARN("name not supplied when creating device");
return -EINVAL;
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
-index 699b5be..eac0a15 100644
+index 9584443..9fc9ac9 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -40,7 +40,7 @@ enum dm_raid1_error {
@@ -42021,7 +41638,7 @@ index 699b5be..eac0a15 100644
ms->mirror[mirror].error_type = 0;
ms->mirror[mirror].offset = offset;
-@@ -1340,7 +1340,7 @@ static void mirror_resume(struct dm_target *ti)
+@@ -1339,7 +1339,7 @@ static void mirror_resume(struct dm_target *ti)
*/
static char device_status_char(struct mirror *m)
{
@@ -42030,11 +41647,35 @@ index 699b5be..eac0a15 100644
return 'A';
return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
+diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
+index 3d404c1..b62af0e 100644
+--- a/drivers/md/dm-stats.c
++++ b/drivers/md/dm-stats.c
+@@ -382,7 +382,7 @@ do_sync_free:
+ synchronize_rcu_expedited();
+ dm_stat_free(&s->rcu_head);
+ } else {
+- ACCESS_ONCE(dm_stat_need_rcu_barrier) = 1;
++ ACCESS_ONCE_RW(dm_stat_need_rcu_barrier) = 1;
+ call_rcu(&s->rcu_head, dm_stat_free);
+ }
+ return 0;
+@@ -554,8 +554,8 @@ void dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw,
+ ((bi_rw & (REQ_WRITE | REQ_DISCARD)) ==
+ (ACCESS_ONCE(last->last_rw) & (REQ_WRITE | REQ_DISCARD)))
+ ));
+- ACCESS_ONCE(last->last_sector) = end_sector;
+- ACCESS_ONCE(last->last_rw) = bi_rw;
++ ACCESS_ONCE_RW(last->last_sector) = end_sector;
++ ACCESS_ONCE_RW(last->last_rw) = bi_rw;
+ }
+
+ rcu_read_lock();
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
-index d907ca6..cfb8384 100644
+index 73c1712..7347292 100644
--- a/drivers/md/dm-stripe.c
+++ b/drivers/md/dm-stripe.c
-@@ -20,7 +20,7 @@ struct stripe {
+@@ -21,7 +21,7 @@ struct stripe {
struct dm_dev *dev;
sector_t physical_start;
@@ -42043,7 +41684,7 @@ index d907ca6..cfb8384 100644
};
struct stripe_c {
-@@ -185,7 +185,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+@@ -186,7 +186,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
kfree(sc);
return r;
}
@@ -42052,7 +41693,7 @@ index d907ca6..cfb8384 100644
}
ti->private = sc;
-@@ -326,7 +326,7 @@ static void stripe_status(struct dm_target *ti, status_type_t type,
+@@ -327,7 +327,7 @@ static void stripe_status(struct dm_target *ti, status_type_t type,
DMEMIT("%d ", sc->stripes);
for (i = 0; i < sc->stripes; i++) {
DMEMIT("%s ", sc->stripe[i].dev->name);
@@ -42061,7 +41702,7 @@ index d907ca6..cfb8384 100644
'D' : 'A';
}
buffer[i] = '\0';
-@@ -371,8 +371,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, int error)
+@@ -372,8 +372,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, int error)
*/
for (i = 0; i < sc->stripes; i++)
if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
@@ -42073,7 +41714,7 @@ index d907ca6..cfb8384 100644
schedule_work(&sc->trigger_event);
}
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
-index f221812..6cfda2f 100644
+index 8f87835..531854d 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -286,7 +286,7 @@ static struct dm_dev_internal *find_device(struct list_head *l, dev_t dev)
@@ -42117,10 +41758,10 @@ index 60bce43..9b997d0 100644
pmd->bl_info.value_type.inc = data_block_inc;
pmd->bl_info.value_type.dec = data_block_dec;
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
-index 995e1fc..2468cec 100644
+index b3e26c7..1efca94 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
-@@ -178,9 +178,9 @@ struct mapped_device {
+@@ -179,9 +179,9 @@ struct mapped_device {
/*
* Event handling.
*/
@@ -42132,7 +41773,7 @@ index 995e1fc..2468cec 100644
struct list_head uevent_list;
spinlock_t uevent_lock; /* Protect access to uevent_list */
-@@ -1916,8 +1916,8 @@ static struct mapped_device *alloc_dev(int minor)
+@@ -1985,8 +1985,8 @@ static struct mapped_device *alloc_dev(int minor)
spin_lock_init(&md->deferred_lock);
atomic_set(&md->holders, 1);
atomic_set(&md->open_count, 0);
@@ -42143,7 +41784,7 @@ index 995e1fc..2468cec 100644
INIT_LIST_HEAD(&md->uevent_list);
spin_lock_init(&md->uevent_lock);
-@@ -2068,7 +2068,7 @@ static void event_callback(void *context)
+@@ -2139,7 +2139,7 @@ static void event_callback(void *context)
dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
@@ -42152,7 +41793,7 @@ index 995e1fc..2468cec 100644
wake_up(&md->eventq);
}
-@@ -2727,18 +2727,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
+@@ -2832,18 +2832,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
uint32_t dm_next_uevent_seq(struct mapped_device *md)
{
@@ -42175,7 +41816,7 @@ index 995e1fc..2468cec 100644
void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 866f489..9bf9ba3 100644
+index 561a65f..f4e8c71 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -234,10 +234,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
@@ -42247,7 +41888,7 @@ index 866f489..9bf9ba3 100644
INIT_LIST_HEAD(&rdev->same_set);
init_waitqueue_head(&rdev->blocked_wait);
-@@ -7024,7 +7024,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
+@@ -7042,7 +7042,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
spin_unlock(&pers_lock);
seq_printf(seq, "\n");
@@ -42256,7 +41897,7 @@ index 866f489..9bf9ba3 100644
return 0;
}
if (v == (void*)2) {
-@@ -7127,7 +7127,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
+@@ -7145,7 +7145,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
return error;
seq = file->private_data;
@@ -42265,7 +41906,7 @@ index 866f489..9bf9ba3 100644
return error;
}
-@@ -7141,7 +7141,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
+@@ -7159,7 +7159,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
/* always allow read */
mask = POLLIN | POLLRDNORM;
@@ -42274,7 +41915,7 @@ index 866f489..9bf9ba3 100644
mask |= POLLERR | POLLPRI;
return mask;
}
-@@ -7185,7 +7185,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
+@@ -7203,7 +7203,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
(int)part_stat_read(&disk->part0, sectors[1]) -
@@ -42284,7 +41925,7 @@ index 866f489..9bf9ba3 100644
* as sync_io is counted when a request starts, and
* disk_stats is counted when it completes.
diff --git a/drivers/md/md.h b/drivers/md/md.h
-index 20f02c0..fd8c821 100644
+index 608050c..6e77db5d 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -94,13 +94,13 @@ struct md_rdev {
@@ -42303,7 +41944,7 @@ index 20f02c0..fd8c821 100644
* for reporting to userspace and storing
* in superblock.
*/
-@@ -442,7 +442,7 @@ static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
+@@ -446,7 +446,7 @@ static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
{
@@ -42410,10 +42051,10 @@ index 73dc8a3..bdd515a 100644
rdev_dec_pending(rdev, mddev);
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index d825059..d5e4ec7 100644
+index f8b9068..7a2b9fc 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
-@@ -1776,21 +1776,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -1886,21 +1886,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
mdname(conf->mddev), STRIPE_SECTORS,
(unsigned long long)s,
bdevname(rdev->bdev, b));
@@ -42439,7 +42080,7 @@ index d825059..d5e4ec7 100644
if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
printk_ratelimited(
KERN_WARNING
-@@ -1818,7 +1818,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
+@@ -1928,7 +1928,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
mdname(conf->mddev),
(unsigned long long)s,
bdn);
@@ -42715,7 +42356,7 @@ index 545c04c..a14bded 100644
unlock:
mutex_unlock(&dev->lock);
diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
-index bd4d3a7..ffc0b9d 100644
+index 5236035..c622c74 100644
--- a/drivers/media/radio/radio-maxiradio.c
+++ b/drivers/media/radio/radio-maxiradio.c
@@ -61,7 +61,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device number");
@@ -42728,7 +42369,7 @@ index bd4d3a7..ffc0b9d 100644
#define PCI_VENDOR_ID_GUILLEMOT 0x5046
#define PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO 0x1001
diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
-index 8fa18ab..caee70f 100644
+index b914772..7ddbf9b 100644
--- a/drivers/media/radio/radio-shark.c
+++ b/drivers/media/radio/radio-shark.c
@@ -79,7 +79,7 @@ struct shark_device {
@@ -42767,10 +42408,10 @@ index 9c9084c..a9e8dfb 100644
radio = devm_kzalloc(&pdev->dev, sizeof(*radio), GFP_KERNEL);
if (!radio)
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
-index 1cf382a..c22998c 100644
+index 46da365..3ba4206 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
-@@ -1030,7 +1030,7 @@ EXPORT_SYMBOL_GPL(rc_free_device);
+@@ -1065,7 +1065,7 @@ EXPORT_SYMBOL_GPL(rc_free_device);
int rc_register_device(struct rc_dev *dev)
{
static bool raw_init = false; /* raw decoders loaded? */
@@ -42779,7 +42420,7 @@ index 1cf382a..c22998c 100644
struct rc_map *rc_map;
const char *path;
int rc;
-@@ -1061,7 +1061,7 @@ int rc_register_device(struct rc_dev *dev)
+@@ -1096,7 +1096,7 @@ int rc_register_device(struct rc_dev *dev)
*/
mutex_lock(&dev->lock);
@@ -43226,13 +42867,13 @@ index fcbb2e9..2635e11 100644
#include <linux/pci.h>
#include <linux/interrupt.h>
diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
-index 8042b32..cba3166 100644
+index de7fb80..7c1b931 100644
--- a/drivers/mfd/max8925-i2c.c
+++ b/drivers/mfd/max8925-i2c.c
@@ -152,7 +152,7 @@ static int max8925_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
- struct max8925_platform_data *pdata = client->dev.platform_data;
+ struct max8925_platform_data *pdata = dev_get_platdata(&client->dev);
- static struct max8925_chip *chip;
+ struct max8925_chip *chip;
struct device_node *node = client->dev.of_node;
@@ -43279,42 +42920,21 @@ index 9aa6d1e..1631bfc 100644
for (i = irq_base; i < irq_end; i++) {
irq_set_chip_and_handler(i, &twl4030_irq_chip,
-diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
-index 277a8db..0e0b754 100644
---- a/drivers/mfd/twl6030-irq.c
-+++ b/drivers/mfd/twl6030-irq.c
-@@ -387,10 +387,12 @@ int twl6030_init_irq(struct device *dev, int irq_num)
- * install an irq handler for each of the modules;
- * clone dummy irq_chip since PIH can't *do* anything
- */
-- twl6030_irq_chip = dummy_irq_chip;
-- twl6030_irq_chip.name = "twl6030";
-- twl6030_irq_chip.irq_set_type = NULL;
-- twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake;
-+ pax_open_kernel();
-+ memcpy((void *)&twl6030_irq_chip, &dummy_irq_chip, sizeof twl6030_irq_chip);
-+ *(const char **)&twl6030_irq_chip.name = "twl6030";
-+ *(void **)&twl6030_irq_chip.irq_set_type = NULL;
-+ *(void **)&twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake;
-+ pax_close_kernel();
-
- for (i = irq_base; i < irq_end; i++) {
- irq_set_chip_and_handler(i, &twl6030_irq_chip,
diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
-index f32550a..e3e52a2 100644
+index 464419b..64bae8d 100644
--- a/drivers/misc/c2port/core.c
+++ b/drivers/misc/c2port/core.c
-@@ -920,7 +920,9 @@ struct c2port_device *c2port_device_register(char *name,
- mutex_init(&c2dev->mutex);
+@@ -922,7 +922,9 @@ struct c2port_device *c2port_device_register(char *name,
+ goto error_idr_alloc;
+ c2dev->id = ret;
- /* Create binary file */
-- c2port_bin_attrs.size = ops->blocks_num * ops->block_size;
+- bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
+ pax_open_kernel();
-+ *(size_t *)&c2port_bin_attrs.size = ops->blocks_num * ops->block_size;
++ *(size_t *)&bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
+ pax_close_kernel();
- ret = device_create_bin_file(c2dev->dev, &c2port_bin_attrs);
- if (unlikely(ret))
- goto error_device_create_bin_file;
+
+ c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
+ "c2port%d", c2dev->id);
diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
index 36f5d52..32311c3 100644
--- a/drivers/misc/kgdbts.c
@@ -43670,7 +43290,7 @@ index 82dc574..8539ab2 100644
break;
diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
-index 837fc73..acb5862 100644
+index ef18348..1b53cf0 100644
--- a/drivers/mmc/core/mmc_ops.c
+++ b/drivers/mmc/core/mmc_ops.c
@@ -213,7 +213,7 @@ mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host,
@@ -43709,10 +43329,10 @@ index c3785ed..1984c44 100644
}
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
-index 926aaf6..8e153e2 100644
+index 6debda9..2ba7427 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
-@@ -664,9 +664,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
+@@ -668,9 +668,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
* we can use overriding functions instead of default.
*/
if (host->quirks & SDHCI_QUIRK_NONSTANDARD_CLOCK) {
@@ -43741,7 +43361,7 @@ index 096993f..f02c23b 100644
if (!ECCBUF_SIZE) {
/* We should fall back to a general writev implementation.
diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
-index 0c8bb6b..6f35deb 100644
+index 2ed2bb3..2d0b82e 100644
--- a/drivers/mtd/nand/denali.c
+++ b/drivers/mtd/nand/denali.c
@@ -24,6 +24,7 @@
@@ -43765,12 +43385,12 @@ index 51b9d6a..52af9a7 100644
#include <linux/mtd/nand.h>
#include <linux/mtd/nftl.h>
diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
-index f9d5615..99dd95f 100644
+index 4b8e895..6b3c498 100644
--- a/drivers/mtd/sm_ftl.c
+++ b/drivers/mtd/sm_ftl.c
-@@ -56,7 +56,7 @@ ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
+@@ -56,7 +56,7 @@ static ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
#define SM_CIS_VENDOR_OFFSET 0x59
- struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
+ static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
{
- struct attribute_group *attr_group;
+ attribute_group_no_const *attr_group;
@@ -43778,10 +43398,10 @@ index f9d5615..99dd95f 100644
struct sm_sysfs_attribute *vendor_attribute;
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index 5e31046..82f8ddc 100644
+index e883bfe..e51a1ec 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
-@@ -4839,7 +4839,7 @@ static unsigned int bond_get_num_tx_queues(void)
+@@ -4511,7 +4511,7 @@ static unsigned int bond_get_num_tx_queues(void)
return tx_queues;
}
@@ -43790,7 +43410,7 @@ index 5e31046..82f8ddc 100644
.kind = "bond",
.priv_size = sizeof(struct bonding),
.setup = bond_setup,
-@@ -4964,8 +4964,8 @@ static void __exit bonding_exit(void)
+@@ -4636,8 +4636,8 @@ static void __exit bonding_exit(void)
bond_destroy_debugfs();
@@ -43801,7 +43421,7 @@ index 5e31046..82f8ddc 100644
#ifdef CONFIG_NET_POLL_CONTROLLER
/*
diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
-index e1d2643..7f4133b 100644
+index f92f001..0b2f9bf 100644
--- a/drivers/net/ethernet/8390/ax88796.c
+++ b/drivers/net/ethernet/8390/ax88796.c
@@ -872,9 +872,11 @@ static int ax_probe(struct platform_device *pdev)
@@ -43818,10 +43438,10 @@ index e1d2643..7f4133b 100644
if (!request_mem_region(mem->start, mem_size, pdev->name)) {
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
-index c07a6d0..ca88c45 100644
+index da8fcaa..f4b5d3b 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
-@@ -1137,7 +1137,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
+@@ -1138,7 +1138,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
{
/* RX_MODE controlling object */
@@ -43831,10 +43451,10 @@ index c07a6d0..ca88c45 100644
/* multicast configuration controlling object */
bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
-index 8f03c98..dd0ef10 100644
+index 9fbeee5..5e3e37a 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
-@@ -2345,15 +2345,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
+@@ -2590,15 +2590,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
return rc;
}
@@ -43856,10 +43476,10 @@ index 8f03c98..dd0ef10 100644
}
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
-index 798dfe9..05d0a44 100644
+index 658f4e3..15074a6 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
-@@ -1311,8 +1311,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
+@@ -1325,8 +1325,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
/********************* RX MODE ****************/
@@ -43870,7 +43490,7 @@ index 798dfe9..05d0a44 100644
/**
* bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
-index cd63d11..b67dd78 100644
+index 7025780..e55a71c 100644
--- a/drivers/net/ethernet/broadcom/tg3.h
+++ b/drivers/net/ethernet/broadcom/tg3.h
@@ -147,6 +147,7 @@
@@ -43895,10 +43515,10 @@ index 8cffcdf..aadf043 100644
#define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
-index 5a3256b..60f16d8 100644
+index c73cabd..cd278b1 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
-@@ -2177,7 +2177,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs,
+@@ -2186,7 +2186,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs,
int i;
struct adapter *ap = netdev2adap(dev);
@@ -43908,7 +43528,7 @@ index 5a3256b..60f16d8 100644
if (is_t4(ap->chip)) {
diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
-index 4c83003..2a2a5b9 100644
+index 263b92c..f05134b 100644
--- a/drivers/net/ethernet/dec/tulip/de4x5.c
+++ b/drivers/net/ethernet/dec/tulip/de4x5.c
@@ -5388,7 +5388,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
@@ -43930,10 +43550,10 @@ index 4c83003..2a2a5b9 100644
break;
}
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
-index 3d91a5e..1014702 100644
+index 2c38cc4..0323f6e 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
-@@ -469,7 +469,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
+@@ -470,7 +470,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
if (wrapped)
newacc += 65536;
@@ -43941,9 +43561,9 @@ index 3d91a5e..1014702 100644
+ ACCESS_ONCE_RW(*acc) = newacc;
}
- void populate_erx_stats(struct be_adapter *adapter,
+ static void populate_erx_stats(struct be_adapter *adapter,
diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
-index 934e1ae..b262e6b 100644
+index 212f44b..fb69959 100644
--- a/drivers/net/ethernet/faraday/ftgmac100.c
+++ b/drivers/net/ethernet/faraday/ftgmac100.c
@@ -31,6 +31,8 @@
@@ -43956,7 +43576,7 @@ index 934e1ae..b262e6b 100644
#include "ftgmac100.h"
diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
-index 4658f4c..407d155 100644
+index 8be5b40..081bc1b 100644
--- a/drivers/net/ethernet/faraday/ftmac100.c
+++ b/drivers/net/ethernet/faraday/ftmac100.c
@@ -31,6 +31,8 @@
@@ -43968,21 +43588,8 @@ index 4658f4c..407d155 100644
#include "ftmac100.h"
-diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
-index 85fe7b5..e2da180 100644
---- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
-+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
-@@ -2637,6 +2637,8 @@ static int igb_set_eee(struct net_device *netdev,
- (hw->phy.media_type != e1000_media_type_copper))
- return -EOPNOTSUPP;
-
-+ memset(&eee_curr, 0, sizeof(struct ethtool_eee));
-+
- ret_val = igb_get_eee(netdev, &eee_curr);
- if (ret_val)
- return ret_val;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
-index 331987d..3be1135 100644
+index 5184e2a..acb28c3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -776,7 +776,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
@@ -44020,13 +43627,13 @@ index fbe5363..266b4e3 100644
__vxge_hw_mempool_create(vpath->hldev,
fifo->config->memblock_size,
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
-index 345d987..af69721 100644
+index f09e787..f3916a8 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
-@@ -2011,7 +2011,9 @@ int qlcnic_83xx_config_default_opmode(struct qlcnic_adapter *adapter)
- op_mode = QLC_83XX_DEFAULT_OPMODE;
+@@ -2055,7 +2055,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
- if (op_mode == QLC_83XX_DEFAULT_OPMODE) {
+ } else if (ret == QLC_83XX_DEFAULT_OPMODE) {
+ ahw->nic_mode = QLC_83XX_DEFAULT_MODE;
- adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
+ pax_open_kernel();
+ *(void **)&adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
@@ -44035,7 +43642,7 @@ index 345d987..af69721 100644
} else {
return -EIO;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
-index 599d1fd..59868fe 100644
+index 0248a4c..9648d96 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
@@ -191,17 +191,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
@@ -44066,10 +43673,10 @@ index 599d1fd..59868fe 100644
default:
dev_err(&adapter->pdev->dev, "Invalid Virtual NIC opmode\n");
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
-index 79e54ef..dec4019 100644
+index 1551360..ed6510f 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
-@@ -1105,7 +1105,7 @@ int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
+@@ -1108,7 +1108,7 @@ int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
struct qlcnic_dump_entry *entry;
struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump;
struct qlcnic_dump_template_hdr *tmpl_hdr = fw_dump->tmpl_hdr;
@@ -44079,7 +43686,7 @@ index 79e54ef..dec4019 100644
struct qlcnic_hardware_context *ahw;
void *temp_buffer;
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 7ba68e0..618c73d 100644
+index 3397cee..101f8fa 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -759,22 +759,22 @@ struct rtl8169_private {
@@ -44110,18 +43717,18 @@ index 7ba68e0..618c73d 100644
int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
int (*get_settings)(struct net_device *, struct ethtool_cmd *);
diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
-index b495394..0748c54 100644
+index 03acf57..e1251ff 100644
--- a/drivers/net/ethernet/sfc/ptp.c
+++ b/drivers/net/ethernet/sfc/ptp.c
-@@ -535,7 +535,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
- (u32)((u64)ptp->start.dma_addr >> 32));
+@@ -539,7 +539,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
+ ptp->start.dma_addr);
/* Clear flag that signals MC ready */
- ACCESS_ONCE(*start) = 0;
+ ACCESS_ONCE_RW(*start) = 0;
- efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
- MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
-
+ rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
+ MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
+ EFX_BUG_ON_PARANOID(rc);
diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
index 50617c5..b13724c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
@@ -44186,10 +43793,10 @@ index bf0d55e..82bcfbd1 100644
priv = netdev_priv(dev);
priv->phy = phy;
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
-index 16b43bf..ead0c35 100644
+index 9bf46bd..bfdaa84 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
-@@ -934,13 +934,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
+@@ -939,13 +939,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
int macvlan_link_register(struct rtnl_link_ops *ops)
{
/* common fields */
@@ -44212,7 +43819,7 @@ index 16b43bf..ead0c35 100644
return rtnl_link_register(ops);
};
-@@ -996,7 +998,7 @@ static int macvlan_device_event(struct notifier_block *unused,
+@@ -1001,7 +1003,7 @@ static int macvlan_device_event(struct notifier_block *unused,
return NOTIFY_DONE;
}
@@ -44222,10 +43829,10 @@ index 16b43bf..ead0c35 100644
};
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index ea53abb..2e4d087 100644
+index 9dccb1e..19fd4c9 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
-@@ -1286,7 +1286,7 @@ static int macvtap_device_event(struct notifier_block *unused,
+@@ -1183,7 +1183,7 @@ static int macvtap_device_event(struct notifier_block *unused,
return NOTIFY_DONE;
}
@@ -44282,10 +43889,10 @@ index 1252d9c..80e660b 100644
/* We've got a compressed packet; read the change byte */
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
-index bff7e0b..7315137 100644
+index 50e43e6..e1a5807 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
-@@ -2702,7 +2702,7 @@ static int team_device_event(struct notifier_block *unused,
+@@ -2869,7 +2869,7 @@ static int team_device_event(struct notifier_block *unused,
return NOTIFY_DONE;
}
@@ -44295,10 +43902,10 @@ index bff7e0b..7315137 100644
};
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index 68b9aa3..b3c20f3 100644
+index 7cb105c..11214ff 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
-@@ -1874,7 +1874,7 @@ unlock:
+@@ -1826,7 +1826,7 @@ unlock:
}
static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
@@ -44307,8 +43914,8 @@ index 68b9aa3..b3c20f3 100644
{
struct tun_file *tfile = file->private_data;
struct tun_struct *tun;
-@@ -1886,6 +1886,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
- int vnet_hdr_sz;
+@@ -1839,6 +1839,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
+ unsigned int ifindex;
int ret;
+ if (ifreq_len > sizeof ifr)
@@ -44431,10 +44038,10 @@ index a79e9d3..78cd4fa 100644
/* we will have to manufacture ethernet headers, prepare template */
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
-index 8a05d77..ba8b9c5 100644
+index 2ef5b62..6fa0ec3 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
-@@ -1870,7 +1870,7 @@ nla_put_failure:
+@@ -2615,7 +2615,7 @@ nla_put_failure:
return -EMSGSIZE;
}
@@ -44457,7 +44064,7 @@ index 0b60295..b8bfa5b 100644
if (rd == NULL) {
result = -ENOMEM;
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
-index d0adbaf..6cedbf0 100644
+index 7fe1964..7016de0 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -7844,7 +7844,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
@@ -44482,37 +44089,13 @@ index 34c8a33..3261fdc 100644
{
return msecs_to_jiffies((s->poll_timeout[2] << 16)
| (s->poll_timeout[1] << 8)
-diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
-index 2b3426b..1f564be 100644
---- a/drivers/net/wireless/ath/ath10k/core.c
-+++ b/drivers/net/wireless/ath/ath10k/core.c
-@@ -507,7 +507,9 @@ EXPORT_SYMBOL(ath10k_core_destroy);
-
- int ath10k_core_register(struct ath10k *ar)
- {
-- struct ath10k_htc_ops htc_ops;
-+ static struct ath10k_htc_ops htc_ops = {
-+ .target_send_suspend_complete = ath10k_send_suspend_complete,
-+ };
- struct bmi_target_info target_info;
- int status;
-
-@@ -536,8 +538,6 @@ int ath10k_core_register(struct ath10k *ar)
- if (status)
- goto err;
-
-- htc_ops.target_send_suspend_complete = ath10k_send_suspend_complete;
--
- ar->htc = ath10k_htc_create(ar, &htc_ops);
- if (IS_ERR(ar->htc)) {
- status = PTR_ERR(ar->htc);
diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
-index 74363c9..237b926 100644
+index ef3329e..c28ff5d 100644
--- a/drivers/net/wireless/ath/ath10k/htc.c
+++ b/drivers/net/wireless/ath/ath10k/htc.c
@@ -963,7 +963,10 @@ void ath10k_htc_stop(struct ath10k_htc *htc)
- struct ath10k_htc *ath10k_htc_create(struct ath10k *ar,
- struct ath10k_htc_ops *htc_ops)
+ /* registered target arrival callback from the HIF layer */
+ int ath10k_htc_init(struct ath10k *ar)
{
- struct ath10k_hif_cb htc_callbacks;
+ static struct ath10k_hif_cb htc_callbacks = {
@@ -44520,9 +44103,9 @@ index 74363c9..237b926 100644
+ .tx_completion = ath10k_htc_tx_completion_handler,
+ };
struct ath10k_htc_ep *ep = NULL;
- struct ath10k_htc *htc = NULL;
+ struct ath10k_htc *htc = &ar->htc;
-@@ -979,8 +982,6 @@ struct ath10k_htc *ath10k_htc_create(struct ath10k *ar,
+@@ -973,8 +976,6 @@ int ath10k_htc_init(struct ath10k *ar)
ath10k_htc_reset_endpoint_states(htc);
/* setup HIF layer callbacks */
@@ -44531,6 +44114,25 @@ index 74363c9..237b926 100644
htc->ar = ar;
/* Get HIF default pipe for HTC message exchange */
+diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
+index e1dd8c7..9f91b3f 100644
+--- a/drivers/net/wireless/ath/ath10k/htc.h
++++ b/drivers/net/wireless/ath/ath10k/htc.h
+@@ -271,12 +271,12 @@ enum ath10k_htc_ep_id {
+
+ struct ath10k_htc_ops {
+ void (*target_send_suspend_complete)(struct ath10k *ar);
+-};
++} __no_const;
+
+ struct ath10k_htc_ep_ops {
+ void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
+ void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
+-};
++} __no_const;
+
+ /* service connection information */
+ struct ath10k_htc_svc_conn_req {
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
index 8d78253..bebbb68 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
@@ -44615,7 +44217,7 @@ index 8d78253..bebbb68 100644
| set11nRateFlags(i->rates, 2)
| set11nRateFlags(i->rates, 3)
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
-index 5163abd..3ada4c2 100644
+index f6c5c1b..6058354 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
@@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
@@ -44737,10 +44339,10 @@ index 5163abd..3ada4c2 100644
static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
-index cd74b3a..6a28d24 100644
+index 69a907b..91e071c 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -652,7 +652,7 @@ struct ath_hw_private_ops {
+@@ -657,7 +657,7 @@ struct ath_hw_private_ops {
/* ANI */
void (*ani_cache_ini_regs)(struct ath_hw *ah);
@@ -44749,10 +44351,10 @@ index cd74b3a..6a28d24 100644
/**
* struct ath_spec_scan - parameters for Atheros spectral scan
-@@ -721,7 +721,7 @@ struct ath_hw_ops {
- struct ath_spec_scan *param);
- void (*spectral_scan_trigger)(struct ath_hw *ah);
- void (*spectral_scan_wait)(struct ath_hw *ah);
+@@ -729,7 +729,7 @@ struct ath_hw_ops {
+ #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
+ void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
+ #endif
-};
+} __no_const;
@@ -44787,10 +44389,10 @@ index 9581d07..84f6a76 100644
D_INFO("*** LOAD DRIVER ***\n");
diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
-index d532948..e0d8bb1 100644
+index d94f8ab..5b568c8 100644
--- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
-@@ -203,7 +203,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
+@@ -188,7 +188,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[64];
@@ -44799,7 +44401,7 @@ index d532948..e0d8bb1 100644
u32 offset, len;
memset(buf, 0, sizeof(buf));
-@@ -473,7 +473,7 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file,
+@@ -458,7 +458,7 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file,
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44808,7 +44410,7 @@ index d532948..e0d8bb1 100644
u32 reset_flag;
memset(buf, 0, sizeof(buf));
-@@ -554,7 +554,7 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file,
+@@ -539,7 +539,7 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44817,7 +44419,7 @@ index d532948..e0d8bb1 100644
int ht40;
memset(buf, 0, sizeof(buf));
-@@ -606,7 +606,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
+@@ -591,7 +591,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44826,7 +44428,7 @@ index d532948..e0d8bb1 100644
int value;
memset(buf, 0, sizeof(buf));
-@@ -698,10 +698,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
+@@ -683,10 +683,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
DEBUGFS_READ_WRITE_FILE_OPS(sleep_level_override);
DEBUGFS_READ_FILE_OPS(current_sleep_command);
@@ -44841,7 +44443,7 @@ index d532948..e0d8bb1 100644
"%-32s current cumulative delta max\n";
static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
-@@ -1871,7 +1871,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
+@@ -1856,7 +1856,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44850,7 +44452,7 @@ index d532948..e0d8bb1 100644
int clear;
memset(buf, 0, sizeof(buf));
-@@ -1916,7 +1916,7 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
+@@ -1901,7 +1901,7 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44859,7 +44461,7 @@ index d532948..e0d8bb1 100644
int trace;
memset(buf, 0, sizeof(buf));
-@@ -1987,7 +1987,7 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file,
+@@ -1972,7 +1972,7 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44868,7 +44470,7 @@ index d532948..e0d8bb1 100644
int missed;
memset(buf, 0, sizeof(buf));
-@@ -2028,7 +2028,7 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
+@@ -2013,7 +2013,7 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44877,7 +44479,7 @@ index d532948..e0d8bb1 100644
int plcp;
memset(buf, 0, sizeof(buf));
-@@ -2088,7 +2088,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
+@@ -2073,7 +2073,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44886,7 +44488,7 @@ index d532948..e0d8bb1 100644
int flush;
memset(buf, 0, sizeof(buf));
-@@ -2178,7 +2178,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file,
+@@ -2163,7 +2163,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file,
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44895,7 +44497,7 @@ index d532948..e0d8bb1 100644
int rts;
if (!priv->cfg->ht_params)
-@@ -2220,7 +2220,7 @@ static ssize_t iwl_dbgfs_echo_test_write(struct file *file,
+@@ -2205,7 +2205,7 @@ static ssize_t iwl_dbgfs_echo_test_write(struct file *file,
{
struct iwl_priv *priv = file->private_data;
char buf[8];
@@ -44904,7 +44506,7 @@ index d532948..e0d8bb1 100644
memset(buf, 0, sizeof(buf));
buf_size = min(count, sizeof(buf) - 1);
-@@ -2254,7 +2254,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
+@@ -2239,7 +2239,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
struct iwl_priv *priv = file->private_data;
u32 event_log_flag;
char buf[8];
@@ -44913,7 +44515,7 @@ index d532948..e0d8bb1 100644
/* check that the interface is up */
if (!iwl_is_ready(priv))
-@@ -2308,7 +2308,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
+@@ -2293,7 +2293,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
struct iwl_priv *priv = file->private_data;
char buf[8];
u32 calib_disabled;
@@ -44923,10 +44525,10 @@ index d532948..e0d8bb1 100644
memset(buf, 0, sizeof(buf));
buf_size = min(count, sizeof(buf) - 1);
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c
-index 1531a4f..21d2641 100644
+index 7aad766..06addb4 100644
--- a/drivers/net/wireless/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/iwlwifi/dvm/main.c
-@@ -1180,7 +1180,7 @@ static void iwl_option_config(struct iwl_priv *priv)
+@@ -1123,7 +1123,7 @@ static void iwl_option_config(struct iwl_priv *priv)
static int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
{
struct iwl_nvm_data *data = priv->nvm_data;
@@ -44935,7 +44537,7 @@ index 1531a4f..21d2641 100644
if (data->sku_cap_11n_enable &&
!priv->cfg->ht_params) {
-@@ -1194,7 +1194,6 @@ static int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
+@@ -1137,7 +1137,6 @@ static int iwl_eeprom_init_hw_params(struct iwl_priv *priv)
return -EINVAL;
}
@@ -44944,10 +44546,10 @@ index 1531a4f..21d2641 100644
data->sku_cap_band_24GHz_enable ? "" : "NOT", "enabled",
data->sku_cap_band_52GHz_enable ? "" : "NOT", "enabled",
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
-index 390e2f0..75cfbaf 100644
+index c3f904d..4cadf83 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
-@@ -1350,7 +1350,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
+@@ -1252,7 +1252,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
char buf[8];
@@ -44956,7 +44558,7 @@ index 390e2f0..75cfbaf 100644
u32 reset_flag;
memset(buf, 0, sizeof(buf));
-@@ -1371,7 +1371,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
+@@ -1273,7 +1273,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
{
struct iwl_trans *trans = file->private_data;
char buf[8];
@@ -44966,10 +44568,10 @@ index 390e2f0..75cfbaf 100644
memset(buf, 0, sizeof(buf));
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
-index cb34c78..9fec0dc 100644
+index 2cd3f54..e936f90 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
-@@ -2195,25 +2195,19 @@ static int __init init_mac80211_hwsim(void)
+@@ -2196,25 +2196,19 @@ static int __init init_mac80211_hwsim(void)
if (channels > 1) {
hwsim_if_comb.num_different_channels = channels;
@@ -45022,10 +44624,10 @@ index 8169a85..7fa3b47 100644
tmp = cpu_to_le32(rts_threshold);
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
-index ee3fc57..ed5ddc9 100644
+index fe4c572..99dedfa 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -386,7 +386,7 @@ struct rt2x00_intf {
+@@ -387,7 +387,7 @@ struct rt2x00_intf {
* for hardware which doesn't support hardware
* sequence counting.
*/
@@ -45035,7 +44637,7 @@ index ee3fc57..ed5ddc9 100644
static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
-index aa95c6c..a59dd67 100644
+index 6c8a33b..78212fa 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -252,9 +252,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
@@ -45211,7 +44813,7 @@ index ed2c3ec..deda85a 100644
}
diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c
-index 84a208d..d61b0a1 100644
+index ee2cfce..7f8f699 100644
--- a/drivers/oprofile/oprofile_files.c
+++ b/drivers/oprofile/oprofile_files.c
@@ -27,7 +27,7 @@ unsigned long oprofile_time_slice;
@@ -45224,7 +44826,7 @@ index 84a208d..d61b0a1 100644
{
return oprofilefs_ulong_to_user(jiffies_to_msecs(oprofile_time_slice),
diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
-index 917d28e..d62d981 100644
+index 59659ce..6c860a0 100644
--- a/drivers/oprofile/oprofile_stats.c
+++ b/drivers/oprofile/oprofile_stats.c
@@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
@@ -45245,7 +44847,7 @@ index 917d28e..d62d981 100644
diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h
-index 38b6fc0..b5cbfce 100644
+index 1fc622b..8c48fc3 100644
--- a/drivers/oprofile/oprofile_stats.h
+++ b/drivers/oprofile/oprofile_stats.h
@@ -13,11 +13,11 @@
@@ -45266,10 +44868,10 @@ index 38b6fc0..b5cbfce 100644
extern struct oprofile_stat_struct oprofile_stats;
diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
-index 7c12d9c..9f5e825 100644
+index 3f49345..c750d0b 100644
--- a/drivers/oprofile/oprofilefs.c
+++ b/drivers/oprofile/oprofilefs.c
-@@ -177,8 +177,8 @@ int oprofilefs_create_ro_ulong(struct super_block *sb, struct dentry *root,
+@@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t count, loff_t *offset)
{
@@ -45280,14 +44882,14 @@ index 7c12d9c..9f5e825 100644
}
-@@ -190,7 +190,7 @@ static const struct file_operations atomic_ro_fops = {
+@@ -189,7 +189,7 @@ static const struct file_operations atomic_ro_fops = {
- int oprofilefs_create_ro_atomic(struct super_block *sb, struct dentry *root,
+ int oprofilefs_create_ro_atomic(struct dentry *root,
- char const *name, atomic_t *val)
+ char const *name, atomic_unchecked_t *val)
{
- return __oprofilefs_create_file(sb, root, name,
+ return __oprofilefs_create_file(root, name,
&atomic_ro_fops, 0444, val);
diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c
index 61be1d9..dec05d7 100644
@@ -45325,10 +44927,10 @@ index 92ed045..62d39bd7 100644
#endif /* IEEE1284.3 support. */
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
-index c35e8ad..fc33beb 100644
+index 2f5786c..61ab4d1 100644
--- a/drivers/pci/hotplug/acpiphp_ibm.c
+++ b/drivers/pci/hotplug/acpiphp_ibm.c
-@@ -464,7 +464,9 @@ static int __init ibm_acpiphp_init(void)
+@@ -463,7 +463,9 @@ static int __init ibm_acpiphp_init(void)
goto init_cleanup;
}
@@ -45451,10 +45053,10 @@ index ec20f74..c1d961e 100644
mutex_lock(&pci_hp_mutex);
/*
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
-index 7d72c5e..edce02c 100644
+index f4a18f5..ff2463c 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
-@@ -91,7 +91,7 @@ static int init_slot(struct controller *ctrl)
+@@ -92,7 +92,7 @@ static int init_slot(struct controller *ctrl)
struct slot *slot = ctrl->slot;
struct hotplug_slot *hotplug = NULL;
struct hotplug_slot_info *info = NULL;
@@ -45464,10 +45066,10 @@ index 7d72c5e..edce02c 100644
int retval = -ENOMEM;
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
-index c0dbe1f..94cf3d8 100644
+index 7128cfd..a0640d6 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
-@@ -1073,7 +1073,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
+@@ -1083,7 +1083,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
{
/* allocate attribute structure, piggyback attribute name */
int name_len = write_combine ? 13 : 10;
@@ -45476,7 +45078,7 @@ index c0dbe1f..94cf3d8 100644
int retval;
res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
-@@ -1258,7 +1258,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
+@@ -1268,7 +1268,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
static int pci_create_capabilities_sysfs(struct pci_dev *dev)
{
int retval;
@@ -45485,7 +45087,7 @@ index c0dbe1f..94cf3d8 100644
/* If the device has VPD, try to expose it in sysfs. */
if (dev->vpd) {
-@@ -1305,7 +1305,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
+@@ -1315,7 +1315,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
{
int retval;
int rom_size = 0;
@@ -45495,10 +45097,10 @@ index c0dbe1f..94cf3d8 100644
if (!sysfs_initialized)
return -EACCES;
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
-index d1182c4..2a138ec 100644
+index 8a00c06..18a9715 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
-@@ -92,7 +92,7 @@ struct pci_vpd_ops {
+@@ -95,7 +95,7 @@ struct pci_vpd_ops {
struct pci_vpd {
unsigned int len;
const struct pci_vpd_ops *ops;
@@ -45525,10 +45127,10 @@ index 403a443..034e050 100644
#define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
-index 46ada5c..20da716 100644
+index 7ef0f86..17b710f 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
-@@ -173,7 +173,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
+@@ -175,7 +175,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
struct pci_bus_region region, inverted_region;
bool bar_too_big = false, bar_disabled = false;
@@ -45610,10 +45212,10 @@ index 70222f2..8c8ce66 100644
acpi_status status;
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
-index 3a1b6bf..b453930 100644
+index 13ec195..6af61af 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
-@@ -2486,7 +2486,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
+@@ -2475,7 +2475,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
}
/* High speed charging function */
@@ -45623,10 +45225,10 @@ index 3a1b6bf..b453930 100644
static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
struct device_attribute *attr,
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index 54d31c0..3f896d3 100644
+index 03ca6c1..1ef2ddd 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -2093,7 +2093,7 @@ static int hotkey_mask_get(void)
+@@ -2091,7 +2091,7 @@ static int hotkey_mask_get(void)
return 0;
}
@@ -45635,7 +45237,7 @@ index 54d31c0..3f896d3 100644
{
/* log only what the user can fix... */
const u32 wantedmask = hotkey_driver_mask &
-@@ -2324,11 +2324,6 @@ static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m)
+@@ -2318,11 +2318,6 @@ static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m)
}
}
@@ -45647,7 +45249,7 @@ index 54d31c0..3f896d3 100644
#define TPACPI_COMPARE_KEY(__scancode, __member) \
do { \
if ((event_mask & (1 << __scancode)) && \
-@@ -2342,36 +2337,42 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
+@@ -2336,36 +2331,42 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
tpacpi_hotkey_send_key(__scancode); \
} while (0)
@@ -45714,7 +45316,7 @@ index 54d31c0..3f896d3 100644
TPACPI_COMPARE_KEY(TP_ACPI_HOTKEYSCAN_THINKPAD, thinkpad_toggle);
TPACPI_COMPARE_KEY(TP_ACPI_HOTKEYSCAN_FNSPACE, zoom_toggle);
TPACPI_COMPARE_KEY(TP_ACPI_HOTKEYSCAN_FNF7, display_toggle);
-@@ -2405,7 +2406,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
+@@ -2399,7 +2400,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
oldn->volume_level != newn->volume_level) {
/* recently muted, or repeated mute keypress, or
* multiple presses ending in mute */
@@ -45723,7 +45325,7 @@ index 54d31c0..3f896d3 100644
TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_MUTE);
}
} else {
-@@ -2415,7 +2416,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
+@@ -2409,7 +2410,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_VOLUMEUP);
}
if (oldn->volume_level != newn->volume_level) {
@@ -45732,7 +45334,7 @@ index 54d31c0..3f896d3 100644
} else if (oldn->volume_toggle != newn->volume_toggle) {
/* repeated vol up/down keypress at end of scale ? */
if (newn->volume_level == 0)
-@@ -2428,7 +2429,8 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
+@@ -2422,7 +2423,8 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
/* handle brightness */
if (oldn->brightness_level != newn->brightness_level) {
issue_brightnesschange(oldn->brightness_level,
@@ -45742,7 +45344,7 @@ index 54d31c0..3f896d3 100644
} else if (oldn->brightness_toggle != newn->brightness_toggle) {
/* repeated key presses that didn't change state */
if (newn->brightness_level == 0)
-@@ -2437,10 +2439,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
+@@ -2431,10 +2433,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
&& !tp_features.bright_unkfw)
TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
}
@@ -45881,7 +45483,7 @@ index cc439fd..8fa30df 100644
#endif /* CONFIG_SYSFS */
diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
-index 3b2d5df..3207114 100644
+index 00e6672..2642c08 100644
--- a/drivers/power/power_supply_core.c
+++ b/drivers/power/power_supply_core.c
@@ -24,7 +24,10 @@
@@ -45896,7 +45498,7 @@ index 3b2d5df..3207114 100644
static bool __power_supply_is_supplied_by(struct power_supply *supplier,
struct power_supply *supply)
-@@ -558,7 +561,7 @@ static int __init power_supply_class_init(void)
+@@ -584,7 +587,7 @@ static int __init power_supply_class_init(void)
return PTR_ERR(power_supply_class);
power_supply_class->dev_uevent = power_supply_uevent;
@@ -45906,7 +45508,7 @@ index 3b2d5df..3207114 100644
return 0;
}
diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
-index 29178f7..c65f324 100644
+index 44420d1..967126e 100644
--- a/drivers/power/power_supply_sysfs.c
+++ b/drivers/power/power_supply_sysfs.c
@@ -230,17 +230,15 @@ static struct attribute_group power_supply_attr_group = {
@@ -45930,10 +45532,10 @@ index 29178f7..c65f324 100644
__power_supply_attrs[i] = &power_supply_attrs[i].attr;
}
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
-index 288c75a..065bc84 100644
+index a01b8b3..37c2afe 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -3544,7 +3544,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
+@@ -3307,7 +3307,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
{
const struct regulation_constraints *constraints = NULL;
const struct regulator_init_data *init_data;
@@ -45942,7 +45544,7 @@ index 288c75a..065bc84 100644
struct regulator_dev *rdev;
struct device *dev;
int ret, i;
-@@ -3614,7 +3614,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
+@@ -3377,7 +3377,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
rdev->dev.of_node = config->of_node;
rdev->dev.parent = dev;
dev_set_name(&rdev->dev, "regulator.%d",
@@ -45952,10 +45554,10 @@ index 288c75a..065bc84 100644
if (ret != 0) {
put_device(&rdev->dev);
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
-index d428ef9..fdc0357 100644
+index 144bcac..d20e7db 100644
--- a/drivers/regulator/max8660.c
+++ b/drivers/regulator/max8660.c
-@@ -333,8 +333,10 @@ static int max8660_probe(struct i2c_client *client,
+@@ -420,8 +420,10 @@ static int max8660_probe(struct i2c_client *client,
max8660->shadow_regs[MAX8660_OVER1] = 5;
} else {
/* Otherwise devices can be toggled via software */
@@ -45969,7 +45571,7 @@ index d428ef9..fdc0357 100644
/*
diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
-index 0c5195a..637a453d 100644
+index 5b77ab7..a62f061 100644
--- a/drivers/regulator/max8973-regulator.c
+++ b/drivers/regulator/max8973-regulator.c
@@ -406,9 +406,11 @@ static int max8973_probe(struct i2c_client *client,
@@ -46007,7 +45609,7 @@ index 1037e07..e64dea1 100644
mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
ARRAY_SIZE(mc13892_regulators));
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
-index be06d71..264aee9 100644
+index 24e733c..bfbaa3e 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -731,7 +731,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
@@ -46213,10 +45815,10 @@ index df0c3c7..b00e1d0 100644
/* These three are default values which can be overridden */
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
-index 7f4f790..b75b92a 100644
+index 891c86b..dd1224a0 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
-@@ -554,7 +554,7 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
+@@ -578,7 +578,7 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
unsigned long flags;
if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
@@ -46225,7 +45827,7 @@ index 7f4f790..b75b92a 100644
if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
a = rq->head[rq->current_entry];
-@@ -3422,7 +3422,7 @@ static void start_io(struct ctlr_info *h)
+@@ -3444,7 +3444,7 @@ static void start_io(struct ctlr_info *h)
while (!list_empty(&h->reqQ)) {
c = list_entry(h->reqQ.next, struct CommandList, list);
/* can't do anything if fifo is full */
@@ -46234,7 +45836,7 @@ index 7f4f790..b75b92a 100644
dev_warn(&h->pdev->dev, "fifo full\n");
break;
}
-@@ -3444,7 +3444,7 @@ static void start_io(struct ctlr_info *h)
+@@ -3466,7 +3466,7 @@ static void start_io(struct ctlr_info *h)
/* Tell the controller execute command */
spin_unlock_irqrestore(&h->lock, flags);
@@ -46243,7 +45845,7 @@ index 7f4f790..b75b92a 100644
spin_lock_irqsave(&h->lock, flags);
}
spin_unlock_irqrestore(&h->lock, flags);
-@@ -3452,17 +3452,17 @@ static void start_io(struct ctlr_info *h)
+@@ -3474,17 +3474,17 @@ static void start_io(struct ctlr_info *h)
static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
{
@@ -46264,7 +45866,7 @@ index 7f4f790..b75b92a 100644
(h->interrupts_enabled == 0);
}
-@@ -4364,7 +4364,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
+@@ -4386,7 +4386,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
if (prod_index < 0)
return -ENODEV;
h->product_name = products[prod_index].product_name;
@@ -46273,7 +45875,7 @@ index 7f4f790..b75b92a 100644
pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S |
PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM);
-@@ -4646,7 +4646,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
+@@ -4668,7 +4668,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
assert_spin_locked(&lockup_detector_lock);
remove_ctlr_from_lockup_detector_list(h);
@@ -46282,7 +45884,7 @@ index 7f4f790..b75b92a 100644
spin_lock_irqsave(&h->lock, flags);
h->lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
spin_unlock_irqrestore(&h->lock, flags);
-@@ -4823,7 +4823,7 @@ reinit_after_soft_reset:
+@@ -4845,7 +4845,7 @@ reinit_after_soft_reset:
}
/* make sure the board interrupts are off */
@@ -46291,7 +45893,7 @@ index 7f4f790..b75b92a 100644
if (hpsa_request_irq(h, do_hpsa_intr_msi, do_hpsa_intr_intx))
goto clean2;
-@@ -4857,7 +4857,7 @@ reinit_after_soft_reset:
+@@ -4879,7 +4879,7 @@ reinit_after_soft_reset:
* fake ones to scoop up any residual completions.
*/
spin_lock_irqsave(&h->lock, flags);
@@ -46300,7 +45902,7 @@ index 7f4f790..b75b92a 100644
spin_unlock_irqrestore(&h->lock, flags);
free_irqs(h);
rc = hpsa_request_irq(h, hpsa_msix_discard_completions,
-@@ -4876,9 +4876,9 @@ reinit_after_soft_reset:
+@@ -4898,9 +4898,9 @@ reinit_after_soft_reset:
dev_info(&h->pdev->dev, "Board READY.\n");
dev_info(&h->pdev->dev,
"Waiting for stale completions to drain.\n");
@@ -46312,7 +45914,7 @@ index 7f4f790..b75b92a 100644
rc = controller_reset_failed(h->cfgtable);
if (rc)
-@@ -4899,7 +4899,7 @@ reinit_after_soft_reset:
+@@ -4921,7 +4921,7 @@ reinit_after_soft_reset:
}
/* Turn the interrupts on so we can service requests */
@@ -46321,7 +45923,7 @@ index 7f4f790..b75b92a 100644
hpsa_hba_inquiry(h);
hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */
-@@ -4954,7 +4954,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
+@@ -4976,7 +4976,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
* To write all data in the battery backed cache to disks
*/
hpsa_flush_cache(h);
@@ -46330,7 +45932,7 @@ index 7f4f790..b75b92a 100644
hpsa_free_irqs_and_disable_msix(h);
}
-@@ -5122,7 +5122,7 @@ static void hpsa_enter_performant_mode(struct ctlr_info *h, u32 use_short_tags)
+@@ -5144,7 +5144,7 @@ static void hpsa_enter_performant_mode(struct ctlr_info *h, u32 use_short_tags)
return;
}
/* Change the access methods to the performant access methods */
@@ -46340,7 +45942,7 @@ index 7f4f790..b75b92a 100644
}
diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
-index 9816479..c5d4e97 100644
+index bc85e72..ae04a39 100644
--- a/drivers/scsi/hpsa.h
+++ b/drivers/scsi/hpsa.h
@@ -79,7 +79,7 @@ struct ctlr_info {
@@ -46511,10 +46113,10 @@ index 161c98e..6d563b3 100644
.qc_issue = sas_ata_qc_issue,
.qc_fill_rtf = sas_ata_qc_fill_rtf,
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
-index 93f222d..73e977b 100644
+index 4e1b75c..0bbdfa9 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
-@@ -431,7 +431,7 @@ struct lpfc_vport {
+@@ -432,7 +432,7 @@ struct lpfc_vport {
struct dentry *debug_nodelist;
struct dentry *vport_debugfs_root;
struct lpfc_debugfs_trc *disc_trc;
@@ -46627,10 +46229,10 @@ index 60084e6..0e2e700 100644
snprintf(name, sizeof(name), "discovery_trace");
vport->debug_disc_trc =
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
-index e0b20fa..30c2c0d 100644
+index 647f5bf..d0068b9 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
-@@ -10936,8 +10936,10 @@ lpfc_init(void)
+@@ -10952,8 +10952,10 @@ lpfc_init(void)
"misc_register returned with status %d", error);
if (lpfc_enable_npiv) {
@@ -46644,7 +46246,7 @@ index e0b20fa..30c2c0d 100644
lpfc_transport_template =
fc_attach_transport(&lpfc_transport_functions);
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
-index 243de1d..f40e3e5 100644
+index c913e8c..d34a119 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -353,7 +353,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
@@ -46699,10 +46301,10 @@ index 243de1d..f40e3e5 100644
/**
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-index 5100476..3d89a9e 100644
+index 7f0af4f..193ac3e 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-@@ -1542,7 +1542,7 @@ _scsih_get_resync(struct device *dev)
+@@ -1557,7 +1557,7 @@ _scsih_get_resync(struct device *dev)
{
struct scsi_device *sdev = to_scsi_device(dev);
struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
@@ -46711,7 +46313,7 @@ index 5100476..3d89a9e 100644
unsigned long flags;
Mpi2RaidVolPage0_t vol_pg0;
Mpi2ConfigReply_t mpi_reply;
-@@ -1594,7 +1594,7 @@ _scsih_get_state(struct device *dev)
+@@ -1609,7 +1609,7 @@ _scsih_get_state(struct device *dev)
{
struct scsi_device *sdev = to_scsi_device(dev);
struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
@@ -46720,7 +46322,7 @@ index 5100476..3d89a9e 100644
unsigned long flags;
Mpi2RaidVolPage0_t vol_pg0;
Mpi2ConfigReply_t mpi_reply;
-@@ -6622,7 +6622,7 @@ _scsih_sas_ir_operation_status_event(struct MPT2SAS_ADAPTER *ioc,
+@@ -6637,7 +6637,7 @@ _scsih_sas_ir_operation_status_event(struct MPT2SAS_ADAPTER *ioc,
struct fw_event_work *fw_event)
{
Mpi2EventDataIrOperationStatus_t *event_data = fw_event->event_data;
@@ -46729,7 +46331,7 @@ index 5100476..3d89a9e 100644
unsigned long flags;
u16 handle;
-@@ -7093,7 +7093,7 @@ _scsih_scan_for_devices_after_reset(struct MPT2SAS_ADAPTER *ioc)
+@@ -7108,7 +7108,7 @@ _scsih_scan_for_devices_after_reset(struct MPT2SAS_ADAPTER *ioc)
u64 sas_address;
struct _sas_device *sas_device;
struct _sas_node *expander_device;
@@ -46846,10 +46448,10 @@ index e1d150f..6c6df44 100644
/* To indicate add/delete/modify during CCN */
u8 change_detected;
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
-index d7a99ae..801df70 100644
+index 5f174b8..98d32b0 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
-@@ -2004,7 +2004,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
+@@ -2040,7 +2040,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
return 0;
}
@@ -46858,7 +46460,7 @@ index d7a99ae..801df70 100644
.show_host_node_name = 1,
.show_host_port_name = 1,
-@@ -2051,7 +2051,7 @@ struct fc_function_template qla2xxx_transport_functions = {
+@@ -2088,7 +2088,7 @@ struct fc_function_template qla2xxx_transport_functions = {
.bsg_timeout = qla24xx_bsg_timeout,
};
@@ -46868,10 +46470,10 @@ index d7a99ae..801df70 100644
.show_host_node_name = 1,
.show_host_port_name = 1,
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
-index 2d98232..a84298e 100644
+index 4446bf5..9a3574d 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
-@@ -528,8 +528,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *);
+@@ -538,8 +538,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *);
struct device_attribute;
extern struct device_attribute *qla2x00_host_attrs[];
struct fc_function_template;
@@ -46883,10 +46485,10 @@ index 2d98232..a84298e 100644
extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *);
extern void qla2x00_init_host_attr(scsi_qla_host_t *);
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
-index 3e21e9f..426ba79 100644
+index 9f01bbb..5e1dcee 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
-@@ -1570,8 +1570,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
+@@ -1572,8 +1572,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
!pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
/* Ok, a 64bit DMA mask is applicable. */
ha->flags.enable_64bit_addressing = 1;
@@ -46900,10 +46502,10 @@ index 3e21e9f..426ba79 100644
}
}
diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
-index ddf16a8..80f4dd0 100644
+index 41327d4..feb03d479 100644
--- a/drivers/scsi/qla4xxx/ql4_def.h
+++ b/drivers/scsi/qla4xxx/ql4_def.h
-@@ -291,7 +291,7 @@ struct ddb_entry {
+@@ -296,7 +296,7 @@ struct ddb_entry {
* (4000 only) */
atomic_t relogin_timer; /* Max Time to wait for
* relogin to complete */
@@ -46913,10 +46515,10 @@ index ddf16a8..80f4dd0 100644
uint32_t default_time2wait; /* Default Min time between
* relogins (+aens) */
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
-index b246b3c..897004d 100644
+index f8a0a26..ec03cee 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
-@@ -2971,12 +2971,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
+@@ -3066,12 +3066,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
*/
if (!iscsi_is_session_online(cls_sess)) {
/* Reset retry relogin timer */
@@ -46931,7 +46533,7 @@ index b246b3c..897004d 100644
ddb_entry->default_time2wait + 4));
set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
atomic_set(&ddb_entry->retry_relogin_timer,
-@@ -5081,7 +5081,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
+@@ -5209,7 +5209,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
atomic_set(&ddb_entry->relogin_timer, 0);
@@ -46954,7 +46556,7 @@ index eaa808e..95f8841 100644
/* check if the device is still usable */
if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index 124392f..75eb43e 100644
+index d1549b7..2f60767 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1474,7 +1474,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
@@ -46979,7 +46581,7 @@ index 124392f..75eb43e 100644
disposition = scsi_decide_disposition(cmd);
if (disposition != SUCCESS &&
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
-index 7e50061..71db7a6 100644
+index 40c6394..62356c2 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -687,7 +687,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
@@ -47045,10 +46647,10 @@ index 4628fd5..a94a1c2 100644
/*
* Check for overflow; dev_loss_tmo is u32
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
-index abf7c40..c3240ed 100644
+index e4a989f..293090c 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
-@@ -80,7 +80,7 @@ struct iscsi_internal {
+@@ -79,7 +79,7 @@ struct iscsi_internal {
struct transport_container session_cont;
};
@@ -47057,7 +46659,7 @@ index abf7c40..c3240ed 100644
static struct workqueue_struct *iscsi_eh_timer_workq;
static DEFINE_IDA(iscsi_sess_ida);
-@@ -1738,7 +1738,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
+@@ -1737,7 +1737,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
int err;
ihost = shost->shost_data;
@@ -47066,7 +46668,7 @@ index abf7c40..c3240ed 100644
if (target_id == ISCSI_MAX_TARGET) {
id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
-@@ -3956,7 +3956,7 @@ static __init int iscsi_transport_init(void)
+@@ -4077,7 +4077,7 @@ static __init int iscsi_transport_init(void)
printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
ISCSI_TRANSPORT_VERSION);
@@ -47107,10 +46709,10 @@ index f379c7f..e8fc69c 100644
transport_setup_device(&rport->dev);
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index 83e9070..9cb646f 100644
+index 5693f6d7..b0bf05a 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
-@@ -2933,7 +2933,7 @@ static int sd_probe(struct device *dev)
+@@ -2934,7 +2934,7 @@ static int sd_probe(struct device *dev)
sdkp->disk = gd;
sdkp->index = index;
atomic_set(&sdkp->openers, 0);
@@ -47133,10 +46735,10 @@ index df5e961..df6b97f 100644
return blk_trace_startstop(sdp->device->request_queue, 1);
case BLKTRACESTOP:
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
-index 978dda2..cb19aa0 100644
+index 9e039c6..ae9e800 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -1631,7 +1631,7 @@ int spi_bus_unlock(struct spi_master *master)
+@@ -1762,7 +1762,7 @@ int spi_bus_unlock(struct spi_master *master)
EXPORT_SYMBOL_GPL(spi_bus_unlock);
/* portable code must never pass more than 32 bytes */
@@ -47146,7 +46748,7 @@ index 978dda2..cb19aa0 100644
static u8 *buf;
diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
-index ee3a57f..18368c1 100644
+index 2c61783..4d49e4e 100644
--- a/drivers/staging/android/timed_output.c
+++ b/drivers/staging/android/timed_output.c
@@ -25,7 +25,7 @@
@@ -47157,17 +46759,17 @@ index ee3a57f..18368c1 100644
+static atomic_unchecked_t device_count;
static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
- char *buf)
-@@ -59,7 +59,7 @@ static int create_timed_output_class(void)
+ char *buf)
+@@ -63,7 +63,7 @@ static int create_timed_output_class(void)
timed_output_class = class_create(THIS_MODULE, "timed_output");
if (IS_ERR(timed_output_class))
return PTR_ERR(timed_output_class);
- atomic_set(&device_count, 0);
+ atomic_set_unchecked(&device_count, 0);
+ timed_output_class->dev_groups = timed_output_groups;
}
- return 0;
-@@ -76,7 +76,7 @@ int timed_output_dev_register(struct timed_output_dev *tdev)
+@@ -81,7 +81,7 @@ int timed_output_dev_register(struct timed_output_dev *tdev)
if (ret < 0)
return ret;
@@ -47176,6 +46778,154 @@ index ee3a57f..18368c1 100644
tdev->dev = device_create(timed_output_class, NULL,
MKDEV(0, tdev->index), NULL, "%s", tdev->name);
if (IS_ERR(tdev->dev))
+diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c
+index 0247a20..cb9595c 100644
+--- a/drivers/staging/gdm724x/gdm_tty.c
++++ b/drivers/staging/gdm724x/gdm_tty.c
+@@ -45,7 +45,7 @@
+ #define gdm_tty_send_control(n, r, v, d, l) (\
+ n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
+
+-#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
++#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && atomic_read(&gdm->port.count))
+
+ static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
+ static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
+diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
+index ef5064e..fce01db 100644
+--- a/drivers/staging/lustre/lnet/selftest/brw_test.c
++++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
+@@ -478,13 +478,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
+ return 0;
+ }
+
+-sfw_test_client_ops_t brw_test_client;
+-void brw_init_test_client(void)
+-{
+- brw_test_client.tso_init = brw_client_init;
+- brw_test_client.tso_fini = brw_client_fini;
+- brw_test_client.tso_prep_rpc = brw_client_prep_rpc;
+- brw_test_client.tso_done_rpc = brw_client_done_rpc;
++sfw_test_client_ops_t brw_test_client = {
++ .tso_init = brw_client_init,
++ .tso_fini = brw_client_fini,
++ .tso_prep_rpc = brw_client_prep_rpc,
++ .tso_done_rpc = brw_client_done_rpc,
+ };
+
+ srpc_service_t brw_test_service;
+diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c
+index 483c785..e1a2a7b 100644
+--- a/drivers/staging/lustre/lnet/selftest/framework.c
++++ b/drivers/staging/lustre/lnet/selftest/framework.c
+@@ -1635,12 +1635,10 @@ static srpc_service_t sfw_services[] =
+
+ extern sfw_test_client_ops_t ping_test_client;
+ extern srpc_service_t ping_test_service;
+-extern void ping_init_test_client(void);
+ extern void ping_init_test_service(void);
+
+ extern sfw_test_client_ops_t brw_test_client;
+ extern srpc_service_t brw_test_service;
+-extern void brw_init_test_client(void);
+ extern void brw_init_test_service(void);
+
+
+@@ -1684,12 +1682,10 @@ sfw_startup (void)
+ INIT_LIST_HEAD(&sfw_data.fw_zombie_rpcs);
+ INIT_LIST_HEAD(&sfw_data.fw_zombie_sessions);
+
+- brw_init_test_client();
+ brw_init_test_service();
+ rc = sfw_register_test(&brw_test_service, &brw_test_client);
+ LASSERT (rc == 0);
+
+- ping_init_test_client();
+ ping_init_test_service();
+ rc = sfw_register_test(&ping_test_service, &ping_test_client);
+ LASSERT (rc == 0);
+diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c
+index f0f9194..b589047 100644
+--- a/drivers/staging/lustre/lnet/selftest/ping_test.c
++++ b/drivers/staging/lustre/lnet/selftest/ping_test.c
+@@ -210,14 +210,12 @@ ping_server_handle(struct srpc_server_rpc *rpc)
+ return 0;
+ }
+
+-sfw_test_client_ops_t ping_test_client;
+-void ping_init_test_client(void)
+-{
+- ping_test_client.tso_init = ping_client_init;
+- ping_test_client.tso_fini = ping_client_fini;
+- ping_test_client.tso_prep_rpc = ping_client_prep_rpc;
+- ping_test_client.tso_done_rpc = ping_client_done_rpc;
+-}
++sfw_test_client_ops_t ping_test_client = {
++ .tso_init = ping_client_init,
++ .tso_fini = ping_client_fini,
++ .tso_prep_rpc = ping_client_prep_rpc,
++ .tso_done_rpc = ping_client_done_rpc,
++};
+
+ srpc_service_t ping_test_service;
+ void ping_init_test_service(void)
+diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
+index 7020d9c..0d3b580 100644
+--- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
++++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
+@@ -1141,7 +1141,7 @@ struct ldlm_callback_suite {
+ ldlm_completion_callback lcs_completion;
+ ldlm_blocking_callback lcs_blocking;
+ ldlm_glimpse_callback lcs_glimpse;
+-};
++} __no_const;
+
+ /* ldlm_lockd.c */
+ int ldlm_del_waiting_lock(struct ldlm_lock *lock);
+diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h
+index a612255..9a9e2dd 100644
+--- a/drivers/staging/lustre/lustre/include/obd.h
++++ b/drivers/staging/lustre/lustre/include/obd.h
+@@ -1417,7 +1417,7 @@ struct md_ops {
+ * lprocfs_alloc_md_stats() in obdclass/lprocfs_status.c. Also, add a
+ * wrapper function in include/linux/obd_class.h.
+ */
+-};
++} __no_const;
+
+ struct lsm_operations {
+ void (*lsm_free)(struct lov_stripe_md *);
+diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
+index fc6c977..df1f956 100644
+--- a/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
++++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
+@@ -219,7 +219,7 @@ DECLARE_PROC_HANDLER(proc_debug_mb)
+ int LL_PROC_PROTO(proc_console_max_delay_cs)
+ {
+ int rc, max_delay_cs;
+- ctl_table_t dummy = *table;
++ ctl_table_no_const dummy = *table;
+ cfs_duration_t d;
+
+ dummy.data = &max_delay_cs;
+@@ -250,7 +250,7 @@ int LL_PROC_PROTO(proc_console_max_delay_cs)
+ int LL_PROC_PROTO(proc_console_min_delay_cs)
+ {
+ int rc, min_delay_cs;
+- ctl_table_t dummy = *table;
++ ctl_table_no_const dummy = *table;
+ cfs_duration_t d;
+
+ dummy.data = &min_delay_cs;
+@@ -281,7 +281,7 @@ int LL_PROC_PROTO(proc_console_min_delay_cs)
+ int LL_PROC_PROTO(proc_console_backoff)
+ {
+ int rc, backoff;
+- ctl_table_t dummy = *table;
++ ctl_table_no_const dummy = *table;
+
+ dummy.data = &backoff;
+ dummy.proc_handler = &proc_dointvec;
diff --git a/drivers/staging/media/solo6x10/solo6x10-core.c b/drivers/staging/media/solo6x10/solo6x10-core.c
index 3675020..e80d92c 100644
--- a/drivers/staging/media/solo6x10/solo6x10-core.c
@@ -47216,10 +46966,10 @@ index 6f91d2e..3f011d2 100644
unsigned int p2m_timeouts;
diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
-index 34afc16..ffe44dd 100644
+index e14a1bb..9cb9bbe 100644
--- a/drivers/staging/octeon/ethernet-rx.c
+++ b/drivers/staging/octeon/ethernet-rx.c
-@@ -421,11 +421,11 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
+@@ -419,11 +419,11 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
/* Increment RX stats for virtual ports */
if (work->ipprt >= CVMX_PIP_NUM_INPUT_PORTS) {
#ifdef CONFIG_64BIT
@@ -47235,7 +46985,7 @@ index 34afc16..ffe44dd 100644
#endif
}
netif_receive_skb(skb);
-@@ -437,9 +437,9 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
+@@ -434,9 +434,9 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
dev->name);
*/
#ifdef CONFIG_64BIT
@@ -47267,6 +47017,32 @@ index c3a90e7..023619a 100644
#endif
}
+diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h
+index 439c3c9..2d74293 100644
+--- a/drivers/staging/rtl8188eu/include/hal_intf.h
++++ b/drivers/staging/rtl8188eu/include/hal_intf.h
+@@ -271,7 +271,7 @@ struct hal_ops {
+ s32 (*c2h_handler)(struct adapter *padapter,
+ struct c2h_evt_hdr *c2h_evt);
+ c2h_id_filter c2h_id_filter_ccx;
+-};
++} __no_const;
+
+ enum rt_eeprom_type {
+ EEPROM_93C46,
+diff --git a/drivers/staging/rtl8188eu/include/rtw_io.h b/drivers/staging/rtl8188eu/include/rtw_io.h
+index eb6f0e5..e6a0958 100644
+--- a/drivers/staging/rtl8188eu/include/rtw_io.h
++++ b/drivers/staging/rtl8188eu/include/rtw_io.h
+@@ -126,7 +126,7 @@ struct _io_ops {
+ u32 (*_write_scsi)(struct intf_hdl *pintfhdl,u32 cnt, u8 *pmem);
+ void (*_read_port_cancel)(struct intf_hdl *pintfhdl);
+ void (*_write_port_cancel)(struct intf_hdl *pintfhdl);
+-};
++} __no_const;
+
+ struct io_req {
+ struct list_head list;
diff --git a/drivers/staging/rtl8712/rtl871x_io.h b/drivers/staging/rtl8712/rtl871x_io.h
index dc23395..cf7e9b1 100644
--- a/drivers/staging/rtl8712/rtl871x_io.h
@@ -47351,7 +47127,7 @@ index d07fcb5..358e1e1 100644
return;
}
diff --git a/drivers/staging/vt6655/hostap.c b/drivers/staging/vt6655/hostap.c
-index 57a08c5..5b4bb7c 100644
+index 8acff44..bdb2fca 100644
--- a/drivers/staging/vt6655/hostap.c
+++ b/drivers/staging/vt6655/hostap.c
@@ -69,14 +69,13 @@ static int msglevel = MSG_LEVEL_INFO;
@@ -47373,7 +47149,7 @@ index 57a08c5..5b4bb7c 100644
@@ -88,6 +87,8 @@ static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked)
*apdev_priv = *pDevice;
- memcpy(pDevice->apdev->dev_addr, dev->dev_addr, ETH_ALEN);
+ eth_hw_addr_inherit(pDevice->apdev, dev);
+ /* only half broken now */
+ apdev_netdev_ops.ndo_start_xmit = pDevice->tx_80211;
@@ -47410,28 +47186,6 @@ index c699a30..b90a5fd 100644
pDevice->apdev->netdev_ops = &apdev_netdev_ops;
pDevice->apdev->type = ARPHRD_IEEE80211;
-diff --git a/drivers/staging/zcache/tmem.h b/drivers/staging/zcache/tmem.h
-index d128ce2..fc1f9a1 100644
---- a/drivers/staging/zcache/tmem.h
-+++ b/drivers/staging/zcache/tmem.h
-@@ -225,7 +225,7 @@ struct tmem_pamops {
- bool (*is_remote)(void *);
- int (*replace_in_obj)(void *, struct tmem_obj *);
- #endif
--};
-+} __no_const;
- extern void tmem_register_pamops(struct tmem_pamops *m);
-
- /* memory allocation methods provided by the host implementation */
-@@ -234,7 +234,7 @@ struct tmem_hostops {
- void (*obj_free)(struct tmem_obj *, struct tmem_pool *);
- struct tmem_objnode *(*objnode_alloc)(struct tmem_pool *);
- void (*objnode_free)(struct tmem_objnode *, struct tmem_pool *);
--};
-+} __no_const;
- extern void tmem_register_hostops(struct tmem_hostops *m);
-
- /* core tmem accessor functions */
diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
index e51b09a..5ebac31 100644
--- a/drivers/target/sbp/sbp_target.c
@@ -47455,23 +47209,23 @@ index e51b09a..5ebac31 100644
login->tgt_agt = sbp_target_agent_register(login);
if (IS_ERR(login->tgt_agt)) {
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
-index 8f4142f..b127f7d 100644
+index d90dbb0..6cbe585 100644
--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
-@@ -1400,7 +1400,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
- spin_lock_init(&dev->se_port_lock);
+@@ -1431,7 +1431,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
spin_lock_init(&dev->se_tmr_lock);
spin_lock_init(&dev->qf_cmd_lock);
+ sema_init(&dev->caw_sem, 1);
- atomic_set(&dev->dev_ordered_id, 0);
+ atomic_set_unchecked(&dev->dev_ordered_id, 0);
INIT_LIST_HEAD(&dev->t10_wwn.t10_vpd_list);
spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
INIT_LIST_HEAD(&dev->t10_pr.registration_list);
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index d8e49d7..6fcfdec 100644
+index 81e945e..e40c92f 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
-@@ -1080,7 +1080,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
+@@ -1137,7 +1137,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
* Used to determine when ORDERED commands should go from
* Dormant to Active status.
*/
@@ -47507,7 +47261,7 @@ index 33f83fe..d80f8e1 100644
struct tty_struct *tty;
struct tty_ldisc *ld;
diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
-index eb255e8..f637a57 100644
+index 9eba119..5070303 100644
--- a/drivers/tty/hvc/hvc_console.c
+++ b/drivers/tty/hvc/hvc_console.c
@@ -338,7 +338,7 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
@@ -47519,7 +47273,7 @@ index eb255e8..f637a57 100644
spin_unlock_irqrestore(&hp->port.lock, flags);
hvc_kick();
return 0;
-@@ -388,7 +388,7 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
+@@ -393,7 +393,7 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
spin_lock_irqsave(&hp->port.lock, flags);
@@ -47528,7 +47282,7 @@ index eb255e8..f637a57 100644
spin_unlock_irqrestore(&hp->port.lock, flags);
/* We are done with the tty pointer now. */
tty_port_tty_set(&hp->port, NULL);
-@@ -406,9 +406,9 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
+@@ -415,9 +415,9 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
*/
tty_wait_until_sent_from_close(tty, HVC_CLOSE_WAIT);
} else {
@@ -47540,7 +47294,7 @@ index eb255e8..f637a57 100644
spin_unlock_irqrestore(&hp->port.lock, flags);
}
}
-@@ -438,12 +438,12 @@ static void hvc_hangup(struct tty_struct *tty)
+@@ -447,12 +447,12 @@ static void hvc_hangup(struct tty_struct *tty)
* open->hangup case this can be called after the final close so prevent
* that from happening for now.
*/
@@ -47555,7 +47309,7 @@ index eb255e8..f637a57 100644
spin_unlock_irqrestore(&hp->port.lock, flags);
tty_port_tty_set(&hp->port, NULL);
-@@ -491,7 +491,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
+@@ -500,7 +500,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
return -EPIPE;
/* FIXME what's this (unprotected) check for? */
@@ -47881,7 +47635,7 @@ index 1deaca4..c8582d4 100644
tty_port_tty_set(&ch->port, tty);
mutex_lock(&ch->port.mutex);
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
-index 6422390..49003ac8 100644
+index c0f76da..d974c32 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -1632,7 +1632,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
@@ -47893,7 +47647,7 @@ index 6422390..49003ac8 100644
kfree(dlci);
return NULL;
}
-@@ -2932,7 +2932,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
+@@ -2935,7 +2935,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
struct gsm_dlci *dlci = tty->driver_data;
struct tty_port *port = &dlci->port;
@@ -47903,10 +47657,10 @@ index 6422390..49003ac8 100644
dlci_get(dlci->gsm->dlci[0]);
mux_get(dlci->gsm);
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
-index 4bf0fc0..433bd58 100644
+index 7a744b6..6aa4aa9 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
-@@ -2217,6 +2217,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
+@@ -2498,6 +2498,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
{
*ops = tty_ldisc_N_TTY;
ops->owner = NULL;
@@ -47916,10 +47670,10 @@ index 4bf0fc0..433bd58 100644
}
EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
-index abfd990..5ab5da9 100644
+index 25c9bc7..24077b7 100644
--- a/drivers/tty/pty.c
+++ b/drivers/tty/pty.c
-@@ -796,8 +796,10 @@ static void __init unix98_pty_init(void)
+@@ -790,8 +790,10 @@ static void __init unix98_pty_init(void)
panic("Couldn't register Unix98 pts driver");
/* Now create the /dev/ptmx special device */
@@ -47963,7 +47717,7 @@ index 354564e..fe50d9a 100644
clear_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
spin_unlock_irqrestore(&info->port.lock, flags);
diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
-index e2520ab..034e20b 100644
+index 1274499..f541382 100644
--- a/drivers/tty/serial/ioc4_serial.c
+++ b/drivers/tty/serial/ioc4_serial.c
@@ -437,7 +437,7 @@ struct ioc4_soft {
@@ -47994,7 +47748,7 @@ index e2520ab..034e20b 100644
this_mir = this_ir = pending_intrs(soft, intr_type);
diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
-index 1002054..dd644a8 100644
+index a260cde..6b2b5ce 100644
--- a/drivers/tty/serial/kgdboc.c
+++ b/drivers/tty/serial/kgdboc.c
@@ -24,8 +24,9 @@
@@ -48100,19 +47854,19 @@ index 1002054..dd644a8 100644
/* This is only available if kgdboc is a built in for early debugging */
static int __init kgdboc_early_init(char *opt)
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
-index 2c6cfb3..048274e 100644
+index b5d779c..3622cfe 100644
--- a/drivers/tty/serial/msm_serial.c
+++ b/drivers/tty/serial/msm_serial.c
-@@ -857,7 +857,7 @@ static struct uart_driver msm_uart_driver = {
+@@ -897,7 +897,7 @@ static struct uart_driver msm_uart_driver = {
.cons = MSM_CONSOLE,
};
-static atomic_t msm_uart_next_id = ATOMIC_INIT(0);
+static atomic_unchecked_t msm_uart_next_id = ATOMIC_INIT(0);
- static int __init msm_serial_probe(struct platform_device *pdev)
- {
-@@ -867,7 +867,7 @@ static int __init msm_serial_probe(struct platform_device *pdev)
+ static const struct of_device_id msm_uartdm_table[] = {
+ { .compatible = "qcom,msm-uartdm" },
+@@ -912,7 +912,7 @@ static int __init msm_serial_probe(struct platform_device *pdev)
int irq;
if (pdev->id == -1)
@@ -48122,10 +47876,10 @@ index 2c6cfb3..048274e 100644
if (unlikely(pdev->id < 0 || pdev->id >= UART_NR))
return -ENXIO;
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
-index 376079b..d8de7aa 100644
+index f3dfa19..342f2ff 100644
--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
-@@ -453,11 +453,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
+@@ -456,11 +456,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
}
}
@@ -48142,7 +47896,7 @@ index 376079b..d8de7aa 100644
dbg("s3c24xx_serial_startup: port=%p (%08lx,%p)\n",
port->mapbase, port->membase);
-@@ -1124,10 +1129,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
+@@ -1127,10 +1132,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
/* setup info for port */
port->dev = &platdev->dev;
@@ -48154,7 +47908,7 @@ index 376079b..d8de7aa 100644
if (cfg->uart_flags & UPF_CONS_FLOW) {
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
-index 28cdd28..56f1d60 100644
+index 0f02351..07c59c5 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -1448,7 +1448,7 @@ static void uart_hangup(struct tty_struct *tty)
@@ -48194,7 +47948,7 @@ index 28cdd28..56f1d60 100644
goto end;
}
diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
-index 8eaf1ab..85c030d 100644
+index e1ce141..6d4ed80 100644
--- a/drivers/tty/synclink.c
+++ b/drivers/tty/synclink.c
@@ -3090,7 +3090,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
@@ -48204,7 +47958,7 @@ index 8eaf1ab..85c030d 100644
- __FILE__,__LINE__, info->device_name, info->port.count);
+ __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
- if (tty_port_close_start(&info->port, tty, filp) == 0)
+ if (tty_port_close_start(&info->port, tty, filp) == 0)
goto cleanup;
@@ -3108,7 +3108,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
cleanup:
@@ -48583,10 +48337,10 @@ index dc6e969..5dc8786 100644
if (!retval)
port->flags |= ASYNC_NORMAL_ACTIVE;
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
-index d5cc3ac..3263411 100644
+index 40a9fe9..a3f10cc 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
-@@ -1033,7 +1033,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
+@@ -1075,7 +1075,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
@@ -48596,10 +48350,10 @@ index d5cc3ac..3263411 100644
if (get_user(c, buf))
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
-index 20689b9..7fd3a31 100644
+index 3a1a01a..b12cda2 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
-@@ -3468,7 +3468,7 @@ EXPORT_SYMBOL_GPL(get_current_tty);
+@@ -3473,7 +3473,7 @@ EXPORT_SYMBOL_GPL(get_current_tty);
void tty_default_fops(struct file_operations *fops)
{
@@ -48609,28 +48363,28 @@ index 20689b9..7fd3a31 100644
/*
diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
-index 1afe192..73d2c20 100644
+index 6458e11..6cfc218 100644
--- a/drivers/tty/tty_ldisc.c
+++ b/drivers/tty/tty_ldisc.c
-@@ -66,7 +66,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
- raw_spin_lock_irqsave(&tty_ldisc_lock, flags);
+@@ -72,7 +72,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
+ raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
tty_ldiscs[disc] = new_ldisc;
new_ldisc->num = disc;
- new_ldisc->refcount = 0;
+ atomic_set(&new_ldisc->refcount, 0);
- raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
+ raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
return ret;
-@@ -94,7 +94,7 @@ int tty_unregister_ldisc(int disc)
+@@ -100,7 +100,7 @@ int tty_unregister_ldisc(int disc)
return -EINVAL;
- raw_spin_lock_irqsave(&tty_ldisc_lock, flags);
+ raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
- if (tty_ldiscs[disc]->refcount)
+ if (atomic_read(&tty_ldiscs[disc]->refcount))
ret = -EBUSY;
else
tty_ldiscs[disc] = NULL;
-@@ -115,7 +115,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
+@@ -121,7 +121,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
if (ldops) {
ret = ERR_PTR(-EAGAIN);
if (try_module_get(ldops->owner)) {
@@ -48639,24 +48393,15 @@ index 1afe192..73d2c20 100644
ret = ldops;
}
}
-@@ -128,7 +128,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
+@@ -134,7 +134,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
unsigned long flags;
- raw_spin_lock_irqsave(&tty_ldisc_lock, flags);
+ raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
- ldops->refcount--;
+ atomic_dec(&ldops->refcount);
module_put(ldops->owner);
- raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
+ raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
}
-@@ -196,7 +196,7 @@ static inline void tty_ldisc_put(struct tty_ldisc *ld)
- /* unreleased reader reference(s) will cause this WARN */
- WARN_ON(!atomic_dec_and_test(&ld->users));
-
-- ld->ops->refcount--;
-+ atomic_dec(&ld->ops->refcount);
- module_put(ld->ops->owner);
- kfree(ld);
- raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
index f597e88..b7f68ed 100644
--- a/drivers/tty/tty_port.c
@@ -48725,10 +48470,10 @@ index f597e88..b7f68ed 100644
tty_port_tty_set(port, tty);
diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
-index a9af1b9a..1e08e7f 100644
+index d0e3a44..5f8b754 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
-@@ -647,6 +647,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
+@@ -641,6 +641,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
kbd->kbdmode == VC_OFF) &&
value != KVAL(K_SAK))
return; /* SAK is allowed even in raw mode */
@@ -48745,7 +48490,7 @@ index a9af1b9a..1e08e7f 100644
fn_handler[value](vc);
}
-@@ -1795,9 +1805,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
+@@ -1776,9 +1786,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
return -EFAULT;
@@ -48755,7 +48500,7 @@ index a9af1b9a..1e08e7f 100644
switch (cmd) {
case KDGKBENT:
/* Ensure another thread doesn't free it under us */
-@@ -1812,6 +1819,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
+@@ -1793,6 +1800,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
spin_unlock_irqrestore(&kbd_event_lock, flags);
return put_user(val, &user_kbe->kb_value);
case KDSKBENT:
@@ -48765,7 +48510,7 @@ index a9af1b9a..1e08e7f 100644
if (!perm)
return -EPERM;
if (!i && v == K_NOSUCHMAP) {
-@@ -1902,9 +1912,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
+@@ -1883,9 +1893,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
int i, j, k;
int ret;
@@ -48775,7 +48520,7 @@ index a9af1b9a..1e08e7f 100644
kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
if (!kbs) {
ret = -ENOMEM;
-@@ -1938,6 +1945,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
+@@ -1919,6 +1926,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
kfree(kbs);
return ((p && *p) ? -EOVERFLOW : 0);
case KDSKBSENT:
@@ -48786,7 +48531,7 @@ index a9af1b9a..1e08e7f 100644
ret = -EPERM;
goto reterr;
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
-index 4bf4bb2..52ae8c7 100644
+index 0e808cf..26c24ab 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -25,6 +25,7 @@
@@ -48797,7 +48542,7 @@ index 4bf4bb2..52ae8c7 100644
#define UIO_MAX_DEVICES (1U << MINORBITS)
-@@ -32,10 +33,10 @@ struct uio_device {
+@@ -32,7 +33,7 @@ struct uio_device {
struct module *owner;
struct device *dev;
int minor;
@@ -48805,21 +48550,17 @@ index 4bf4bb2..52ae8c7 100644
+ atomic_unchecked_t event;
struct fasync_struct *async_queue;
wait_queue_head_t wait;
-- int vma_count;
-+ local_t vma_count;
struct uio_info *info;
- struct kobject *map_dir;
- struct kobject *portio_dir;
-@@ -242,7 +243,7 @@ static ssize_t show_event(struct device *dev,
+@@ -243,7 +244,7 @@ static ssize_t event_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct uio_device *idev = dev_get_drvdata(dev);
- return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
+ return sprintf(buf, "%u\n", (unsigned int)atomic_read_unchecked(&idev->event));
}
+ static DEVICE_ATTR_RO(event);
- static struct device_attribute uio_class_attributes[] = {
-@@ -398,7 +399,7 @@ void uio_event_notify(struct uio_info *info)
+@@ -401,7 +402,7 @@ void uio_event_notify(struct uio_info *info)
{
struct uio_device *idev = info->uio_dev;
@@ -48828,7 +48569,7 @@ index 4bf4bb2..52ae8c7 100644
wake_up_interruptible(&idev->wait);
kill_fasync(&idev->async_queue, SIGIO, POLL_IN);
}
-@@ -451,7 +452,7 @@ static int uio_open(struct inode *inode, struct file *filep)
+@@ -454,7 +455,7 @@ static int uio_open(struct inode *inode, struct file *filep)
}
listener->dev = idev;
@@ -48837,7 +48578,7 @@ index 4bf4bb2..52ae8c7 100644
filep->private_data = listener;
if (idev->info->open) {
-@@ -502,7 +503,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
+@@ -505,7 +506,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
return -EIO;
poll_wait(filep, &idev->wait, wait);
@@ -48846,7 +48587,7 @@ index 4bf4bb2..52ae8c7 100644
return POLLIN | POLLRDNORM;
return 0;
}
-@@ -527,7 +528,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
+@@ -530,7 +531,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
do {
set_current_state(TASK_INTERRUPTIBLE);
@@ -48855,7 +48596,7 @@ index 4bf4bb2..52ae8c7 100644
if (event_count != listener->event_count) {
if (copy_to_user(buf, &event_count, count))
retval = -EFAULT;
-@@ -584,9 +585,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
+@@ -587,9 +588,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
static int uio_find_mem_index(struct vm_area_struct *vma)
{
struct uio_device *idev = vma->vm_private_data;
@@ -48870,23 +48611,7 @@ index 4bf4bb2..52ae8c7 100644
return -1;
return (int)vma->vm_pgoff;
}
-@@ -596,13 +601,13 @@ static int uio_find_mem_index(struct vm_area_struct *vma)
- static void uio_vma_open(struct vm_area_struct *vma)
- {
- struct uio_device *idev = vma->vm_private_data;
-- idev->vma_count++;
-+ local_inc(&idev->vma_count);
- }
-
- static void uio_vma_close(struct vm_area_struct *vma)
- {
- struct uio_device *idev = vma->vm_private_data;
-- idev->vma_count--;
-+ local_dec(&idev->vma_count);
- }
-
- static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-@@ -830,7 +835,7 @@ int __uio_register_device(struct module *owner,
+@@ -818,7 +823,7 @@ int __uio_register_device(struct module *owner,
idev->owner = owner;
idev->info = info;
init_waitqueue_head(&idev->wait);
@@ -48909,10 +48634,10 @@ index 8a7eb77..c00402f 100644
pos += tmp;
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
-index 5e0d33a..cc10579 100644
+index 25a7bfc..57f3cf5 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
-@@ -333,7 +333,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
+@@ -331,7 +331,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
if (printk_ratelimit())
atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
__func__, vpi, vci);
@@ -48921,7 +48646,7 @@ index 5e0d33a..cc10579 100644
return;
}
-@@ -361,7 +361,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
+@@ -358,7 +358,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
if (length > ATM_MAX_AAL5_PDU) {
atm_rldbg(instance, "%s: bogus length %u (vcc: 0x%p)!\n",
__func__, length, vcc);
@@ -48930,7 +48655,7 @@ index 5e0d33a..cc10579 100644
goto out;
}
-@@ -370,14 +370,14 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
+@@ -367,14 +367,14 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
if (sarb->len < pdu_length) {
atm_rldbg(instance, "%s: bogus pdu_length %u (sarb->len: %u, vcc: 0x%p)!\n",
__func__, pdu_length, sarb->len, vcc);
@@ -48947,7 +48672,7 @@ index 5e0d33a..cc10579 100644
goto out;
}
-@@ -389,7 +389,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
+@@ -386,7 +386,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
if (printk_ratelimit())
atm_err(instance, "%s: no memory for skb (length: %u)!\n",
__func__, length);
@@ -48956,7 +48681,7 @@ index 5e0d33a..cc10579 100644
goto out;
}
-@@ -417,7 +417,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
+@@ -414,7 +414,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
vcc->push(vcc, skb);
@@ -48965,7 +48690,7 @@ index 5e0d33a..cc10579 100644
out:
skb_trim(sarb, 0);
}
-@@ -623,7 +623,7 @@ static void usbatm_tx_process(unsigned long data)
+@@ -612,7 +612,7 @@ static void usbatm_tx_process(unsigned long data)
struct atm_vcc *vcc = UDSL_SKB(skb)->atm.vcc;
usbatm_pop(vcc, skb);
@@ -48974,7 +48699,7 @@ index 5e0d33a..cc10579 100644
skb = skb_dequeue(&instance->sndqueue);
}
-@@ -779,11 +779,11 @@ static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t * pos, char *pag
+@@ -756,11 +756,11 @@ static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t * pos, char *pag
if (!left--)
return sprintf(page,
"AAL5: tx %d ( %d err ), rx %d ( %d err, %d drop )\n",
@@ -49023,7 +48748,7 @@ index 2a3bbdf..91d72cf 100644
file->f_version = event_count;
return POLLIN | POLLRDNORM;
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
-index 7b8bc0b..31bd7ad 100644
+index f20a044..d1059aa 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1552,7 +1552,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
@@ -49045,7 +48770,7 @@ index 7b8bc0b..31bd7ad 100644
wake_up(&usb_kill_urb_queue);
usb_put_urb(urb);
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 1c11089..db98d78 100644
+index 879651c..87e0131 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -27,6 +27,7 @@
@@ -49056,7 +48781,7 @@ index 1c11089..db98d78 100644
#include <asm/uaccess.h>
#include <asm/byteorder.h>
-@@ -4433,6 +4434,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
+@@ -4435,6 +4436,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
goto done;
return;
}
@@ -49068,36 +48793,54 @@ index 1c11089..db98d78 100644
unit_load = 150;
else
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
-index e7ee1e4..1dfc9ea4 100644
+index 82927e1..4993dbf 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -129,7 +129,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev,
- * method can wait for it to complete. Since you don't have a handle on the
- * URB used, you can't cancel the request.
+ * Return: If successful, the number of bytes transferred. Otherwise, a negative
+ * error number.
*/
-int usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request,
+int __intentional_overflow(-1) usb_control_msg(struct usb_device *dev, unsigned int pipe, __u8 request,
__u8 requesttype, __u16 value, __u16 index, void *data,
__u16 size, int timeout)
{
+@@ -181,7 +181,7 @@ EXPORT_SYMBOL_GPL(usb_control_msg);
+ * If successful, 0. Otherwise a negative error number. The number of actual
+ * bytes transferred will be stored in the @actual_length paramater.
+ */
+-int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe,
++int __intentional_overflow(-1) usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe,
+ void *data, int len, int *actual_length, int timeout)
+ {
+ return usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout);
+@@ -221,7 +221,7 @@ EXPORT_SYMBOL_GPL(usb_interrupt_msg);
+ * bytes transferred will be stored in the @actual_length paramater.
+ *
+ */
+-int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
++int __intentional_overflow(-1) usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
+ void *data, int len, int *actual_length, int timeout)
+ {
+ struct urb *urb;
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
-index d9284b9..17023c7 100644
+index 6d2c8ed..3a794ca 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
-@@ -239,7 +239,7 @@ show_urbnum(struct device *dev, struct device_attribute *attr, char *buf)
+@@ -236,7 +236,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
struct usb_device *udev;
udev = to_usb_device(dev);
- return sprintf(buf, "%d\n", atomic_read(&udev->urbnum));
+ return sprintf(buf, "%d\n", atomic_read_unchecked(&udev->urbnum));
}
- static DEVICE_ATTR(urbnum, S_IRUGO, show_urbnum, NULL);
+ static DEVICE_ATTR_RO(urbnum);
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
-index 7dad603..350f7a9 100644
+index 0a6ee2e..6f8d7e8 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
-@@ -422,7 +422,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
+@@ -433,7 +433,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
set_dev_node(&dev->dev, dev_to_node(bus->controller));
dev->state = USB_STATE_ATTACHED;
dev->lpm_disable_count = 1;
@@ -49107,10 +48850,10 @@ index 7dad603..350f7a9 100644
INIT_LIST_HEAD(&dev->ep0.urb_list);
dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
-index 14d28d6..5f511ac 100644
+index 5452c0f..34c9145 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
-@@ -550,8 +550,6 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep,
+@@ -532,8 +532,6 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep,
if (!usb_endpoint_xfer_isoc(desc))
return 0;
@@ -49245,6 +48988,28 @@ index b369292..9f3ba40 100644
gs_buf_free(&port->port_write_buf);
gs_free_requests(gser->out, &port->read_pool, NULL);
gs_free_requests(gser->out, &port->read_queue, NULL);
+diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
+index 835fc08..f8b22bf 100644
+--- a/drivers/usb/host/ehci-hub.c
++++ b/drivers/usb/host/ehci-hub.c
+@@ -762,7 +762,7 @@ static struct urb *request_single_step_set_feature_urb(
+ urb->transfer_flags = URB_DIR_IN;
+ usb_get_urb(urb);
+ atomic_inc(&urb->use_count);
+- atomic_inc(&urb->dev->urbnum);
++ atomic_inc_unchecked(&urb->dev->urbnum);
+ urb->setup_dma = dma_map_single(
+ hcd->self.controller,
+ urb->setup_packet,
+@@ -829,7 +829,7 @@ static int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
+ urb->status = -EINPROGRESS;
+ usb_get_urb(urb);
+ atomic_inc(&urb->use_count);
+- atomic_inc(&urb->dev->urbnum);
++ atomic_inc_unchecked(&urb->dev->urbnum);
+ retval = submit_single_step_set_feature(hcd, urb, 0);
+ if (!retval && !wait_for_completion_timeout(&done,
+ msecs_to_jiffies(2000))) {
diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
index ba6a5d6..f88f7f3 100644
--- a/drivers/usb/misc/appledisplay.c
@@ -49268,7 +49033,7 @@ index ba6a5d6..f88f7f3 100644
props.type = BACKLIGHT_RAW;
props.max_brightness = 0xff;
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
-index afb50ea..6b837ab 100644
+index c69bb50..215ef37 100644
--- a/drivers/usb/serial/console.c
+++ b/drivers/usb/serial/console.c
@@ -124,7 +124,7 @@ static int usb_console_setup(struct console *co, char *options)
@@ -49280,7 +49045,7 @@ index afb50ea..6b837ab 100644
if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) {
if (serial->type->set_termios) {
/*
-@@ -174,7 +174,7 @@ static int usb_console_setup(struct console *co, char *options)
+@@ -170,7 +170,7 @@ static int usb_console_setup(struct console *co, char *options)
}
/* Now that any required fake tty operations are completed restore
* the tty port count */
@@ -49289,7 +49054,7 @@ index afb50ea..6b837ab 100644
/* The console is special in terms of closing the device so
* indicate this port is now acting as a system console. */
port->port.console = 1;
-@@ -187,7 +187,7 @@ static int usb_console_setup(struct console *co, char *options)
+@@ -183,7 +183,7 @@ static int usb_console_setup(struct console *co, char *options)
free_tty:
kfree(tty);
reset_open_count:
@@ -49298,7 +49063,7 @@ index afb50ea..6b837ab 100644
usb_autopm_put_interface(serial->interface);
error_get_interface:
usb_serial_put(serial);
-@@ -198,7 +198,7 @@ static int usb_console_setup(struct console *co, char *options)
+@@ -194,7 +194,7 @@ static int usb_console_setup(struct console *co, char *options)
static void usb_console_write(struct console *co,
const char *buf, unsigned count)
{
@@ -49321,32 +49086,32 @@ index 75f70f0..d467e1a 100644
/* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */
diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
-index d6bea3e..60b250e 100644
+index cf250c2..ad9d904 100644
--- a/drivers/usb/wusbcore/wa-hc.h
+++ b/drivers/usb/wusbcore/wa-hc.h
-@@ -192,7 +192,7 @@ struct wahc {
- struct list_head xfer_delayed_list;
+@@ -199,7 +199,7 @@ struct wahc {
spinlock_t xfer_list_lock;
- struct work_struct xfer_work;
+ struct work_struct xfer_enqueue_work;
+ struct work_struct xfer_error_work;
- atomic_t xfer_id_count;
+ atomic_unchecked_t xfer_id_count;
};
-@@ -246,7 +246,7 @@ static inline void wa_init(struct wahc *wa)
- INIT_LIST_HEAD(&wa->xfer_delayed_list);
+@@ -255,7 +255,7 @@ static inline void wa_init(struct wahc *wa)
spin_lock_init(&wa->xfer_list_lock);
- INIT_WORK(&wa->xfer_work, wa_urb_enqueue_run);
+ INIT_WORK(&wa->xfer_enqueue_work, wa_urb_enqueue_run);
+ INIT_WORK(&wa->xfer_error_work, wa_process_errored_transfers_run);
- atomic_set(&wa->xfer_id_count, 1);
+ atomic_set_unchecked(&wa->xfer_id_count, 1);
}
/**
diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
-index d3493ca..0c33b7e 100644
+index 6ad02f5..cc52c8b 100644
--- a/drivers/usb/wusbcore/wa-xfer.c
+++ b/drivers/usb/wusbcore/wa-xfer.c
-@@ -297,7 +297,7 @@ out:
+@@ -299,7 +299,7 @@ out:
*/
static void wa_xfer_id_init(struct wa_xfer *xfer)
{
@@ -49356,7 +49121,7 @@ index d3493ca..0c33b7e 100644
/*
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
-index 842f450..d1d7409 100644
+index 1eab4ac..e21efc9 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -488,7 +488,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev)
@@ -49488,25 +49253,11 @@ index 900aa4e..6d49418 100644
mutex_destroy(&fbdefio->lock);
}
EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
-diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
-index 5c3960d..15cf8fc 100644
---- a/drivers/video/fbcmap.c
-+++ b/drivers/video/fbcmap.c
-@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
- rc = -ENODEV;
- goto out;
- }
-- if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
-- !info->fbops->fb_setcmap)) {
-+ if (!info->fbops->fb_setcolreg && !info->fbops->fb_setcmap) {
- rc = -EINVAL;
- goto out1;
- }
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
-index 36e1fe2..c744820 100644
+index dacaf74..8478a46 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
-@@ -428,7 +428,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
+@@ -433,7 +433,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
image->dx += image->width + 8;
}
} else if (rotate == FB_ROTATE_UD) {
@@ -49515,7 +49266,7 @@ index 36e1fe2..c744820 100644
info->fbops->fb_imageblit(info, image);
image->dx -= image->width + 8;
}
-@@ -440,7 +440,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
+@@ -445,7 +445,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
image->dy += image->height + 8;
}
} else if (rotate == FB_ROTATE_CCW) {
@@ -49524,7 +49275,7 @@ index 36e1fe2..c744820 100644
info->fbops->fb_imageblit(info, image);
image->dy -= image->height + 8;
}
-@@ -1166,7 +1166,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
+@@ -1175,7 +1175,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
return -EFAULT;
if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES)
return -EINVAL;
@@ -49534,7 +49285,7 @@ index 36e1fe2..c744820 100644
if (!registered_fb[con2fb.framebuffer])
request_module("fb%d", con2fb.framebuffer);
diff --git a/drivers/video/hyperv_fb.c b/drivers/video/hyperv_fb.c
-index 0f3b33c..b4304eb 100644
+index 8d456dc..b4fa44b 100644
--- a/drivers/video/hyperv_fb.c
+++ b/drivers/video/hyperv_fb.c
@@ -233,7 +233,7 @@ static uint screen_fb_size;
@@ -49568,893 +49319,1613 @@ index 7672d2e..b56437f 100644
par->dev_flags |= LOCKUP;
info->pixmap.scan_align = 1;
diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
-index 285d552..eafa544 100644
+index 3c14e43..2630570 100644
--- a/drivers/video/logo/logo_linux_clut224.ppm
+++ b/drivers/video/logo/logo_linux_clut224.ppm
-@@ -1,883 +1,1123 @@
- P3
+@@ -2,1603 +2,1123 @@ P3
+ # Standard 224-color Linux logo
80 80
255
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 11 15 17 33 49 54 59 85 92 73 97 106
--83 116 129 105 131 142 115 114 122 74 88 93 20 29 31 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 6 10 10 10 10 10 10
--10 10 10 6 6 6 6 6 6 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 2 3 3 17 23 26 50 67 72 73 97 106 59 85 92 73 97 106
--105 131 142 124 127 131 105 131 142 105 131 142 53 75 83 6 8 8 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 6 6 6 10 10 10 14 14 14 22 22 22 26 26 26 30 30 30 34 34 34
--30 30 30 30 30 30 26 26 26 18 18 18 14 14 14 10 10 10 6 6 6 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0
--0 0 0 1 1 1 26 35 39 59 85 92 59 85 92 59 85 92 29 43 47 53 75 83
--108 122 132 132 98 104 108 122 132 105 131 142 101 101 101 43 45 48 6 8 8 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--6 6 6 14 14 14 26 26 26 42 42 42 54 54 54 66 66 66 78 78 78 78 78 78
--78 78 78 74 74 74 66 66 66 54 54 54 42 42 42 26 26 26 18 18 18 10 10 10
--6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
--11 15 17 27 40 45 59 85 92 59 85 92 27 40 45 31 45 49 73 97 106 93 121 133
--108 122 132 108 122 132 105 131 142 108 122 132 105 131 142 73 97 106 26 35 39 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--22 22 22 42 42 42 66 66 66 86 86 86 66 66 66 38 38 38 38 38 38 22 22 22
--26 26 26 34 34 34 54 54 54 66 66 66 86 86 86 70 70 70 46 46 46 26 26 26
--14 14 14 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 7 12 13 21 31 35 42 59 64
--53 75 83 53 75 83 50 67 72 42 59 64 32 40 45 42 59 64 73 97 106 116 116 116
--132 98 104 116 116 116 108 122 132 117 104 110 105 131 142 83 116 129 50 67 72 7 12 13
--1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10 26 26 26
--50 50 50 82 82 82 58 58 58 6 6 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 6 6 6 54 54 54 86 86 86 66 66 66
--38 38 38 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 1 1 1 6 8 8 15 22 25 26 35 39 36 54 60 53 75 83 59 85 92
--59 85 92 48 63 69 15 22 25 12 17 20 52 67 79 94 94 94 132 98 104 132 98 104
--117 104 110 108 122 132 108 122 132 115 114 122 105 131 142 77 105 114 59 85 92 36 54 60
--7 12 13 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 22 22 22 50 50 50
--78 78 78 34 34 34 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 6 6 6 70 70 70
--78 78 78 46 46 46 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 15 22 25 29 43 47 36 54 60 42 59 64 42 59 64 48 63 69 21 31 35
--6 8 8 29 43 47 36 50 56 43 45 48 79 78 84 132 98 104 165 78 79 132 98 104
--108 122 132 117 104 110 117 104 110 108 122 132 77 105 114 73 97 106 95 131 149 78 102 129
--36 50 56 0 0 0 0 0 0 0 0 0 6 6 6 18 18 18 42 42 42 82 82 82
--26 26 26 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 14 14 14 46 46 46 34 34 34 6 6 6 2 2 6
--42 42 42 78 78 78 42 42 42 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--27 40 45 53 75 83 48 63 69 24 31 37 6 8 12 0 0 0 18 25 28 26 35 39
--12 17 20 26 35 39 65 78 84 112 81 86 152 81 83 137 83 86 132 98 104 117 104 110
--117 104 110 132 98 104 132 98 104 115 114 122 73 97 106 53 75 83 95 131 149 93 124 152
--68 78 128 15 22 25 0 0 0 0 0 0 10 10 10 30 30 30 66 66 66 58 58 58
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 26 26 26 86 86 86 101 101 101 46 46 46 10 10 10
--2 2 6 58 58 58 70 70 70 34 34 34 10 10 10 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--36 50 56 21 30 33 4 7 7 0 0 0 1 1 1 17 12 12 69 31 31 68 59 64
--57 59 63 21 31 35 32 40 45 86 73 69 152 81 83 152 81 83 117 104 110 132 98 104
--152 81 83 132 98 104 108 122 132 77 105 114 77 105 114 93 121 133 95 131 149 93 124 152
--95 131 149 53 75 83 11 15 17 0 0 0 14 14 14 42 42 42 86 86 86 10 10 10
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 30 30 30 94 94 94 94 94 94 58 58 58 26 26 26
--2 2 6 6 6 6 78 78 78 54 54 54 22 22 22 6 6 6 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--17 23 26 2 3 3 0 0 0 17 12 12 69 31 31 123 55 55 123 55 55 152 81 83
--86 73 69 17 23 26 7 12 13 45 54 57 101 101 101 137 83 86 132 98 104 132 98 104
--137 83 86 117 104 110 77 105 114 42 59 64 50 67 72 78 102 129 91 117 157 91 117 157
--95 131 149 83 116 129 40 48 73 6 6 6 22 22 22 62 62 62 62 62 62 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 26 26 26 54 54 54 38 38 38 18 18 18 10 10 10
--2 2 6 2 2 6 34 34 34 82 82 82 38 38 38 14 14 14 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--1 1 1 1 2 2 2 3 3 28 12 12 123 55 55 174 79 79 174 79 79 174 79 79
--152 81 83 68 59 64 26 35 39 27 40 45 79 78 84 137 83 86 165 78 79 137 83 86
--94 94 94 48 63 69 36 50 56 50 67 72 73 97 106 93 121 133 93 124 152 93 124 152
--95 131 149 91 118 149 78 102 129 27 40 45 30 30 30 78 78 78 30 30 30 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 10 10 10 10 10 10 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 78 78 78 50 50 50 18 18 18 6 6 6 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--4 5 3 24 53 24 19 31 15 8 7 3 90 61 47 165 78 79 174 79 79 174 79 79
--174 79 79 137 83 86 60 52 57 7 12 13 17 23 26 70 70 70 132 98 104 112 81 86
--79 78 84 31 45 49 15 22 25 53 75 83 91 118 149 86 106 160 91 117 157 93 124 152
--91 117 157 93 124 152 95 131 149 53 75 83 50 50 50 86 86 86 14 14 14 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 54 54 54 66 66 66 26 26 26 6 6 6 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--19 31 15 34 76 34 34 76 34 19 31 15 28 12 12 123 55 55 174 79 79 174 79 79
--174 79 79 165 78 79 112 81 86 32 40 45 15 22 25 38 53 58 65 78 84 29 31 32
--21 30 33 42 59 64 60 80 103 78 102 129 87 112 149 84 96 162 91 117 157 93 124 152
--91 117 157 93 124 152 93 121 133 59 85 92 57 68 71 82 85 86 2 2 6 2 2 6
--2 2 6 6 6 6 10 10 10 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 6 6 6 14 14 14 10 10 10 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 18 18 18 82 82 82 34 34 34 10 10 10 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--34 76 34 40 89 40 40 89 40 34 76 34 8 15 6 48 26 18 123 55 55 174 79 79
--174 79 79 174 79 79 137 83 86 68 59 64 32 40 45 21 30 33 31 45 49 21 31 35
--12 17 20 48 63 69 78 102 129 81 88 166 84 96 162 91 117 157 93 124 152 91 117 157
--93 124 152 95 131 149 83 116 129 59 85 92 57 68 71 86 86 86 2 2 6 2 2 6
--6 6 6 6 6 6 22 22 22 34 34 34 6 6 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 18 18 18 34 34 34 10 10 10 50 50 50 22 22 22 2 2 6
--2 2 6 2 2 6 2 2 6 10 10 10 86 86 86 42 42 42 14 14 14 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--40 89 40 40 89 40 40 89 40 40 89 40 24 53 24 6 6 6 69 31 31 123 55 55
--123 55 55 90 61 47 69 31 31 36 32 33 21 31 35 7 12 13 18 25 28 48 63 69
--60 80 103 68 78 128 84 101 153 84 96 162 84 96 162 91 117 157 91 117 157 84 96 162
--91 117 157 73 97 106 48 63 69 50 67 72 57 59 63 86 86 86 2 2 6 2 2 6
--38 38 38 116 116 116 94 94 94 22 22 22 22 22 22 2 2 6 2 2 6 2 2 6
--14 14 14 86 86 86 124 131 137 170 170 170 151 151 151 38 38 38 26 26 26 6 6 6
--2 2 6 2 2 6 2 2 6 2 2 6 86 86 86 46 46 46 14 14 14 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--34 76 34 40 89 40 40 89 40 40 89 40 34 76 34 19 31 15 17 12 12 48 26 18
--48 26 18 8 7 3 10 10 22 23 29 47 51 61 92 42 59 64 21 30 33 34 45 54
--68 78 128 81 88 166 81 82 173 86 106 160 86 106 160 84 96 162 86 106 160 87 112 149
--91 118 149 77 105 114 52 67 79 32 40 45 50 50 50 86 86 86 2 2 6 14 14 14
--124 131 137 198 198 198 195 195 195 116 116 116 10 10 10 2 2 6 2 2 6 6 6 6
--101 98 89 187 187 187 210 210 210 218 218 218 214 214 214 124 131 137 14 14 14 6 6 6
--2 2 6 2 2 6 2 2 6 2 2 6 86 86 86 50 50 50 18 18 18 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--19 31 15 34 76 34 40 89 40 40 89 40 40 89 40 24 53 24 8 7 3 0 0 0
--6 8 12 28 32 52 51 61 92 54 54 122 74 77 160 68 78 128 26 35 39 6 8 8
--34 45 54 68 78 128 84 96 162 86 106 160 86 106 160 81 88 166 84 96 162 87 112 149
--73 97 106 36 50 56 33 49 54 18 18 18 46 46 46 86 86 86 2 2 6 54 54 54
--218 218 218 195 195 195 226 226 226 246 246 246 58 58 58 2 2 6 2 2 6 30 30 30
--210 210 210 253 253 253 170 170 170 124 127 131 221 221 221 234 234 234 74 74 74 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 70 70 70 58 58 58 22 22 22 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--4 5 3 24 53 24 40 89 40 40 89 40 34 76 34 12 22 15 4 5 3 4 5 3
--13 17 26 54 54 122 78 78 174 78 78 174 78 78 174 74 77 160 51 61 92 21 31 35
--26 35 39 53 75 83 84 101 153 81 82 173 81 88 166 84 101 153 60 80 103 60 80 103
--53 75 83 38 53 58 42 59 64 22 22 22 46 46 46 82 82 82 2 2 6 106 106 106
--170 170 170 26 26 26 86 86 86 226 226 226 124 127 131 10 10 10 14 14 14 46 46 46
--231 231 231 190 190 190 6 6 6 70 70 70 90 90 90 238 238 238 151 151 151 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 70 70 70 58 58 58 22 22 22 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--1 2 2 8 15 6 24 53 24 34 76 34 19 31 15 8 15 6 63 55 20 63 55 20
--18 18 18 40 48 73 74 77 160 78 78 174 78 78 174 81 82 173 74 77 160 52 67 79
--17 23 26 21 31 35 60 80 103 81 88 166 74 77 160 78 102 129 36 54 60 12 17 20
--42 59 64 48 63 69 21 31 35 18 18 18 42 42 42 86 86 86 6 6 6 116 116 116
--106 106 106 6 6 6 70 70 70 151 151 151 124 127 131 18 18 18 38 38 38 54 54 54
--221 221 221 106 106 106 2 2 6 14 14 14 46 46 46 190 190 190 198 198 198 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 74 74 74 62 62 62 22 22 22 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--11 15 17 0 0 0 12 22 15 19 31 15 8 15 6 63 55 20 149 139 69 149 139 69
--63 55 20 10 10 22 54 54 122 78 78 174 78 78 174 78 78 174 81 82 173 68 78 128
--24 31 37 6 6 6 36 50 56 60 80 103 51 61 92 42 59 64 36 50 56 31 45 49
--29 43 47 27 40 45 6 8 8 14 14 14 42 42 42 94 94 94 14 14 14 101 101 101
--124 127 131 2 2 6 18 18 18 116 116 116 106 107 48 121 92 8 121 92 8 98 70 6
--170 170 170 106 106 106 2 2 6 2 2 6 2 2 6 195 195 195 195 195 195 6 6 6
--2 2 6 2 2 6 2 2 6 2 2 6 74 74 74 62 62 62 22 22 22 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--26 35 39 3 5 6 1 1 1 2 3 3 35 31 12 133 118 54 175 176 80 175 176 80
--133 118 54 35 31 12 23 29 47 54 54 122 78 78 174 78 78 174 74 77 160 68 78 128
--51 61 92 31 45 49 26 35 39 36 50 56 29 43 47 7 12 13 21 30 33 42 59 64
--18 25 28 7 12 13 1 1 1 10 10 10 38 38 38 90 90 90 14 14 14 58 58 58
--210 210 210 26 26 26 62 42 6 154 114 10 226 170 11 237 188 10 220 174 15 184 138 11
--220 174 15 174 140 55 35 31 12 2 2 6 70 70 70 246 246 246 124 131 137 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 70 70 70 66 66 66 26 26 26 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--27 40 45 17 23 26 2 3 3 1 1 1 56 77 35 165 152 80 175 176 80 175 176 80
--175 176 80 106 107 48 22 22 22 28 32 52 54 54 122 54 54 122 51 61 92 28 32 52
--20 27 34 31 45 49 11 15 17 7 12 13 36 50 56 31 45 49 29 43 47 36 50 56
--6 8 8 0 0 0 0 0 0 10 10 10 38 38 38 86 86 86 14 14 14 10 10 10
--195 195 195 198 179 130 192 133 9 220 174 15 239 182 13 237 188 10 232 195 16 239 207 25
--237 201 50 241 208 19 232 195 16 184 138 11 198 179 130 208 206 196 42 42 42 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 50 50 50 74 74 74 30 30 30 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--15 22 25 26 35 39 15 22 25 0 0 0 35 31 12 133 118 54 175 176 80 175 176 80
--175 176 80 165 152 80 56 77 35 6 8 12 23 29 47 13 17 26 2 2 6 0 0 0
--1 2 2 26 35 39 26 35 39 26 35 39 42 59 64 42 59 64 20 29 31 6 8 8
--0 0 0 0 0 0 0 0 0 10 10 10 34 34 34 86 86 86 14 14 14 2 2 6
--121 92 8 192 133 9 219 162 10 239 182 13 237 188 10 232 195 16 241 208 19 237 201 50
--237 201 50 239 207 25 241 208 19 241 208 19 241 208 19 230 187 11 121 92 8 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 50 50 50 82 82 82 34 34 34 10 10 10
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--1 2 2 15 22 25 31 45 49 6 8 12 4 5 3 63 55 20 149 139 69 175 176 80
--175 176 80 175 176 80 106 107 48 20 16 6 1 1 1 0 0 0 2 3 3 11 15 17
--21 30 33 36 50 56 36 50 56 24 31 37 15 22 25 6 8 8 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 10 10 10 34 34 34 82 82 82 30 30 30 62 42 6
--180 123 7 206 145 10 230 174 11 239 182 13 237 188 10 238 202 15 241 208 19 237 201 50
--239 207 25 241 208 19 241 208 19 241 208 19 230 187 11 220 174 15 184 138 11 6 6 6
--2 2 6 2 2 6 2 2 6 2 2 6 26 26 26 94 94 94 42 42 42 14 14 14
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 1 2 2 29 43 47 26 35 39 3 5 6 8 7 3 106 107 48 165 152 80
--175 176 80 149 139 69 63 55 20 4 5 3 2 3 3 12 17 20 26 35 39 26 35 39
--17 23 26 7 12 13 6 8 8 3 5 6 1 2 2 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 10 10 10 30 30 30 78 78 78 50 50 50 104 69 6
--192 133 9 216 158 10 236 178 12 237 188 10 232 195 16 241 208 19 237 201 50 237 201 50
--241 208 19 241 208 19 241 208 19 204 160 10 200 144 11 216 158 10 156 118 10 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 6 6 6 90 90 90 54 54 54 18 18 18
--6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 12 17 20 27 40 45 18 25 28 1 1 1 35 31 12 106 107 48
--149 139 69 56 77 35 8 7 3 1 2 2 12 17 20 26 35 39 21 31 35 11 15 17
--3 5 6 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 10 10 10 30 30 30 78 78 78 46 46 46 22 22 22
--137 92 6 204 160 10 239 182 13 237 188 10 238 202 15 241 208 19 241 208 19 241 208 19
--241 208 19 204 160 10 184 138 11 210 150 10 216 158 10 210 150 10 98 70 6 2 2 6
--6 6 6 54 54 54 14 14 14 2 2 6 2 2 6 62 62 62 74 74 74 30 30 30
--10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 1 1 1 15 22 25 33 49 54 12 17 20 2 3 3 35 31 12
--56 77 35 20 16 6 1 1 1 18 25 28 21 31 35 11 15 17 1 1 1 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 10 10 10 34 34 34 78 78 78 50 50 50 6 6 6
--88 55 22 139 102 15 190 146 13 230 187 11 239 207 25 232 195 16 220 174 15 190 146 13
--171 120 8 192 133 9 210 150 10 213 154 11 185 146 40 165 152 80 101 98 89 2 2 6
--2 2 6 78 78 78 116 116 116 58 58 58 2 2 6 22 22 22 90 90 90 46 46 46
--18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 1 1 1 27 40 45 29 43 47 3 5 6 2 3 3
--8 7 3 1 1 1 17 23 26 31 45 49 15 22 25 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 10 10 10 38 38 38 86 86 86 50 50 50 6 6 6
--124 127 131 168 158 138 156 107 11 171 120 8 204 160 10 184 138 11 197 138 11 200 144 11
--206 145 10 206 145 10 197 138 11 198 179 130 195 195 195 198 198 198 170 170 170 14 14 14
--2 2 6 22 22 22 116 116 116 116 116 116 22 22 22 2 2 6 74 74 74 70 70 70
--30 30 30 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 11 15 17 31 45 49 26 35 39 3 5 6
--0 0 0 7 12 13 27 40 45 18 25 28 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 6 6 6 18 18 18 50 50 50 101 101 101 26 26 26 10 10 10
--124 131 137 190 190 190 168 158 138 156 107 11 197 138 11 200 144 11 197 138 11 192 133 9
--180 123 7 185 146 40 198 179 130 187 187 187 202 202 202 221 221 221 214 214 214 66 66 66
--2 2 6 2 2 6 50 50 50 62 62 62 6 6 6 2 2 6 10 10 10 90 90 90
--50 50 50 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 15 22 25 36 54 60 18 25 28
--0 0 0 21 30 33 27 40 45 2 3 3 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 10 10 10 34 34 34 74 74 74 74 74 74 2 2 6 6 6 6
--151 151 151 198 198 198 190 190 190 168 158 138 148 132 55 156 107 11 156 107 11 169 125 40
--168 158 138 187 187 187 190 190 190 210 210 210 246 246 246 253 253 253 253 253 253 180 180 180
--6 6 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 62 62 62
--74 74 74 34 34 34 14 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 27 40 45 35 52 58
--18 25 28 35 52 58 17 23 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 10 10 10 22 22 22 54 54 54 94 94 94 18 18 18 2 2 6 46 46 46
--234 234 234 221 221 221 190 190 190 190 190 190 190 190 190 187 187 187 187 187 187 190 190 190
--190 190 190 195 195 195 214 214 214 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--82 82 82 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 14 14 14
--86 86 86 54 54 54 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 12 13 33 49 54
--52 72 81 36 54 60 6 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--6 6 6 18 18 18 46 46 46 90 90 90 46 46 46 18 18 18 6 6 6 180 180 180
--253 253 253 246 246 246 202 202 202 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190
--202 202 202 231 231 231 250 250 250 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--202 202 202 14 14 14 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--42 42 42 86 86 86 42 42 42 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 17 20
--36 54 60 29 43 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--14 14 14 38 38 38 74 74 74 66 66 66 2 2 6 6 6 6 90 90 90 250 250 250
--253 253 253 253 253 253 238 238 238 198 198 198 190 190 190 190 190 190 195 195 195 221 221 221
--246 246 246 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 82 82 82 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 78 78 78 70 70 70 34 34 34 14 14 14 6 6 6 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--21 30 33 35 52 58 6 8 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 14 14
--34 34 34 66 66 66 78 78 78 6 6 6 2 2 6 18 18 18 218 218 218 253 253 253
--253 253 253 253 253 253 253 253 253 246 246 246 226 226 226 231 231 231 246 246 246 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 180 180 180 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 18 18 18 90 90 90 62 62 62 30 30 30 10 10 10 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--12 17 20 36 54 60 29 43 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10 26 26 26
--58 58 58 90 90 90 18 18 18 2 2 6 2 2 6 106 106 106 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 250 250 250 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 231 231 231 18 18 18 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 18 18 18 94 94 94 54 54 54 26 26 26 10 10 10 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 21 30 33 35 52 58 6 8 12 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 22 22 22 50 50 50
--90 90 90 26 26 26 2 2 6 2 2 6 14 14 14 195 195 195 250 250 250 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--250 250 250 242 242 242 54 54 54 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 38 38 38 86 86 86 50 50 50 22 22 22 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 12 17 20 36 54 60 29 43 47 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 14 14 14 38 38 38 82 82 82
--34 34 34 2 2 6 2 2 6 2 2 6 42 42 42 195 195 195 246 246 246 253 253 253
--253 253 253 253 253 253 253 253 253 250 250 250 242 242 242 242 242 242 250 250 250 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 250 250 250 246 246 246 238 238 238
--226 226 226 231 231 231 101 101 101 6 6 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 38 38 38 82 82 82 42 42 42 14 14 14
--6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 21 30 33 35 52 58 6 8 12 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 10 10 10 26 26 26 62 62 62 66 66 66
--2 2 6 2 2 6 2 2 6 6 6 6 70 70 70 170 170 170 202 202 202 234 234 234
--246 246 246 250 250 250 250 250 250 238 238 238 226 226 226 231 231 231 238 238 238 250 250 250
--250 250 250 250 250 250 246 246 246 231 231 231 214 214 214 202 202 202 202 202 202 202 202 202
--198 198 198 202 202 202 180 180 180 18 18 18 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 62 62 62 66 66 66 30 30 30
--10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 12 17 20 36 54 60 29 43 47 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 14 14 14 42 42 42 82 82 82 18 18 18
--2 2 6 2 2 6 2 2 6 10 10 10 94 94 94 180 180 180 218 218 218 242 242 242
--250 250 250 253 253 253 253 253 253 250 250 250 234 234 234 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 246 246 246 238 238 238 226 226 226 210 210 210 202 202 202
--195 195 195 195 195 195 210 210 210 151 151 151 6 6 6 14 14 14 50 50 50 14 14 14
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 6 6 6 86 86 86 46 46 46
--18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 21 30 33 35 52 58 6 8 12 0 0 0
--0 0 0 0 0 0 0 0 0 6 6 6 22 22 22 54 54 54 70 70 70 2 2 6
--2 2 6 10 10 10 2 2 6 22 22 22 170 170 170 231 231 231 250 250 250 253 253 253
--253 253 253 253 253 253 253 253 253 250 250 250 242 242 242 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 246 246 246
--231 231 231 202 202 202 198 198 198 226 226 226 94 94 94 2 2 6 6 6 6 38 38 38
--30 30 30 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 62 62 62 66 66 66
--26 26 26 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 6 8 8 33 49 54 29 43 47 6 8 12
--0 0 0 0 0 0 0 0 0 10 10 10 30 30 30 74 74 74 50 50 50 2 2 6
--26 26 26 26 26 26 2 2 6 106 106 106 238 238 238 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 246 246 246 218 218 218 202 202 202 210 210 210 14 14 14 2 2 6 2 2 6
--30 30 30 22 22 22 2 2 6 2 2 6 2 2 6 2 2 6 18 18 18 86 86 86
--42 42 42 14 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 17 20 33 49 54 17 23 26
--0 0 0 0 0 0 0 0 0 14 14 14 42 42 42 90 90 90 22 22 22 2 2 6
--42 42 42 2 2 6 18 18 18 218 218 218 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 250 250 250 221 221 221 218 218 218 101 101 101 2 2 6 14 14 14
--18 18 18 38 38 38 10 10 10 2 2 6 2 2 6 2 2 6 2 2 6 78 78 78
--58 58 58 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 22 25 36 54 60
--0 0 0 0 0 0 0 0 0 18 18 18 54 54 54 82 82 82 2 2 6 26 26 26
--22 22 22 2 2 6 124 127 131 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 250 250 250 238 238 238 198 198 198 6 6 6 38 38 38
--58 58 58 26 26 26 38 38 38 2 2 6 2 2 6 2 2 6 2 2 6 46 46 46
--78 78 78 30 30 30 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 30 33
--36 54 60 0 0 0 0 0 0 30 30 30 74 74 74 58 58 58 2 2 6 42 42 42
--2 2 6 22 22 22 231 231 231 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 250 250 250 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 246 246 246 46 46 46 38 38 38
--42 42 42 14 14 14 38 38 38 14 14 14 2 2 6 2 2 6 2 2 6 6 6 6
--86 86 86 46 46 46 14 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--36 54 60 0 0 0 0 0 0 42 42 42 90 90 90 18 18 18 18 18 18 26 26 26
--2 2 6 116 116 116 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 250 250 250 238 238 238 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 94 94 94 6 6 6
--2 2 6 2 2 6 10 10 10 34 34 34 2 2 6 2 2 6 2 2 6 2 2 6
--74 74 74 58 58 58 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 36 54 60 26 26 26 66 66 66 82 82 82 2 2 6 38 38 38 6 6 6
--14 14 14 210 210 210 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 246 246 246 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 151 151 151 2 2 6
--2 2 6 2 2 6 2 2 6 46 46 46 2 2 6 2 2 6 2 2 6 2 2 6
--42 42 42 74 74 74 30 30 30 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--6 6 6 36 54 60 21 30 33 90 90 90 26 26 26 6 6 6 42 42 42 2 2 6
--74 74 74 250 250 250 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 242 242 242 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 180 180 180 2 2 6
--2 2 6 2 2 6 2 2 6 46 46 46 2 2 6 2 2 6 2 2 6 2 2 6
--10 10 10 86 86 86 38 38 38 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--10 10 10 26 26 26 36 54 60 82 82 82 2 2 6 22 22 22 18 18 18 2 2 6
--151 151 151 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 234 234 234 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 202 202 202 2 2 6
--2 2 6 2 2 6 2 2 6 38 38 38 2 2 6 2 2 6 2 2 6 2 2 6
--6 6 6 86 86 86 46 46 46 14 14 14 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--18 18 18 46 46 46 86 86 86 36 54 60 2 2 6 34 34 34 10 10 10 6 6 6
--210 210 210 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 234 234 234 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 221 221 221 6 6 6
--2 2 6 2 2 6 6 6 6 30 30 30 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 82 82 82 54 54 54 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--26 26 26 66 66 66 62 62 62 2 2 6 2 2 6 38 38 38 10 10 10 26 26 26
--238 238 238 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 238 238 238 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 231 231 231 6 6 6
--2 2 6 2 2 6 10 10 10 30 30 30 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 66 66 66 58 58 58 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--38 38 38 78 78 78 6 6 6 2 2 6 2 2 6 46 46 46 14 14 14 42 42 42
--246 246 246 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 234 234 234 10 10 10
--2 2 6 2 2 6 22 22 22 14 14 14 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 66 66 66 62 62 62 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 18 18 18
--50 50 50 74 74 74 2 2 6 2 2 6 14 14 14 70 70 70 34 34 34 62 62 62
--250 250 250 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 246 246 246 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 234 234 234 14 14 14
--2 2 6 2 2 6 30 30 30 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 66 66 66 62 62 62 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 18 18 18
--54 54 54 62 62 62 2 2 6 2 2 6 2 2 6 30 30 30 46 46 46 70 70 70
--250 250 250 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 246 246 246 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 226 226 226 10 10 10
--2 2 6 6 6 6 30 30 30 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 66 66 66 58 58 58 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 22 22 22
--58 58 58 62 62 62 2 2 6 2 2 6 2 2 6 2 2 6 30 30 30 78 78 78
--250 250 250 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 246 246 246 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 202 202 202 2 2 6
--22 22 22 34 34 34 20 16 6 22 22 22 26 26 26 18 18 18 6 6 6 2 2 6
--2 2 6 82 82 82 54 54 54 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 26 26 26
--62 62 62 106 106 106 63 55 20 184 138 11 204 160 10 121 92 8 6 6 6 62 62 62
--238 238 238 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 246 246 246 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 151 151 151 18 18 18
--14 14 14 2 2 6 2 2 6 2 2 6 6 6 6 18 18 18 66 66 66 38 38 38
--6 6 6 94 94 94 50 50 50 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 6 6 6 10 10 10 10 10 10 18 18 18 38 38 38
--78 78 78 138 132 106 216 158 10 242 186 14 246 190 14 246 190 14 156 118 10 10 10 10
--90 90 90 238 238 238 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 250 250 250 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 246 230 190 214 187 87 214 187 87 185 146 40 35 31 12
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 38 38 38 46 46 46
--26 26 26 106 106 106 54 54 54 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 6 6 6 14 14 14 22 22 22 30 30 30 38 38 38 50 50 50 70 70 70
--106 106 106 185 146 40 226 170 11 242 186 14 246 190 14 246 190 14 246 190 14 154 114 10
--6 6 6 74 74 74 226 226 226 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 231 231 231 250 250 250 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 237 201 50 241 196 14 241 208 19 232 195 16 35 31 12
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 6 6 6 30 30 30 26 26 26
--204 160 10 165 152 80 66 66 66 26 26 26 6 6 6 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--6 6 6 18 18 18 38 38 38 58 58 58 78 78 78 86 86 86 101 101 101 124 127 131
--174 140 55 210 150 10 234 174 13 246 186 14 246 190 14 246 190 14 246 190 14 237 188 10
--98 70 6 2 2 6 46 46 46 198 198 198 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 234 234 234 242 242 242 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 214 187 87 242 186 14 241 196 14 204 160 10 20 16 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 6 6 6 121 92 8
--238 202 15 232 195 16 82 82 82 34 34 34 10 10 10 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--14 14 14 38 38 38 70 70 70 148 132 55 185 146 40 200 144 11 197 138 11 197 138 11
--213 154 11 226 170 11 242 186 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--220 174 15 35 31 12 2 2 6 22 22 22 151 151 151 250 250 250 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 250 250 250 242 242 242 214 187 87 239 182 13 237 188 10 213 154 11 35 31 12
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 62 42 6 220 174 15
--237 188 10 237 188 10 113 101 86 42 42 42 14 14 14 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--22 22 22 54 54 54 148 132 55 213 154 11 226 170 11 230 174 11 226 170 11 226 170 11
--236 178 12 242 186 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--241 196 14 184 138 11 10 10 10 2 2 6 6 6 6 116 116 116 242 242 242 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 231 231 231 198 198 198 213 164 39 236 178 12 236 178 12 210 150 10 137 92 6
--20 16 6 2 2 6 2 2 6 2 2 6 6 6 6 62 42 6 200 144 11 236 178 12
--239 182 13 239 182 13 124 112 88 58 58 58 22 22 22 6 6 6 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--30 30 30 70 70 70 169 125 40 226 170 11 239 182 13 242 186 14 242 186 14 246 186 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 232 195 16 98 70 6 2 2 6 2 2 6 2 2 6 66 66 66 221 221 221
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 202 202 202 198 198 198 213 164 39 230 174 11 230 174 11 216 158 10 192 133 9
--163 110 8 120 80 7 98 70 6 120 80 7 167 114 7 197 138 11 226 170 11 239 182 13
--242 186 14 242 186 14 165 152 80 78 78 78 34 34 34 14 14 14 6 6 6 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--30 30 30 78 78 78 185 146 40 226 170 11 239 182 13 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 241 196 14 204 160 10 20 16 6 2 2 6 2 2 6 2 2 6 38 38 38
--218 218 218 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--250 250 250 202 202 202 198 198 198 213 164 39 226 170 11 236 178 12 224 166 10 210 150 10
--200 144 11 197 138 11 192 133 9 197 138 11 210 150 10 226 170 11 242 186 14 246 190 14
--246 190 14 246 186 14 220 174 15 124 112 88 62 62 62 30 30 30 14 14 14 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--30 30 30 78 78 78 174 140 55 224 166 10 239 182 13 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 241 196 14 139 102 15 2 2 6 2 2 6 2 2 6 2 2 6
--78 78 78 250 250 250 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--250 250 250 214 214 214 198 198 198 185 146 40 219 162 10 236 178 12 234 174 13 224 166 10
--216 158 10 213 154 11 213 154 11 216 158 10 226 170 11 239 182 13 246 190 14 246 190 14
--246 190 14 246 190 14 242 186 14 213 164 39 101 101 101 58 58 58 30 30 30 14 14 14
--6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--30 30 30 74 74 74 174 140 55 216 158 10 236 178 12 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 241 196 14 230 187 11 62 42 6 2 2 6 2 2 6 2 2 6
--22 22 22 238 238 238 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 226 226 226 187 187 187 169 125 40 216 158 10 236 178 12 239 182 13 236 178 12
--230 174 11 226 170 11 226 170 11 230 174 11 236 178 12 242 186 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 186 14 239 182 13 213 164 39 106 106 106 66 66 66 34 34 34
--14 14 14 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--26 26 26 70 70 70 149 139 69 213 154 11 236 178 12 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 241 196 14 190 146 13 20 16 6 2 2 6 2 2 6
--46 46 46 246 246 246 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 221 221 221 86 86 86 156 107 11 216 158 10 236 178 12 242 186 14 246 186 14
--242 186 14 239 182 13 239 182 13 242 186 14 242 186 14 246 186 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 242 186 14 220 174 15 149 139 69 66 66 66
--30 30 30 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--26 26 26 70 70 70 149 139 69 210 150 10 236 178 12 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 232 195 16 121 92 8 34 34 34 106 106 106
--221 221 221 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--242 242 242 82 82 82 20 16 6 163 110 8 216 158 10 236 178 12 242 186 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 242 186 14 149 139 69
--46 46 46 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 10
--30 30 30 78 78 78 149 139 69 210 150 10 236 178 12 246 186 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 241 196 14 220 174 15 198 179 130 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 218 218 218
--58 58 58 2 2 6 20 16 6 167 114 7 216 158 10 236 178 12 246 186 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 186 14 242 186 14 185 146 40
--54 54 54 22 22 22 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 14 14
--38 38 38 86 86 86 169 125 40 213 154 11 236 178 12 246 186 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 232 195 16 190 146 13 214 214 214
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 250 250 250 170 170 170 26 26 26
--2 2 6 2 2 6 35 31 12 163 110 8 219 162 10 239 182 13 246 186 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 186 14 236 178 12 224 166 10 149 139 69
--46 46 46 18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 18 18 18
--50 50 50 113 101 86 192 133 9 224 166 10 242 186 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 242 186 14 230 187 11 204 160 10 133 118 54
--226 226 226 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253 253
--253 253 253 253 253 253 253 253 253 253 253 253 198 198 198 66 66 66 2 2 6 2 2 6
--2 2 6 2 2 6 62 42 6 156 107 11 219 162 10 239 182 13 246 186 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 242 186 14 234 174 13 213 154 11 148 132 55 66 66 66
--30 30 30 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 22 22 22
--58 58 58 148 132 55 206 145 10 234 174 13 242 186 14 246 186 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 186 14 236 178 12 204 160 10 163 110 8
--62 42 6 124 131 137 218 218 218 250 250 250 253 253 253 253 253 253 253 253 253 250 250 250
--242 242 242 210 210 210 151 151 151 66 66 66 6 6 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 62 42 6 163 110 8 216 158 10 236 178 12 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 239 182 13 230 174 11 216 158 10 185 146 40 124 112 88 70 70 70 38 38 38
--18 18 18 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 22 22 22
--62 62 62 169 125 40 206 145 10 224 166 10 236 178 12 239 182 13 242 186 14 242 186 14
--246 186 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 236 178 12 216 158 10 171 120 8
--85 57 6 2 2 6 6 6 6 30 30 30 54 54 54 62 62 62 50 50 50 38 38 38
--14 14 14 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 6 6 6 85 57 6 167 114 7 213 154 11 236 178 12 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 190 14 242 186 14 239 182 13 239 182 13
--230 174 11 210 150 10 174 140 55 124 112 88 82 82 82 54 54 54 34 34 34 18 18 18
--6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 18 18 18
--50 50 50 169 125 40 192 133 9 200 144 11 216 158 10 219 162 10 224 166 10 226 170 11
--230 174 11 236 178 12 239 182 13 239 182 13 242 186 14 246 186 14 246 190 14 246 190 14
--246 190 14 246 190 14 246 190 14 246 190 14 246 186 14 230 174 11 210 150 10 163 110 8
--104 69 6 10 10 10 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 6 6 6 85 57 6 167 114 7 206 145 10 230 174 11 242 186 14 246 190 14
--246 190 14 246 190 14 246 186 14 242 186 14 239 182 13 230 174 11 224 166 10 213 154 11
--169 125 40 124 112 88 86 86 86 58 58 58 38 38 38 22 22 22 10 10 10 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 14 14
--34 34 34 70 70 70 133 118 54 169 125 40 167 114 7 180 123 7 192 133 9 197 138 11
--200 144 11 206 145 10 213 154 11 219 162 10 224 166 10 230 174 11 239 182 13 242 186 14
--246 186 14 246 186 14 246 186 14 246 186 14 239 182 13 216 158 10 184 138 11 152 99 6
--104 69 6 20 16 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6 2 2 6
--2 2 6 6 6 6 85 57 6 152 99 6 192 133 9 219 162 10 236 178 12 239 182 13
--246 186 14 242 186 14 239 182 13 236 178 12 224 166 10 206 145 10 192 133 9 148 132 55
--94 94 94 62 62 62 42 42 42 22 22 22 14 14 14 6 6 6 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--18 18 18 34 34 34 58 58 58 78 78 78 101 98 89 124 112 88 133 118 54 156 107 11
--163 110 8 167 114 7 171 120 8 180 123 7 184 138 11 197 138 11 210 150 10 219 162 10
--226 170 11 236 178 12 236 178 12 234 174 13 219 162 10 197 138 11 163 110 8 134 84 6
--85 57 6 10 10 10 2 2 6 2 2 6 18 18 18 38 38 38 38 38 38 38 38 38
--38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 26 26 26 2 2 6
--2 2 6 6 6 6 62 42 6 137 92 6 171 120 8 200 144 11 219 162 10 230 174 11
--234 174 13 230 174 11 219 162 10 210 150 10 192 133 9 163 110 8 124 112 88 82 82 82
--50 50 50 30 30 30 14 14 14 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--6 6 6 14 14 14 22 22 22 34 34 34 42 42 42 58 58 58 74 74 74 86 86 86
--101 98 89 113 101 86 133 118 54 121 92 8 137 92 6 152 99 6 163 110 8 180 123 7
--184 138 11 197 138 11 206 145 10 200 144 11 180 123 7 156 107 11 134 84 6 104 69 6
--62 42 6 54 54 54 106 106 106 101 98 89 86 86 86 82 82 82 78 78 78 78 78 78
--78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 82 82 82 86 86 86 94 94 94
--106 106 106 101 101 101 90 61 47 120 80 7 156 107 11 180 123 7 192 133 9 200 144 11
--206 145 10 200 144 11 192 133 9 171 120 8 139 102 15 113 101 86 70 70 70 42 42 42
--22 22 22 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 6 6 6 10 10 10 14 14 14 22 22 22 30 30 30 38 38 38
--50 50 50 62 62 62 74 74 74 90 90 90 101 98 89 113 101 86 121 92 8 120 80 7
--137 92 6 152 99 6 152 99 6 152 99 6 134 84 6 120 80 7 98 70 6 88 55 22
--101 98 89 82 82 82 58 58 58 46 46 46 38 38 38 34 34 34 34 34 34 34 34 34
--34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 38 38 38 42 42 42
--54 54 54 82 82 82 94 86 71 85 57 6 134 84 6 156 107 11 167 114 7 171 120 8
--171 120 8 167 114 7 152 99 6 121 92 8 101 98 89 62 62 62 34 34 34 18 18 18
--6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 6 10 10 10
--18 18 18 22 22 22 30 30 30 42 42 42 50 50 50 66 66 66 86 86 86 101 98 89
--94 86 71 98 70 6 104 69 6 104 69 6 104 69 6 85 57 6 88 55 22 90 90 90
--62 62 62 38 38 38 22 22 22 14 14 14 10 10 10 10 10 10 10 10 10 10 10 10
--10 10 10 10 10 10 6 6 6 10 10 10 10 10 10 10 10 10 10 10 10 14 14 14
--22 22 22 42 42 42 70 70 70 94 86 71 85 57 6 104 69 6 120 80 7 137 92 6
--134 84 6 120 80 7 94 86 71 86 86 86 58 58 58 30 30 30 14 14 14 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 6 6 6 10 10 10 14 14 14 18 18 18 26 26 26 38 38 38 54 54 54
--70 70 70 86 86 86 94 86 71 94 86 71 94 86 71 86 86 86 74 74 74 50 50 50
--30 30 30 14 14 14 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--6 6 6 18 18 18 34 34 34 58 58 58 82 82 82 94 86 71 94 86 71 94 86 71
--94 86 71 94 86 71 74 74 74 50 50 50 26 26 26 14 14 14 6 6 6 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 6 14 14 14 18 18 18
--30 30 30 38 38 38 46 46 46 54 54 54 50 50 50 42 42 42 30 30 30 18 18 18
--10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 6 6 6 14 14 14 26 26 26 38 38 38 50 50 50 58 58 58 58 58 58
--54 54 54 42 42 42 30 30 30 18 18 18 10 10 10 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6
--6 6 6 10 10 10 14 14 14 18 18 18 18 18 18 14 14 14 10 10 10 6 6 6
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 6 6 6 14 14 14 18 18 18 22 22 22 22 22 22
--18 18 18 14 14 14 10 10 10 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 6 6 6 10 10 10 10 10 10
+- 10 10 10 6 6 6 6 6 6 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 10 10 10 14 14 14
+- 22 22 22 26 26 26 30 30 30 34 34 34
+- 30 30 30 30 30 30 26 26 26 18 18 18
+- 14 14 14 10 10 10 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 26 26 26 42 42 42
+- 54 54 54 66 66 66 78 78 78 78 78 78
+- 78 78 78 74 74 74 66 66 66 54 54 54
+- 42 42 42 26 26 26 18 18 18 10 10 10
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 22 22 22 42 42 42 66 66 66 86 86 86
+- 66 66 66 38 38 38 38 38 38 22 22 22
+- 26 26 26 34 34 34 54 54 54 66 66 66
+- 86 86 86 70 70 70 46 46 46 26 26 26
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 26 26 26
+- 50 50 50 82 82 82 58 58 58 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 54 54 54 86 86 86 66 66 66
+- 38 38 38 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 22 22 22 50 50 50
+- 78 78 78 34 34 34 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 6 6 6 70 70 70
+- 78 78 78 46 46 46 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 42 42 42 82 82 82
+- 26 26 26 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 14 14 14
+- 46 46 46 34 34 34 6 6 6 2 2 6
+- 42 42 42 78 78 78 42 42 42 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 30 30 30 66 66 66 58 58 58
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 26 26 26
+- 86 86 86 101 101 101 46 46 46 10 10 10
+- 2 2 6 58 58 58 70 70 70 34 34 34
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 42 42 42 86 86 86 10 10 10
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 30 30 30
+- 94 94 94 94 94 94 58 58 58 26 26 26
+- 2 2 6 6 6 6 78 78 78 54 54 54
+- 22 22 22 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 62 62 62 62 62 62 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 26 26 26
+- 54 54 54 38 38 38 18 18 18 10 10 10
+- 2 2 6 2 2 6 34 34 34 82 82 82
+- 38 38 38 14 14 14 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 30 30 30 78 78 78 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 10 10 10 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 78 78 78
+- 50 50 50 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 14 14 14 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 54 54 54
+- 66 66 66 26 26 26 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 82 82 82 2 2 6 2 2 6
+- 2 2 6 6 6 6 10 10 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 14 14 14 10 10 10 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 18 18 18
+- 82 82 82 34 34 34 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 2 2 6
+- 6 6 6 6 6 6 22 22 22 34 34 34
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 34 34 34
+- 10 10 10 50 50 50 22 22 22 2 2 6
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 86 86 86 42 42 42 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 2 2 6
+- 38 38 38 116 116 116 94 94 94 22 22 22
+- 22 22 22 2 2 6 2 2 6 2 2 6
+- 14 14 14 86 86 86 138 138 138 162 162 162
+-154 154 154 38 38 38 26 26 26 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 86 86 86 46 46 46 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 14 14 14
+-134 134 134 198 198 198 195 195 195 116 116 116
+- 10 10 10 2 2 6 2 2 6 6 6 6
+-101 98 89 187 187 187 210 210 210 218 218 218
+-214 214 214 134 134 134 14 14 14 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 86 86 86 50 50 50 18 18 18 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 54 54 54
+-218 218 218 195 195 195 226 226 226 246 246 246
+- 58 58 58 2 2 6 2 2 6 30 30 30
+-210 210 210 253 253 253 174 174 174 123 123 123
+-221 221 221 234 234 234 74 74 74 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 82 82 82 2 2 6 106 106 106
+-170 170 170 26 26 26 86 86 86 226 226 226
+-123 123 123 10 10 10 14 14 14 46 46 46
+-231 231 231 190 190 190 6 6 6 70 70 70
+- 90 90 90 238 238 238 158 158 158 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 86 86 86 6 6 6 116 116 116
+-106 106 106 6 6 6 70 70 70 149 149 149
+-128 128 128 18 18 18 38 38 38 54 54 54
+-221 221 221 106 106 106 2 2 6 14 14 14
+- 46 46 46 190 190 190 198 198 198 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 62 62 62 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 94 94 94 14 14 14 101 101 101
+-128 128 128 2 2 6 18 18 18 116 116 116
+-118 98 46 121 92 8 121 92 8 98 78 10
+-162 162 162 106 106 106 2 2 6 2 2 6
+- 2 2 6 195 195 195 195 195 195 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 62 62 62 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 1
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 90 90 90 14 14 14 58 58 58
+-210 210 210 26 26 26 54 38 6 154 114 10
+-226 170 11 236 186 11 225 175 15 184 144 12
+-215 174 15 175 146 61 37 26 9 2 2 6
+- 70 70 70 246 246 246 138 138 138 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 66 66 66 26 26 26 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 14 14 14 10 10 10
+-195 195 195 188 164 115 192 133 9 225 175 15
+-239 182 13 234 190 10 232 195 16 232 200 30
+-245 207 45 241 208 19 232 195 16 184 144 12
+-218 194 134 211 206 186 42 42 42 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 50 50 50 74 74 74 30 30 30 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 86 86 86 14 14 14 2 2 6
+-121 87 25 192 133 9 219 162 10 239 182 13
+-236 186 11 232 195 16 241 208 19 244 214 54
+-246 218 60 246 218 38 246 215 20 241 208 19
+-241 208 19 226 184 13 121 87 25 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 50 50 50 82 82 82 34 34 34 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 82 82 82 30 30 30 61 42 6
+-180 123 7 206 145 10 230 174 11 239 182 13
+-234 190 10 238 202 15 241 208 19 246 218 74
+-246 218 38 246 215 20 246 215 20 246 215 20
+-226 184 13 215 174 15 184 144 12 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 26 26 26 94 94 94 42 42 42 14 14 14
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 50 50 50 104 69 6
+-192 133 9 216 158 10 236 178 12 236 186 11
+-232 195 16 241 208 19 244 214 54 245 215 43
+-246 215 20 246 215 20 241 208 19 198 155 10
+-200 144 11 216 158 10 156 118 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 90 90 90 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 46 46 46 22 22 22
+-137 92 6 210 162 10 239 182 13 238 190 10
+-238 202 15 241 208 19 246 215 20 246 215 20
+-241 208 19 203 166 17 185 133 11 210 150 10
+-216 158 10 210 150 10 102 78 10 2 2 6
+- 6 6 6 54 54 54 14 14 14 2 2 6
+- 2 2 6 62 62 62 74 74 74 30 30 30
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 78 78 78 50 50 50 6 6 6
+- 94 70 30 139 102 15 190 146 13 226 184 13
+-232 200 30 232 195 16 215 174 15 190 146 13
+-168 122 10 192 133 9 210 150 10 213 154 11
+-202 150 34 182 157 106 101 98 89 2 2 6
+- 2 2 6 78 78 78 116 116 116 58 58 58
+- 2 2 6 22 22 22 90 90 90 46 46 46
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 50 50 50 6 6 6
+-128 128 128 174 154 114 156 107 11 168 122 10
+-198 155 10 184 144 12 197 138 11 200 144 11
+-206 145 10 206 145 10 197 138 11 188 164 115
+-195 195 195 198 198 198 174 174 174 14 14 14
+- 2 2 6 22 22 22 116 116 116 116 116 116
+- 22 22 22 2 2 6 74 74 74 70 70 70
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 101 101 101 26 26 26 10 10 10
+-138 138 138 190 190 190 174 154 114 156 107 11
+-197 138 11 200 144 11 197 138 11 192 133 9
+-180 123 7 190 142 34 190 178 144 187 187 187
+-202 202 202 221 221 221 214 214 214 66 66 66
+- 2 2 6 2 2 6 50 50 50 62 62 62
+- 6 6 6 2 2 6 10 10 10 90 90 90
+- 50 50 50 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 34 34 34
+- 74 74 74 74 74 74 2 2 6 6 6 6
+-144 144 144 198 198 198 190 190 190 178 166 146
+-154 121 60 156 107 11 156 107 11 168 124 44
+-174 154 114 187 187 187 190 190 190 210 210 210
+-246 246 246 253 253 253 253 253 253 182 182 182
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 62 62 62
+- 74 74 74 34 34 34 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 10 10 10 22 22 22 54 54 54
+- 94 94 94 18 18 18 2 2 6 46 46 46
+-234 234 234 221 221 221 190 190 190 190 190 190
+-190 190 190 187 187 187 187 187 187 190 190 190
+-190 190 190 195 195 195 214 214 214 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+- 82 82 82 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 14 14 14
+- 86 86 86 54 54 54 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 46 46 46 90 90 90
+- 46 46 46 18 18 18 6 6 6 182 182 182
+-253 253 253 246 246 246 206 206 206 190 190 190
+-190 190 190 190 190 190 190 190 190 190 190 190
+-206 206 206 231 231 231 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-202 202 202 14 14 14 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 42 42 42 86 86 86 42 42 42 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 14 14 14 38 38 38 74 74 74 66 66 66
+- 2 2 6 6 6 6 90 90 90 250 250 250
+-253 253 253 253 253 253 238 238 238 198 198 198
+-190 190 190 190 190 190 195 195 195 221 221 221
+-246 246 246 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 82 82 82 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 78 78 78 70 70 70 34 34 34
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 34 34 34 66 66 66 78 78 78 6 6 6
+- 2 2 6 18 18 18 218 218 218 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-226 226 226 231 231 231 246 246 246 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 178 178 178 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 18 18 18 90 90 90 62 62 62
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 26 26 26
+- 58 58 58 90 90 90 18 18 18 2 2 6
+- 2 2 6 110 110 110 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 231 231 231 18 18 18 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 94 94 94
+- 54 54 54 26 26 26 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 22 22 22 50 50 50
+- 90 90 90 26 26 26 2 2 6 2 2 6
+- 14 14 14 195 195 195 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 242 242 242 54 54 54 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+- 86 86 86 50 50 50 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 38 38 38 82 82 82
+- 34 34 34 2 2 6 2 2 6 2 2 6
+- 42 42 42 195 195 195 246 246 246 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 242 242 242 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 246 246 246 238 238 238
+-226 226 226 231 231 231 101 101 101 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 38 38 38 82 82 82 42 42 42 14 14 14
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 26 26 26 62 62 62 66 66 66
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 70 70 70 170 170 170 206 206 206 234 234 234
+-246 246 246 250 250 250 250 250 250 238 238 238
+-226 226 226 231 231 231 238 238 238 250 250 250
+-250 250 250 250 250 250 246 246 246 231 231 231
+-214 214 214 206 206 206 202 202 202 202 202 202
+-198 198 198 202 202 202 182 182 182 18 18 18
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 62 62 62 66 66 66 30 30 30
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 42 42 42 82 82 82 18 18 18
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 94 94 94 182 182 182 218 218 218 242 242 242
+-250 250 250 253 253 253 253 253 253 250 250 250
+-234 234 234 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-238 238 238 226 226 226 210 210 210 202 202 202
+-195 195 195 195 195 195 210 210 210 158 158 158
+- 6 6 6 14 14 14 50 50 50 14 14 14
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 86 86 86 46 46 46
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 54 54 54 70 70 70 2 2 6
+- 2 2 6 10 10 10 2 2 6 22 22 22
+-166 166 166 231 231 231 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-231 231 231 206 206 206 198 198 198 226 226 226
+- 94 94 94 2 2 6 6 6 6 38 38 38
+- 30 30 30 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 62 62 62 66 66 66
+- 26 26 26 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 74 74 74 50 50 50 2 2 6
+- 26 26 26 26 26 26 2 2 6 106 106 106
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 246 246 246 218 218 218 202 202 202
+-210 210 210 14 14 14 2 2 6 2 2 6
+- 30 30 30 22 22 22 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 86 86 86
+- 42 42 42 14 14 14 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 90 90 90 22 22 22 2 2 6
+- 42 42 42 2 2 6 18 18 18 218 218 218
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 250 250 250 221 221 221
+-218 218 218 101 101 101 2 2 6 14 14 14
+- 18 18 18 38 38 38 10 10 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 78 78 78
+- 58 58 58 22 22 22 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 54 54 54 82 82 82 2 2 6 26 26 26
+- 22 22 22 2 2 6 123 123 123 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-238 238 238 198 198 198 6 6 6 38 38 38
+- 58 58 58 26 26 26 38 38 38 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 78 78 78 30 30 30 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 30 30 30
+- 74 74 74 58 58 58 2 2 6 42 42 42
+- 2 2 6 22 22 22 231 231 231 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 246 246 246 46 46 46 38 38 38
+- 42 42 42 14 14 14 38 38 38 14 14 14
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 86 86 86 46 46 46 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 42 42 42
+- 90 90 90 18 18 18 18 18 18 26 26 26
+- 2 2 6 116 116 116 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 250 250 250 238 238 238
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 94 94 94 6 6 6
+- 2 2 6 2 2 6 10 10 10 34 34 34
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 10 10 10 26 26 26 66 66 66
+- 82 82 82 2 2 6 38 38 38 6 6 6
+- 14 14 14 210 210 210 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 246 246 246 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 144 144 144 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 42 42 42 74 74 74 30 30 30 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 42 42 42 90 90 90
+- 26 26 26 6 6 6 42 42 42 2 2 6
+- 74 74 74 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 242 242 242 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 182 182 182 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 10 10 10 86 86 86 38 38 38 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 26 26 26 66 66 66 82 82 82
+- 2 2 6 22 22 22 18 18 18 2 2 6
+-149 149 149 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 206 206 206 2 2 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 86 86 86 46 46 46 14 14 14
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 18 18 18 46 46 46 86 86 86 18 18 18
+- 2 2 6 34 34 34 10 10 10 6 6 6
+-210 210 210 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 221 221 221 6 6 6
+- 2 2 6 2 2 6 6 6 6 30 30 30
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 82 82 82 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 26 26 26 66 66 66 62 62 62 2 2 6
+- 2 2 6 38 38 38 10 10 10 26 26 26
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 238 238 238
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 6 6 6
+- 2 2 6 2 2 6 10 10 10 30 30 30
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 58 58 58 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 78 78 78 6 6 6 2 2 6
+- 2 2 6 46 46 46 14 14 14 42 42 42
+-246 246 246 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 10 10 10
+- 2 2 6 2 2 6 22 22 22 14 14 14
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 62 62 62 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 74 74 74 2 2 6 2 2 6
+- 14 14 14 70 70 70 34 34 34 62 62 62
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 14 14 14
+- 2 2 6 2 2 6 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 62 62 62 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 54 54 54 62 62 62 2 2 6 2 2 6
+- 2 2 6 30 30 30 46 46 46 70 70 70
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 226 226 226 10 10 10
+- 2 2 6 6 6 6 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 58 58 58 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 58 58 58 62 62 62 2 2 6 2 2 6
+- 2 2 6 2 2 6 30 30 30 78 78 78
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 206 206 206 2 2 6
+- 22 22 22 34 34 34 18 14 6 22 22 22
+- 26 26 26 18 18 18 6 6 6 2 2 6
+- 2 2 6 82 82 82 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 26 26 26
+- 62 62 62 106 106 106 74 54 14 185 133 11
+-210 162 10 121 92 8 6 6 6 62 62 62
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 158 158 158 18 18 18
+- 14 14 14 2 2 6 2 2 6 2 2 6
+- 6 6 6 18 18 18 66 66 66 38 38 38
+- 6 6 6 94 94 94 50 50 50 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 10 10 10 10 10 10 18 18 18 38 38 38
+- 78 78 78 142 134 106 216 158 10 242 186 14
+-246 190 14 246 190 14 156 118 10 10 10 10
+- 90 90 90 238 238 238 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 230 190
+-238 204 91 238 204 91 181 142 44 37 26 9
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 38 38 38 46 46 46
+- 26 26 26 106 106 106 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 22 22 22
+- 30 30 30 38 38 38 50 50 50 70 70 70
+-106 106 106 190 142 34 226 170 11 242 186 14
+-246 190 14 246 190 14 246 190 14 154 114 10
+- 6 6 6 74 74 74 226 226 226 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 228 184 62
+-241 196 14 241 208 19 232 195 16 38 30 10
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 30 30 30 26 26 26
+-203 166 17 154 142 90 66 66 66 26 26 26
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 38 38 38 58 58 58
+- 78 78 78 86 86 86 101 101 101 123 123 123
+-175 146 61 210 150 10 234 174 13 246 186 14
+-246 190 14 246 190 14 246 190 14 238 190 10
+-102 78 10 2 2 6 46 46 46 198 198 198
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 224 178 62
+-242 186 14 241 196 14 210 166 10 22 18 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 6 6 6 121 92 8
+-238 202 15 232 195 16 82 82 82 34 34 34
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 38 38 38 70 70 70 154 122 46
+-190 142 34 200 144 11 197 138 11 197 138 11
+-213 154 11 226 170 11 242 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-225 175 15 46 32 6 2 2 6 22 22 22
+-158 158 158 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 242 242 242 224 178 62
+-239 182 13 236 186 11 213 154 11 46 32 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 61 42 6 225 175 15
+-238 190 10 236 186 11 112 100 78 42 42 42
+- 14 14 14 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 54 54 54 154 122 46 213 154 11
+-226 170 11 230 174 11 226 170 11 226 170 11
+-236 178 12 242 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-241 196 14 184 144 12 10 10 10 2 2 6
+- 6 6 6 116 116 116 242 242 242 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 231 231 231 198 198 198 214 170 54
+-236 178 12 236 178 12 210 150 10 137 92 6
+- 18 14 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 70 47 6 200 144 11 236 178 12
+-239 182 13 239 182 13 124 112 88 58 58 58
+- 22 22 22 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 70 70 70 180 133 36 226 170 11
+-239 182 13 242 186 14 242 186 14 246 186 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 232 195 16 98 70 6 2 2 6
+- 2 2 6 2 2 6 66 66 66 221 221 221
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 206 206 206 198 198 198 214 166 58
+-230 174 11 230 174 11 216 158 10 192 133 9
+-163 110 8 116 81 8 102 78 10 116 81 8
+-167 114 7 197 138 11 226 170 11 239 182 13
+-242 186 14 242 186 14 162 146 94 78 78 78
+- 34 34 34 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 30 30 30 78 78 78 190 142 34 226 170 11
+-239 182 13 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 241 196 14 203 166 17 22 18 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+-218 218 218 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 206 206 206 198 198 198 202 162 69
+-226 170 11 236 178 12 224 166 10 210 150 10
+-200 144 11 197 138 11 192 133 9 197 138 11
+-210 150 10 226 170 11 242 186 14 246 190 14
+-246 190 14 246 186 14 225 175 15 124 112 88
+- 62 62 62 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 174 135 50 224 166 10
+-239 182 13 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 241 196 14 139 102 15
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 78 78 78 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 214 214 214 198 198 198 190 150 46
+-219 162 10 236 178 12 234 174 13 224 166 10
+-216 158 10 213 154 11 213 154 11 216 158 10
+-226 170 11 239 182 13 246 190 14 246 190 14
+-246 190 14 246 190 14 242 186 14 206 162 42
+-101 101 101 58 58 58 30 30 30 14 14 14
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 74 74 74 174 135 50 216 158 10
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 241 196 14 226 184 13
+- 61 42 6 2 2 6 2 2 6 2 2 6
+- 22 22 22 238 238 238 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 226 226 226 187 187 187 180 133 36
+-216 158 10 236 178 12 239 182 13 236 178 12
+-230 174 11 226 170 11 226 170 11 230 174 11
+-236 178 12 242 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 186 14 239 182 13
+-206 162 42 106 106 106 66 66 66 34 34 34
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 26 26 26 70 70 70 163 133 67 213 154 11
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 241 196 14
+-190 146 13 18 14 6 2 2 6 2 2 6
+- 46 46 46 246 246 246 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 221 221 221 86 86 86 156 107 11
+-216 158 10 236 178 12 242 186 14 246 186 14
+-242 186 14 239 182 13 239 182 13 242 186 14
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-242 186 14 225 175 15 142 122 72 66 66 66
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 26 26 26 70 70 70 163 133 67 210 150 10
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-232 195 16 121 92 8 34 34 34 106 106 106
+-221 221 221 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-242 242 242 82 82 82 18 14 6 163 110 8
+-216 158 10 236 178 12 242 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 242 186 14 163 133 67
+- 46 46 46 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 163 133 67 210 150 10
+-236 178 12 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-241 196 14 215 174 15 190 178 144 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 218 218 218
+- 58 58 58 2 2 6 22 18 6 167 114 7
+-216 158 10 236 178 12 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 186 14 242 186 14 190 150 46
+- 54 54 54 22 22 22 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 38 38 38 86 86 86 180 133 36 213 154 11
+-236 178 12 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 232 195 16 190 146 13 214 214 214
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 170 170 170 26 26 26
+- 2 2 6 2 2 6 37 26 9 163 110 8
+-219 162 10 239 182 13 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 236 178 12 224 166 10 142 122 72
+- 46 46 46 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 109 106 95 192 133 9 224 166 10
+-242 186 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-242 186 14 226 184 13 210 162 10 142 110 46
+-226 226 226 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-198 198 198 66 66 66 2 2 6 2 2 6
+- 2 2 6 2 2 6 50 34 6 156 107 11
+-219 162 10 239 182 13 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 242 186 14
+-234 174 13 213 154 11 154 122 46 66 66 66
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 58 58 58 154 121 60 206 145 10 234 174 13
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 236 178 12 210 162 10 163 110 8
+- 61 42 6 138 138 138 218 218 218 250 250 250
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 210 210 210 144 144 144 66 66 66
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 61 42 6 163 110 8
+-216 158 10 236 178 12 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 239 182 13 230 174 11 216 158 10
+-190 142 34 124 112 88 70 70 70 38 38 38
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 62 62 62 168 124 44 206 145 10 224 166 10
+-236 178 12 239 182 13 242 186 14 242 186 14
+-246 186 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 236 178 12 216 158 10 175 118 6
+- 80 54 7 2 2 6 6 6 6 30 30 30
+- 54 54 54 62 62 62 50 50 50 38 38 38
+- 14 14 14 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 80 54 7 167 114 7
+-213 154 11 236 178 12 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 242 186 14 239 182 13 239 182 13
+-230 174 11 210 150 10 174 135 50 124 112 88
+- 82 82 82 54 54 54 34 34 34 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 158 118 36 192 133 9 200 144 11
+-216 158 10 219 162 10 224 166 10 226 170 11
+-230 174 11 236 178 12 239 182 13 239 182 13
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 230 174 11 210 150 10 163 110 8
+-104 69 6 10 10 10 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 91 60 6 167 114 7
+-206 145 10 230 174 11 242 186 14 246 190 14
+-246 190 14 246 190 14 246 186 14 242 186 14
+-239 182 13 230 174 11 224 166 10 213 154 11
+-180 133 36 124 112 88 86 86 86 58 58 58
+- 38 38 38 22 22 22 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 34 34 34 70 70 70 138 110 50 158 118 36
+-167 114 7 180 123 7 192 133 9 197 138 11
+-200 144 11 206 145 10 213 154 11 219 162 10
+-224 166 10 230 174 11 239 182 13 242 186 14
+-246 186 14 246 186 14 246 186 14 246 186 14
+-239 182 13 216 158 10 185 133 11 152 99 6
+-104 69 6 18 14 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 80 54 7 152 99 6
+-192 133 9 219 162 10 236 178 12 239 182 13
+-246 186 14 242 186 14 239 182 13 236 178 12
+-224 166 10 206 145 10 192 133 9 154 121 60
+- 94 94 94 62 62 62 42 42 42 22 22 22
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 18 18 18 34 34 34 58 58 58 78 78 78
+-101 98 89 124 112 88 142 110 46 156 107 11
+-163 110 8 167 114 7 175 118 6 180 123 7
+-185 133 11 197 138 11 210 150 10 219 162 10
+-226 170 11 236 178 12 236 178 12 234 174 13
+-219 162 10 197 138 11 163 110 8 130 83 6
+- 91 60 6 10 10 10 2 2 6 2 2 6
+- 18 18 18 38 38 38 38 38 38 38 38 38
+- 38 38 38 38 38 38 38 38 38 38 38 38
+- 38 38 38 38 38 38 26 26 26 2 2 6
+- 2 2 6 6 6 6 70 47 6 137 92 6
+-175 118 6 200 144 11 219 162 10 230 174 11
+-234 174 13 230 174 11 219 162 10 210 150 10
+-192 133 9 163 110 8 124 112 88 82 82 82
+- 50 50 50 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 22 22 22 34 34 34
+- 42 42 42 58 58 58 74 74 74 86 86 86
+-101 98 89 122 102 70 130 98 46 121 87 25
+-137 92 6 152 99 6 163 110 8 180 123 7
+-185 133 11 197 138 11 206 145 10 200 144 11
+-180 123 7 156 107 11 130 83 6 104 69 6
+- 50 34 6 54 54 54 110 110 110 101 98 89
+- 86 86 86 82 82 82 78 78 78 78 78 78
+- 78 78 78 78 78 78 78 78 78 78 78 78
+- 78 78 78 82 82 82 86 86 86 94 94 94
+-106 106 106 101 101 101 86 66 34 124 80 6
+-156 107 11 180 123 7 192 133 9 200 144 11
+-206 145 10 200 144 11 192 133 9 175 118 6
+-139 102 15 109 106 95 70 70 70 42 42 42
+- 22 22 22 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 10 10 10
+- 14 14 14 22 22 22 30 30 30 38 38 38
+- 50 50 50 62 62 62 74 74 74 90 90 90
+-101 98 89 112 100 78 121 87 25 124 80 6
+-137 92 6 152 99 6 152 99 6 152 99 6
+-138 86 6 124 80 6 98 70 6 86 66 30
+-101 98 89 82 82 82 58 58 58 46 46 46
+- 38 38 38 34 34 34 34 34 34 34 34 34
+- 34 34 34 34 34 34 34 34 34 34 34 34
+- 34 34 34 34 34 34 38 38 38 42 42 42
+- 54 54 54 82 82 82 94 86 76 91 60 6
+-134 86 6 156 107 11 167 114 7 175 118 6
+-175 118 6 167 114 7 152 99 6 121 87 25
+-101 98 89 62 62 62 34 34 34 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 6 6 6 10 10 10
+- 18 18 18 22 22 22 30 30 30 42 42 42
+- 50 50 50 66 66 66 86 86 86 101 98 89
+-106 86 58 98 70 6 104 69 6 104 69 6
+-104 69 6 91 60 6 82 62 34 90 90 90
+- 62 62 62 38 38 38 22 22 22 14 14 14
+- 10 10 10 10 10 10 10 10 10 10 10 10
+- 10 10 10 10 10 10 6 6 6 10 10 10
+- 10 10 10 10 10 10 10 10 10 14 14 14
+- 22 22 22 42 42 42 70 70 70 89 81 66
+- 80 54 7 104 69 6 124 80 6 137 92 6
+-134 86 6 116 81 8 100 82 52 86 86 86
+- 58 58 58 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 10 10 10 14 14 14
+- 18 18 18 26 26 26 38 38 38 54 54 54
+- 70 70 70 86 86 86 94 86 76 89 81 66
+- 89 81 66 86 86 86 74 74 74 50 50 50
+- 30 30 30 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 34 34 34 58 58 58
+- 82 82 82 89 81 66 89 81 66 89 81 66
+- 94 86 66 94 86 76 74 74 74 50 50 50
+- 26 26 26 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 6 6 6 14 14 14 18 18 18
+- 30 30 30 38 38 38 46 46 46 54 54 54
+- 50 50 50 42 42 42 30 30 30 18 18 18
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 26 26 26
+- 38 38 38 50 50 50 58 58 58 58 58 58
+- 54 54 54 42 42 42 30 30 30 18 18 18
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 6 6 6 10 10 10 14 14 14 18 18 18
+- 18 18 18 14 14 14 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 14 14 14 18 18 18 22 22 22 22 22 22
+- 18 18 18 14 14 14 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
+4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
@@ -51900,7 +52371,7 @@ index 7aec6f3..e3b2d55 100644
framebuffer_release(info);
diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
-index 501b340..d80aa17 100644
+index bd83233..7d8a5aa 100644
--- a/drivers/video/vesafb.c
+++ b/drivers/video/vesafb.c
@@ -9,6 +9,7 @@
@@ -51911,8 +52382,8 @@ index 501b340..d80aa17 100644
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
-@@ -52,8 +53,8 @@ static int vram_remap __initdata; /* Set amount of memory to be used */
- static int vram_total __initdata; /* Set total amount of memory */
+@@ -52,8 +53,8 @@ static int vram_remap; /* Set amount of memory to be used */
+ static int vram_total; /* Set total amount of memory */
static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */
static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */
-static void (*pmi_start)(void) __read_mostly;
@@ -51922,15 +52393,15 @@ index 501b340..d80aa17 100644
static int depth __read_mostly;
static int vga_compat __read_mostly;
/* --------------------------------------------------------------------- */
-@@ -233,6 +234,7 @@ static int __init vesafb_probe(struct platform_device *dev)
- unsigned int size_vmode;
+@@ -234,6 +235,7 @@ static int vesafb_probe(struct platform_device *dev)
unsigned int size_remap;
unsigned int size_total;
+ char *option = NULL;
+ void *pmi_code = NULL;
- if (screen_info.orig_video_isVGA != VIDEO_TYPE_VLFB)
- return -ENODEV;
-@@ -275,10 +277,6 @@ static int __init vesafb_probe(struct platform_device *dev)
+ /* ignore error return of fb_get_options */
+ fb_get_options("vesafb", &option);
+@@ -280,10 +282,6 @@ static int vesafb_probe(struct platform_device *dev)
size_remap = size_total;
vesafb_fix.smem_len = size_remap;
@@ -51941,7 +52412,7 @@ index 501b340..d80aa17 100644
if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
printk(KERN_WARNING
"vesafb: cannot reserve video memory at 0x%lx\n",
-@@ -307,9 +305,21 @@ static int __init vesafb_probe(struct platform_device *dev)
+@@ -312,9 +310,21 @@ static int vesafb_probe(struct platform_device *dev)
printk(KERN_INFO "vesafb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
vesafb_defined.xres, vesafb_defined.yres, vesafb_defined.bits_per_pixel, vesafb_fix.line_length, screen_info.pages);
@@ -51965,7 +52436,7 @@ index 501b340..d80aa17 100644
}
if (screen_info.vesapm_seg < 0xc000)
-@@ -317,9 +327,25 @@ static int __init vesafb_probe(struct platform_device *dev)
+@@ -322,9 +332,25 @@ static int vesafb_probe(struct platform_device *dev)
if (ypan || pmi_setpal) {
unsigned short *pmi_base;
@@ -51993,7 +52464,7 @@ index 501b340..d80aa17 100644
printk(KERN_INFO "vesafb: pmi: set display start = %p, set palette = %p\n",pmi_start,pmi_pal);
if (pmi_base[3]) {
printk(KERN_INFO "vesafb: pmi: ports = ");
-@@ -472,8 +498,11 @@ static int __init vesafb_probe(struct platform_device *dev)
+@@ -477,8 +503,11 @@ static int vesafb_probe(struct platform_device *dev)
info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE |
(ypan ? FBINFO_HWACCEL_YPAN : 0);
@@ -52007,7 +52478,7 @@ index 501b340..d80aa17 100644
if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) {
err = -ENOMEM;
-@@ -488,6 +517,11 @@ static int __init vesafb_probe(struct platform_device *dev)
+@@ -493,6 +522,11 @@ static int vesafb_probe(struct platform_device *dev)
info->node, info->fix.id);
return 0;
err:
@@ -52063,7 +52534,7 @@ index 9ff073f..05cef23 100644
if (retval > 0)
retval = 0;
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
-index 25b018e..b941525 100644
+index 94de6d1..8d81256 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -1312,7 +1312,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
@@ -52111,51 +52582,18 @@ index 789bc25..fafaeea 100644
&data);
if (!inode) {
diff --git a/fs/aio.c b/fs/aio.c
-index 9b5ca11..c530886 100644
+index 067e3d3..634a850 100644
--- a/fs/aio.c
+++ b/fs/aio.c
-@@ -162,7 +162,7 @@ static int aio_setup_ring(struct kioctx *ctx)
+@@ -280,7 +280,7 @@ static int aio_setup_ring(struct kioctx *ctx)
size += sizeof(struct io_event) * nr_events;
- nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
+ nr_pages = PFN_UP(size);
- if (nr_pages < 0)
+ if (nr_pages <= 0)
return -EINVAL;
- nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
-@@ -952,6 +952,7 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb, int rw, aio_rw_op *rw_op)
- static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
- {
- ssize_t ret;
-+ struct iovec iovstack;
-
- kiocb->ki_nr_segs = kiocb->ki_nbytes;
-
-@@ -959,17 +960,22 @@ static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
- if (compat)
- ret = compat_rw_copy_check_uvector(rw,
- (struct compat_iovec __user *)kiocb->ki_buf,
-- kiocb->ki_nr_segs, 1, &kiocb->ki_inline_vec,
-+ kiocb->ki_nr_segs, 1, &iovstack,
- &kiocb->ki_iovec);
- else
- #endif
- ret = rw_copy_check_uvector(rw,
- (struct iovec __user *)kiocb->ki_buf,
-- kiocb->ki_nr_segs, 1, &kiocb->ki_inline_vec,
-+ kiocb->ki_nr_segs, 1, &iovstack,
- &kiocb->ki_iovec);
- if (ret < 0)
- return ret;
-
-+ if (kiocb->ki_iovec == &iovstack) {
-+ kiocb->ki_inline_vec = iovstack;
-+ kiocb->ki_iovec = &kiocb->ki_inline_vec;
-+ }
-+
- /* ki_nbytes now reflect bytes instead of segs */
- kiocb->ki_nbytes = ret;
- return 0;
+ file = anon_inode_getfile_private("[aio]", &aio_ring_fops, ctx, O_RDWR);
diff --git a/fs/attr.c b/fs/attr.c
index 1449adb..a2038c2 100644
--- a/fs/attr.c
@@ -52169,7 +52607,7 @@ index 1449adb..a2038c2 100644
goto out_sig;
if (offset > inode->i_sb->s_maxbytes)
diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
-index 3db70da..7aeec5b 100644
+index 689e40d..515cac5 100644
--- a/fs/autofs4/waitq.c
+++ b/fs/autofs4/waitq.c
@@ -59,7 +59,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
@@ -52181,7 +52619,7 @@ index 3db70da..7aeec5b 100644
ssize_t wr = 0;
sigpipe = sigismember(&current->pending.signal, SIGPIPE);
-@@ -346,6 +346,10 @@ static int validate_request(struct autofs_wait_queue **wait,
+@@ -340,6 +340,10 @@ static int validate_request(struct autofs_wait_queue **wait,
return 1;
}
@@ -52192,7 +52630,7 @@ index 3db70da..7aeec5b 100644
int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
enum autofs_notify notify)
{
-@@ -379,7 +383,12 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
+@@ -373,7 +377,12 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
/* If this is a direct mount request create a dummy name */
if (IS_ROOT(dentry) && autofs_type_trigger(sbi->type))
@@ -52206,7 +52644,7 @@ index 3db70da..7aeec5b 100644
qstr.len = autofs4_getpath(sbi, dentry, &name);
if (!qstr.len) {
diff --git a/fs/befs/endian.h b/fs/befs/endian.h
-index 2722387..c8dd2a7 100644
+index 2722387..56059b5 100644
--- a/fs/befs/endian.h
+++ b/fs/befs/endian.h
@@ -11,7 +11,7 @@
@@ -52227,6 +52665,15 @@ index 2722387..c8dd2a7 100644
fs32_to_cpu(const struct super_block *sb, fs32 n)
{
if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
+@@ -47,7 +47,7 @@ cpu_to_fs32(const struct super_block *sb, u32 n)
+ return (__force fs32)cpu_to_be32(n);
+ }
+
+-static inline u16
++static inline u16 __intentional_overflow(-1)
+ fs16_to_cpu(const struct super_block *sb, fs16 n)
+ {
+ if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index e9c75e2..1baece1 100644
--- a/fs/befs/linuxvfs.c
@@ -53335,7 +53782,7 @@ index d50bbe5..af3b649 100644
goto err;
}
diff --git a/fs/bio.c b/fs/bio.c
-index 5e7507d..418c639 100644
+index ea5035d..a2932eb 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1106,7 +1106,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
@@ -53366,7 +53813,7 @@ index 5e7507d..418c639 100644
bio_for_each_segment_all(bvec, bio, i) {
char *addr = page_address(bvec->bv_page);
diff --git a/fs/block_dev.c b/fs/block_dev.c
-index c7bda5c..2121e94 100644
+index 1e86823..8e34695 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -637,7 +637,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
@@ -53379,10 +53826,10 @@ index c7bda5c..2121e94 100644
else if (whole->bd_holder != NULL)
return false; /* is a partition of a held device */
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
-index ed50460..fe84385 100644
+index 61b5bcd..7eeede8 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
-@@ -1076,9 +1076,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
+@@ -1028,9 +1028,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
free_extent_buffer(buf);
add_root_to_dirty_list(root);
} else {
@@ -53399,10 +53846,10 @@ index ed50460..fe84385 100644
WARN_ON(trans->transid != btrfs_header_generation(parent));
diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
-index 3755109..e3d457f 100644
+index cbd9523..5cca781 100644
--- a/fs/btrfs/delayed-inode.c
+++ b/fs/btrfs/delayed-inode.c
-@@ -458,7 +458,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
+@@ -459,7 +459,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
static void finish_one_item(struct btrfs_delayed_root *delayed_root)
{
@@ -53411,7 +53858,7 @@ index 3755109..e3d457f 100644
if ((atomic_dec_return(&delayed_root->items) <
BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0) &&
waitqueue_active(&delayed_root->wait))
-@@ -1377,7 +1377,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
+@@ -1378,7 +1378,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
static int refs_newer(struct btrfs_delayed_root *delayed_root,
int seq, int count)
{
@@ -53420,7 +53867,7 @@ index 3755109..e3d457f 100644
if (val < seq || val >= seq + count)
return 1;
-@@ -1394,7 +1394,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
+@@ -1395,7 +1395,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND)
return;
@@ -53452,10 +53899,10 @@ index a4b38f9..f86a509 100644
spin_lock_init(&delayed_root->lock);
init_waitqueue_head(&delayed_root->wait);
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
-index 9877a2a..7ebf9ab 100644
+index 9d46f60..a8f09eb 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
-@@ -3097,9 +3097,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+@@ -3464,9 +3464,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
for (i = 0; i < num_types; i++) {
struct btrfs_space_info *tmp;
@@ -53468,7 +53915,7 @@ index 9877a2a..7ebf9ab 100644
info = NULL;
rcu_read_lock();
list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
-@@ -3121,10 +3124,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
+@@ -3488,10 +3491,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
memcpy(dest, &space, sizeof(space));
dest++;
space_args.total_spaces++;
@@ -53480,10 +53927,10 @@ index 9877a2a..7ebf9ab 100644
up_read(&info->groups_sem);
}
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
-index 8eb6191..eda91e2 100644
+index e913328..a34fb36 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
-@@ -264,7 +264,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
+@@ -266,7 +266,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
function, line, errstr);
return;
}
@@ -53493,32 +53940,10 @@ index 8eb6191..eda91e2 100644
wake_up(&root->fs_info->transaction_wait);
wake_up(&root->fs_info->transaction_blocked_wait);
diff --git a/fs/buffer.c b/fs/buffer.c
-index 4d74335..7bd000a 100644
+index 6024877..7bd000a 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
-@@ -1005,9 +1005,19 @@ grow_dev_page(struct block_device *bdev, sector_t block,
- struct buffer_head *bh;
- sector_t end_block;
- int ret = 0; /* Will call free_more_memory() */
-+ gfp_t gfp_mask;
-
-- page = find_or_create_page(inode->i_mapping, index,
-- (mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS)|__GFP_MOVABLE);
-+ gfp_mask = mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS;
-+ gfp_mask |= __GFP_MOVABLE;
-+ /*
-+ * XXX: __getblk_slow() can not really deal with failure and
-+ * will endlessly loop on improvised global reclaim. Prefer
-+ * looping in the allocator rather than here, at least that
-+ * code knows what it's doing.
-+ */
-+ gfp_mask |= __GFP_NOFAIL;
-+
-+ page = find_or_create_page(inode->i_mapping, index, gfp_mask);
- if (!page)
- return ret;
-
-@@ -3416,7 +3426,7 @@ void __init buffer_init(void)
+@@ -3426,7 +3426,7 @@ void __init buffer_init(void)
bh_cachep = kmem_cache_create("buffer_head",
sizeof(struct buffer_head), 0,
(SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
@@ -53588,7 +54013,7 @@ index 0a1467b..6a53245 100644
cache->bstop_percent = bstop;
diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
-index 4938251..7e01445 100644
+index 5349473..d6c0b93 100644
--- a/fs/cachefiles/internal.h
+++ b/fs/cachefiles/internal.h
@@ -59,7 +59,7 @@ struct cachefiles_cache {
@@ -53626,7 +54051,7 @@ index 4938251..7e01445 100644
#else
diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
-index 25badd1..d70d918 100644
+index f4a08d7..5aa4599 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -317,7 +317,7 @@ try_again:
@@ -53682,7 +54107,7 @@ index ebaff36..7e3ea26 100644
kunmap(page);
file_end_write(file);
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
-index a40ceda..f43d17c 100644
+index 868b61d..58835a5 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -240,7 +240,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
@@ -53695,10 +54120,10 @@ index a40ceda..f43d17c 100644
u32 ftype;
struct ceph_mds_reply_info_parsed *rinfo;
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
-index 6627b26..634ec4b 100644
+index 6a0951e..03fac6d 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
-@@ -839,7 +839,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
+@@ -870,7 +870,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
/*
* construct our own bdi so we can control readahead, etc.
*/
@@ -53707,7 +54132,7 @@ index 6627b26..634ec4b 100644
static int ceph_register_bdi(struct super_block *sb,
struct ceph_fs_client *fsc)
-@@ -856,7 +856,7 @@ static int ceph_register_bdi(struct super_block *sb,
+@@ -887,7 +887,7 @@ static int ceph_register_bdi(struct super_block *sb,
default_backing_dev_info.ra_pages;
err = bdi_register(&fsc->backing_dev_info, NULL, "ceph-%ld",
@@ -53761,10 +54186,10 @@ index f3ac415..3d2420c 100644
server->ops->print_stats(m, tcon);
}
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
-index 40cfef5..1eee040 100644
+index 77fc5e1..e3d13e6 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
-@@ -1039,7 +1039,7 @@ cifs_init_request_bufs(void)
+@@ -1056,7 +1056,7 @@ cifs_init_request_bufs(void)
*/
cifs_req_cachep = kmem_cache_create("cifs_request",
CIFSMaxBufSize + max_hdr_size, 0,
@@ -53773,7 +54198,7 @@ index 40cfef5..1eee040 100644
if (cifs_req_cachep == NULL)
return -ENOMEM;
-@@ -1066,7 +1066,7 @@ cifs_init_request_bufs(void)
+@@ -1083,7 +1083,7 @@ cifs_init_request_bufs(void)
efficient to alloc 1 per page off the slab compared to 17K (5page)
alloc of large cifs buffers even when page debugging is on */
cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
@@ -53782,7 +54207,7 @@ index 40cfef5..1eee040 100644
NULL);
if (cifs_sm_req_cachep == NULL) {
mempool_destroy(cifs_req_poolp);
-@@ -1151,8 +1151,8 @@ init_cifs(void)
+@@ -1168,8 +1168,8 @@ init_cifs(void)
atomic_set(&bufAllocCount, 0);
atomic_set(&smBufAllocCount, 0);
#ifdef CONFIG_CIFS_STATS2
@@ -53794,10 +54219,10 @@ index 40cfef5..1eee040 100644
atomic_set(&midCount, 0);
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
-index 52ca861..47f309c 100644
+index 52b6f6c..68db1f4 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
-@@ -756,35 +756,35 @@ struct cifs_tcon {
+@@ -758,35 +758,35 @@ struct cifs_tcon {
__u16 Flags; /* optional support bits */
enum statusEnum tidStatus;
#ifdef CONFIG_CIFS_STATS
@@ -53857,7 +54282,7 @@ index 52ca861..47f309c 100644
} smb2_stats;
#endif /* CONFIG_CIFS_SMB2 */
} stats;
-@@ -1096,7 +1096,7 @@ convert_delimiter(char *path, char delim)
+@@ -1111,7 +1111,7 @@ convert_delimiter(char *path, char delim)
}
#ifdef CONFIG_CIFS_STATS
@@ -53866,7 +54291,7 @@ index 52ca861..47f309c 100644
static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
unsigned int bytes)
-@@ -1461,8 +1461,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
+@@ -1477,8 +1477,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
/* Various Debug counters */
GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
#ifdef CONFIG_CIFS_STATS2
@@ -53878,10 +54303,10 @@ index 52ca861..47f309c 100644
GLOBAL_EXTERN atomic_t smBufAllocCount;
GLOBAL_EXTERN atomic_t midCount;
diff --git a/fs/cifs/link.c b/fs/cifs/link.c
-index 562044f..4af6a17 100644
+index 7e36ceb..109252f 100644
--- a/fs/cifs/link.c
+++ b/fs/cifs/link.c
-@@ -638,7 +638,7 @@ symlink_exit:
+@@ -624,7 +624,7 @@ symlink_exit:
void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
{
@@ -53891,10 +54316,10 @@ index 562044f..4af6a17 100644
kfree(p);
}
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
-index f7d4b22..1254377 100644
+index 138a011..cf9e13a 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
-@@ -169,7 +169,7 @@ cifs_buf_get(void)
+@@ -170,7 +170,7 @@ cifs_buf_get(void)
memset(ret_buf, 0, buf_size + 3);
atomic_inc(&bufAllocCount);
#ifdef CONFIG_CIFS_STATS2
@@ -53903,7 +54328,7 @@ index f7d4b22..1254377 100644
#endif /* CONFIG_CIFS_STATS2 */
}
-@@ -204,7 +204,7 @@ cifs_small_buf_get(void)
+@@ -205,7 +205,7 @@ cifs_small_buf_get(void)
/* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/
atomic_inc(&smBufAllocCount);
#ifdef CONFIG_CIFS_STATS2
@@ -53912,23 +54337,8 @@ index f7d4b22..1254377 100644
#endif /* CONFIG_CIFS_STATS2 */
}
-diff --git a/fs/cifs/netmisc.c b/fs/cifs/netmisc.c
-index af847e1..651a527 100644
---- a/fs/cifs/netmisc.c
-+++ b/fs/cifs/netmisc.c
-@@ -780,7 +780,9 @@ static const struct {
- ERRDOS, ERRnoaccess, 0xc0000290}, {
- ERRDOS, ERRbadfunc, 0xc000029c}, {
- ERRDOS, ERRsymlink, NT_STATUS_STOPPED_ON_SYMLINK}, {
-- ERRDOS, ERRinvlevel, 0x007c0001}, };
-+ ERRDOS, ERRinvlevel, 0x007c0001}, {
-+ 0, 0, 0 }
-+};
-
- /*****************************************************************************
- Print an error message from the status code
diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
-index 6094397..51e576f 100644
+index 8233b17..2b83e95 100644
--- a/fs/cifs/smb1ops.c
+++ b/fs/cifs/smb1ops.c
@@ -590,27 +590,27 @@ static void
@@ -54037,10 +54447,10 @@ index 6094397..51e576f 100644
}
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
-index f259e6c..ca948ff 100644
+index 861b332..5506392 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
-@@ -281,8 +281,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
+@@ -282,8 +282,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
#ifdef CONFIG_CIFS_STATS
int i;
for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) {
@@ -54051,7 +54461,7 @@ index f259e6c..ca948ff 100644
}
#endif
}
-@@ -310,65 +310,65 @@ static void
+@@ -311,65 +311,65 @@ static void
smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
{
#ifdef CONFIG_CIFS_STATS
@@ -54158,10 +54568,10 @@ index f259e6c..ca948ff 100644
}
diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
-index abc9c28..3fdae28 100644
+index edccb52..16bc6db 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
-@@ -1946,8 +1946,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
+@@ -1957,8 +1957,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
default:
cifs_dbg(VFS, "info level %u isn't supported\n",
srch_inf->info_level);
@@ -54422,10 +54832,10 @@ index 277bd1b..f312c9e 100644
/*
* We'll have a dentry and an inode for
diff --git a/fs/coredump.c b/fs/coredump.c
-index 72f816d..1ba8eff 100644
+index 9bdeca1..2247b92 100644
--- a/fs/coredump.c
+++ b/fs/coredump.c
-@@ -433,8 +433,8 @@ static void wait_for_dump_helpers(struct file *file)
+@@ -438,8 +438,8 @@ static void wait_for_dump_helpers(struct file *file)
struct pipe_inode_info *pipe = file->private_data;
pipe_lock(pipe);
@@ -54436,7 +54846,7 @@ index 72f816d..1ba8eff 100644
wake_up_interruptible_sync(&pipe->wait);
kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
pipe_unlock(pipe);
-@@ -443,11 +443,11 @@ static void wait_for_dump_helpers(struct file *file)
+@@ -448,11 +448,11 @@ static void wait_for_dump_helpers(struct file *file)
* We actually want wait_event_freezable() but then we need
* to clear TIF_SIGPENDING and improve dump_interrupted().
*/
@@ -54451,7 +54861,7 @@ index 72f816d..1ba8eff 100644
pipe_unlock(pipe);
}
-@@ -494,7 +494,8 @@ void do_coredump(siginfo_t *siginfo)
+@@ -499,7 +499,8 @@ void do_coredump(siginfo_t *siginfo)
struct files_struct *displaced;
bool need_nonrelative = false;
bool core_dumped = false;
@@ -54461,7 +54871,7 @@ index 72f816d..1ba8eff 100644
struct coredump_params cprm = {
.siginfo = siginfo,
.regs = signal_pt_regs(),
-@@ -507,7 +508,10 @@ void do_coredump(siginfo_t *siginfo)
+@@ -512,7 +513,10 @@ void do_coredump(siginfo_t *siginfo)
.mm_flags = mm->flags,
};
@@ -54473,7 +54883,7 @@ index 72f816d..1ba8eff 100644
binfmt = mm->binfmt;
if (!binfmt || !binfmt->core_dump)
-@@ -531,7 +535,7 @@ void do_coredump(siginfo_t *siginfo)
+@@ -536,7 +540,7 @@ void do_coredump(siginfo_t *siginfo)
need_nonrelative = true;
}
@@ -54482,7 +54892,7 @@ index 72f816d..1ba8eff 100644
if (retval < 0)
goto fail_creds;
-@@ -574,7 +578,7 @@ void do_coredump(siginfo_t *siginfo)
+@@ -579,7 +583,7 @@ void do_coredump(siginfo_t *siginfo)
}
cprm.limit = RLIM_INFINITY;
@@ -54491,7 +54901,7 @@ index 72f816d..1ba8eff 100644
if (core_pipe_limit && (core_pipe_limit < dump_count)) {
printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
task_tgid_vnr(current), current->comm);
-@@ -606,6 +610,8 @@ void do_coredump(siginfo_t *siginfo)
+@@ -611,6 +615,8 @@ void do_coredump(siginfo_t *siginfo)
} else {
struct inode *inode;
@@ -54500,7 +54910,7 @@ index 72f816d..1ba8eff 100644
if (cprm.limit < binfmt->min_coredump)
goto fail_unlock;
-@@ -664,7 +670,7 @@ close_fail:
+@@ -669,7 +675,7 @@ close_fail:
filp_close(cprm.file, NULL);
fail_dropcount:
if (ispipe)
@@ -54509,7 +54919,7 @@ index 72f816d..1ba8eff 100644
fail_unlock:
kfree(cn.corename);
coredump_finish(mm, core_dumped);
-@@ -684,7 +690,7 @@ int dump_write(struct file *file, const void *addr, int nr)
+@@ -689,7 +695,7 @@ int dump_write(struct file *file, const void *addr, int nr)
{
return !dump_interrupted() &&
access_ok(VERIFY_READ, addr, nr) &&
@@ -54519,10 +54929,10 @@ index 72f816d..1ba8eff 100644
EXPORT_SYMBOL(dump_write);
diff --git a/fs/dcache.c b/fs/dcache.c
-index b949af8..5978926 100644
+index ae6ebb8..6e46065 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
-@@ -3073,7 +3073,8 @@ void __init vfs_caches_init(unsigned long mempages)
+@@ -3429,7 +3429,8 @@ void __init vfs_caches_init(unsigned long mempages)
mempages -= reserve;
names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
@@ -54584,7 +54994,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 fd774c7..d08c9ec 100644
+index 8875dd1..c53682a 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -55,8 +55,20 @@
@@ -54608,7 +55018,7 @@ index fd774c7..d08c9ec 100644
#include <asm/mmu_context.h>
#include <asm/tlb.h>
-@@ -66,17 +78,32 @@
+@@ -66,19 +78,34 @@
#include <trace/events/sched.h>
@@ -54635,6 +55045,8 @@ index fd774c7..d08c9ec 100644
void __register_binfmt(struct linux_binfmt * fmt, int insert)
{
BUG_ON(!fmt);
+ if (WARN_ON(!fmt->load_binary))
+ return;
write_lock(&binfmt_lock);
- insert ? list_add(&fmt->lh, &formats) :
- list_add_tail(&fmt->lh, &formats);
@@ -54643,7 +55055,7 @@ index fd774c7..d08c9ec 100644
write_unlock(&binfmt_lock);
}
-@@ -85,7 +112,7 @@ EXPORT_SYMBOL(__register_binfmt);
+@@ -87,7 +114,7 @@ EXPORT_SYMBOL(__register_binfmt);
void unregister_binfmt(struct linux_binfmt * fmt)
{
write_lock(&binfmt_lock);
@@ -54652,7 +55064,7 @@ index fd774c7..d08c9ec 100644
write_unlock(&binfmt_lock);
}
-@@ -181,18 +208,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
+@@ -183,18 +210,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
int write)
{
struct page *page;
@@ -54674,7 +55086,7 @@ index fd774c7..d08c9ec 100644
return NULL;
if (write) {
-@@ -208,6 +227,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
+@@ -210,6 +229,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
if (size <= ARG_MAX)
return page;
@@ -54692,10 +55104,10 @@ index fd774c7..d08c9ec 100644
/*
* Limit to 1/4-th the stack size for the argv+env strings.
* This ensures that:
-@@ -267,6 +297,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
+@@ -269,6 +299,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
vma->vm_end = STACK_TOP_MAX;
vma->vm_start = vma->vm_end - PAGE_SIZE;
- vma->vm_flags = VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
+ vma->vm_flags = VM_SOFTDIRTY | VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
+
+#ifdef CONFIG_PAX_SEGMEXEC
+ vma->vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
@@ -54704,7 +55116,7 @@ index fd774c7..d08c9ec 100644
vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
INIT_LIST_HEAD(&vma->anon_vma_chain);
-@@ -277,6 +312,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
+@@ -279,6 +314,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
mm->stack_vm = mm->total_vm = 1;
up_write(&mm->mmap_sem);
bprm->p = vma->vm_end - sizeof(void *);
@@ -54717,7 +55129,7 @@ index fd774c7..d08c9ec 100644
return 0;
err:
up_write(&mm->mmap_sem);
-@@ -397,7 +438,7 @@ struct user_arg_ptr {
+@@ -399,7 +440,7 @@ struct user_arg_ptr {
} ptr;
};
@@ -54726,7 +55138,7 @@ index fd774c7..d08c9ec 100644
{
const char __user *native;
-@@ -406,14 +447,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
+@@ -408,14 +449,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
compat_uptr_t compat;
if (get_user(compat, argv.ptr.compat + nr))
@@ -54743,7 +55155,7 @@ index fd774c7..d08c9ec 100644
return native;
}
-@@ -432,7 +473,7 @@ static int count(struct user_arg_ptr argv, int max)
+@@ -434,7 +475,7 @@ static int count(struct user_arg_ptr argv, int max)
if (!p)
break;
@@ -54752,7 +55164,7 @@ index fd774c7..d08c9ec 100644
return -EFAULT;
if (i >= max)
-@@ -467,7 +508,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
+@@ -469,7 +510,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
ret = -EFAULT;
str = get_user_arg_ptr(argv, argc);
@@ -54761,7 +55173,7 @@ index fd774c7..d08c9ec 100644
goto out;
len = strnlen_user(str, MAX_ARG_STRLEN);
-@@ -549,7 +590,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
+@@ -551,7 +592,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
int r;
mm_segment_t oldfs = get_fs();
struct user_arg_ptr argv = {
@@ -54770,7 +55182,7 @@ index fd774c7..d08c9ec 100644
};
set_fs(KERNEL_DS);
-@@ -584,7 +625,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
+@@ -586,7 +627,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
unsigned long new_end = old_end - shift;
struct mmu_gather tlb;
@@ -54780,7 +55192,7 @@ index fd774c7..d08c9ec 100644
/*
* ensure there are no vmas between where we want to go
-@@ -593,6 +635,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
+@@ -595,6 +637,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
if (vma != find_vma(mm, new_start))
return -EFAULT;
@@ -54791,7 +55203,7 @@ index fd774c7..d08c9ec 100644
/*
* cover the whole range: [new_start, old_end)
*/
-@@ -673,10 +719,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -675,10 +721,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
stack_top = arch_align_stack(stack_top);
stack_top = PAGE_ALIGN(stack_top);
@@ -54802,7 +55214,7 @@ index fd774c7..d08c9ec 100644
stack_shift = vma->vm_end - stack_top;
bprm->p -= stack_shift;
-@@ -688,8 +730,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -690,8 +732,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
bprm->exec -= stack_shift;
down_write(&mm->mmap_sem);
@@ -54831,7 +55243,7 @@ index fd774c7..d08c9ec 100644
/*
* Adjust stack execute permissions; explicitly enable for
* EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
-@@ -708,13 +770,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -710,13 +772,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
goto out_unlock;
BUG_ON(prev != vma);
@@ -54845,7 +55257,7 @@ index fd774c7..d08c9ec 100644
/* mprotect_fixup is overkill to remove the temporary stack flags */
vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
-@@ -738,6 +793,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
+@@ -740,6 +795,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
#endif
current->mm->start_stack = bprm->p;
ret = expand_stack(vma, stack_base);
@@ -54873,7 +55285,7 @@ index fd774c7..d08c9ec 100644
if (ret)
ret = -EFAULT;
-@@ -774,6 +850,8 @@ struct file *open_exec(const char *name)
+@@ -776,6 +852,8 @@ struct file *open_exec(const char *name)
fsnotify_open(file);
@@ -54882,7 +55294,7 @@ index fd774c7..d08c9ec 100644
err = deny_write_access(file);
if (err)
goto exit;
-@@ -797,7 +875,7 @@ int kernel_read(struct file *file, loff_t offset,
+@@ -799,7 +877,7 @@ int kernel_read(struct file *file, loff_t offset,
old_fs = get_fs();
set_fs(get_ds());
/* The cast to a user pointer is valid due to the set_fs() */
@@ -54891,7 +55303,7 @@ index fd774c7..d08c9ec 100644
set_fs(old_fs);
return result;
}
-@@ -1253,7 +1331,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
+@@ -1255,7 +1333,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
}
rcu_read_unlock();
@@ -54900,9 +55312,9 @@ index fd774c7..d08c9ec 100644
bprm->unsafe |= LSM_UNSAFE_SHARE;
} else {
res = -EAGAIN;
-@@ -1453,6 +1531,31 @@ int search_binary_handler(struct linux_binprm *bprm)
-
- EXPORT_SYMBOL(search_binary_handler);
+@@ -1451,6 +1529,31 @@ static int exec_binprm(struct linux_binprm *bprm)
+ return ret;
+ }
+#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
+static DEFINE_PER_CPU(u64, exec_counter);
@@ -54932,7 +55344,7 @@ index fd774c7..d08c9ec 100644
/*
* sys_execve() executes a new program.
*/
-@@ -1460,12 +1563,19 @@ static int do_execve_common(const char *filename,
+@@ -1458,12 +1561,19 @@ static int do_execve_common(const char *filename,
struct user_arg_ptr argv,
struct user_arg_ptr envp)
{
@@ -54952,7 +55364,7 @@ index fd774c7..d08c9ec 100644
/*
* We move the actual failure in case of RLIMIT_NPROC excess from
* set*uid() to execve() because too many poorly written programs
-@@ -1506,12 +1616,22 @@ static int do_execve_common(const char *filename,
+@@ -1504,12 +1614,22 @@ static int do_execve_common(const char *filename,
if (IS_ERR(file))
goto out_unmark;
@@ -54975,7 +55387,7 @@ index fd774c7..d08c9ec 100644
retval = bprm_mm_init(bprm);
if (retval)
goto out_file;
-@@ -1528,24 +1648,70 @@ static int do_execve_common(const char *filename,
+@@ -1526,24 +1646,70 @@ static int do_execve_common(const char *filename,
if (retval < 0)
goto out;
@@ -55035,7 +55447,7 @@ index fd774c7..d08c9ec 100644
+
+ gr_handle_exec_args(bprm, argv);
- retval = search_binary_handler(bprm);
+ retval = exec_binprm(bprm);
if (retval < 0)
- goto out;
+ goto out_fail;
@@ -55050,7 +55462,7 @@ index fd774c7..d08c9ec 100644
current->fs->in_exec = 0;
current->in_execve = 0;
acct_update_integrals(current);
-@@ -1554,6 +1720,14 @@ static int do_execve_common(const char *filename,
+@@ -1552,6 +1718,14 @@ static int do_execve_common(const char *filename,
put_files_struct(displaced);
return retval;
@@ -55065,7 +55477,7 @@ index fd774c7..d08c9ec 100644
out:
if (bprm->mm) {
acct_arg_size(bprm, 0);
-@@ -1702,3 +1876,295 @@ asmlinkage long compat_sys_execve(const char __user * filename,
+@@ -1700,3 +1874,295 @@ asmlinkage long compat_sys_execve(const char __user * filename,
return error;
}
#endif
@@ -55378,6 +55790,31 @@ index 9f9992b..8b59411 100644
return 0;
}
return 1;
+diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
+index 2d7557d..14e38f94 100644
+--- a/fs/ext2/xattr.c
++++ b/fs/ext2/xattr.c
+@@ -247,7 +247,7 @@ ext2_xattr_list(struct dentry *dentry, char *buffer, size_t buffer_size)
+ struct buffer_head *bh = NULL;
+ struct ext2_xattr_entry *entry;
+ char *end;
+- size_t rest = buffer_size;
++ size_t rest = buffer_size, total_size = 0;
+ int error;
+
+ ea_idebug(inode, "buffer=%p, buffer_size=%ld",
+@@ -305,9 +305,10 @@ bad_block: ext2_error(inode->i_sb, "ext2_xattr_list",
+ buffer += size;
+ }
+ rest -= size;
++ total_size += size;
+ }
+ }
+- error = buffer_size - rest; /* total size */
++ error = total_size;
+
+ cleanup:
+ brelse(bh);
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
index 22548f5..41521d8 100644
--- a/fs/ext3/balloc.c
@@ -55395,11 +55832,36 @@ index 22548f5..41521d8 100644
return 0;
}
return 1;
+diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
+index b1fc963..881228c 100644
+--- a/fs/ext3/xattr.c
++++ b/fs/ext3/xattr.c
+@@ -330,7 +330,7 @@ static int
+ ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry,
+ char *buffer, size_t buffer_size)
+ {
+- size_t rest = buffer_size;
++ size_t rest = buffer_size, total_size = 0;
+
+ for (; !IS_LAST_ENTRY(entry); entry = EXT3_XATTR_NEXT(entry)) {
+ const struct xattr_handler *handler =
+@@ -347,9 +347,10 @@ ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry,
+ buffer += size;
+ }
+ rest -= size;
++ total_size += size;
+ }
+ }
+- return buffer_size - rest;
++ return total_size;
+ }
+
+ static int
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
-index ddd715e..c772f88 100644
+index dc5d572..4c21f8e 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
-@@ -528,8 +528,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
+@@ -534,8 +534,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
/* Hm, nope. Are (enough) root reserved clusters available? */
if (uid_eq(sbi->s_resuid, current_fsuid()) ||
(!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
@@ -55411,10 +55873,10 @@ index ddd715e..c772f88 100644
if (free_clusters >= (nclusters + dirty_clusters +
resv_clusters))
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 0ab26fb..b6ecb39 100644
+index af815ea..99294a6 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
-@@ -1247,19 +1247,19 @@ struct ext4_sb_info {
+@@ -1256,19 +1256,19 @@ struct ext4_sb_info {
unsigned long s_mb_last_start;
/* stats for buddy allocator */
@@ -55445,10 +55907,10 @@ index 0ab26fb..b6ecb39 100644
/* locality groups */
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
-index 4bbbf13b..dcceaeb 100644
+index a41e3ba..e574a00 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
-@@ -1865,7 +1865,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
+@@ -1880,7 +1880,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
if (EXT4_SB(sb)->s_mb_stats)
@@ -55457,7 +55919,7 @@ index 4bbbf13b..dcceaeb 100644
break;
}
-@@ -2171,7 +2171,7 @@ repeat:
+@@ -2189,7 +2189,7 @@ repeat:
ac->ac_status = AC_STATUS_CONTINUE;
ac->ac_flags |= EXT4_MB_HINT_FIRST;
cr = 3;
@@ -55466,7 +55928,7 @@ index 4bbbf13b..dcceaeb 100644
goto repeat;
}
}
-@@ -2679,25 +2679,25 @@ int ext4_mb_release(struct super_block *sb)
+@@ -2697,25 +2697,25 @@ int ext4_mb_release(struct super_block *sb)
if (sbi->s_mb_stats) {
ext4_msg(sb, KERN_INFO,
"mballoc: %u blocks %u reqs (%u success)",
@@ -55502,7 +55964,7 @@ index 4bbbf13b..dcceaeb 100644
}
free_percpu(sbi->s_locality_groups);
-@@ -3151,16 +3151,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
+@@ -3169,16 +3169,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
@@ -55525,7 +55987,7 @@ index 4bbbf13b..dcceaeb 100644
}
if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
-@@ -3560,7 +3560,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
+@@ -3578,7 +3578,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
trace_ext4_mb_new_inode_pa(ac, pa);
ext4_mb_use_inode_pa(ac, pa);
@@ -55534,7 +55996,7 @@ index 4bbbf13b..dcceaeb 100644
ei = EXT4_I(ac->ac_inode);
grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
-@@ -3620,7 +3620,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
+@@ -3638,7 +3638,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
trace_ext4_mb_new_group_pa(ac, pa);
ext4_mb_use_group_pa(ac, pa);
@@ -55543,7 +56005,7 @@ index 4bbbf13b..dcceaeb 100644
grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
lg = ac->ac_lg;
-@@ -3709,7 +3709,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
+@@ -3727,7 +3727,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
* from the bitmap and continue.
*/
}
@@ -55552,7 +56014,7 @@ index 4bbbf13b..dcceaeb 100644
return err;
}
-@@ -3727,7 +3727,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
+@@ -3745,7 +3745,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
@@ -55575,10 +56037,10 @@ index 214461e..3614c89 100644
"MMP failure info: last update time: %llu, last update "
"node: %s, last update device: %s\n",
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index b59373b..f41c2b5 100644
+index 2c2e6cb..7c3ee62 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
-@@ -1254,7 +1254,7 @@ static ext4_fsblk_t get_sb_block(void **data)
+@@ -1251,7 +1251,7 @@ static ext4_fsblk_t get_sb_block(void **data)
}
#define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
@@ -55587,7 +56049,7 @@ index b59373b..f41c2b5 100644
"Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
#ifdef CONFIG_QUOTA
-@@ -2394,7 +2394,7 @@ struct ext4_attr {
+@@ -2431,7 +2431,7 @@ struct ext4_attr {
int offset;
int deprecated_val;
} u;
@@ -55596,6 +56058,31 @@ index b59373b..f41c2b5 100644
static int parse_strtoull(const char *buf,
unsigned long long max, unsigned long long *value)
+diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
+index 03e9beb..e86ce98 100644
+--- a/fs/ext4/xattr.c
++++ b/fs/ext4/xattr.c
+@@ -381,7 +381,7 @@ static int
+ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
+ char *buffer, size_t buffer_size)
+ {
+- size_t rest = buffer_size;
++ size_t rest = buffer_size, total_size = 0;
+
+ for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
+ const struct xattr_handler *handler =
+@@ -398,9 +398,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
+ buffer += size;
+ }
+ rest -= size;
++ total_size += size;
+ }
+ }
+- return buffer_size - rest;
++ return total_size;
+ }
+
+ static int
diff --git a/fs/fcntl.c b/fs/fcntl.c
index 65343c3..9969dcf 100644
--- a/fs/fcntl.c
@@ -55766,7 +56253,7 @@ index d8ac61d..79a36f0 100644
.seq = SEQCNT_ZERO,
.umask = 0022,
diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
-index 0e91a3c..6c6d2e0 100644
+index b2a86e3..37f425a 100644
--- a/fs/fscache/cookie.c
+++ b/fs/fscache/cookie.c
@@ -19,7 +19,7 @@
@@ -55899,11 +56386,31 @@ index 0e91a3c..6c6d2e0 100644
_leave(" [no cookie]");
return;
}
+@@ -598,7 +598,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
+ if (test_bit(FSCACHE_IOERROR, &object->cache->flags))
+ goto inconsistent;
+
+- op->debug_id = atomic_inc_return(&fscache_op_debug_id);
++ op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
+
+ atomic_inc(&cookie->n_active);
+ if (fscache_submit_op(object, op) < 0)
diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
-index 12d505b..86473a3 100644
+index 4226f66..0fb3f45 100644
--- a/fs/fscache/internal.h
+++ b/fs/fscache/internal.h
-@@ -147,101 +147,101 @@ extern void fscache_proc_cleanup(void);
+@@ -133,8 +133,8 @@ extern void fscache_operation_gc(struct work_struct *);
+ extern int fscache_wait_for_deferred_lookup(struct fscache_cookie *);
+ extern int fscache_wait_for_operation_activation(struct fscache_object *,
+ struct fscache_operation *,
+- atomic_t *,
+- atomic_t *,
++ atomic_unchecked_t *,
++ atomic_unchecked_t *,
+ void (*)(struct fscache_operation *));
+ extern void fscache_invalidate_writes(struct fscache_cookie *);
+
+@@ -153,101 +153,101 @@ extern void fscache_proc_cleanup(void);
* stats.c
*/
#ifdef CONFIG_FSCACHE_STATS
@@ -56086,7 +56593,7 @@ index 12d505b..86473a3 100644
extern atomic_t fscache_n_cop_alloc_object;
extern atomic_t fscache_n_cop_lookup_object;
-@@ -266,6 +266,11 @@ static inline void fscache_stat(atomic_t *stat)
+@@ -272,6 +272,11 @@ static inline void fscache_stat(atomic_t *stat)
atomic_inc(stat);
}
@@ -56098,7 +56605,7 @@ index 12d505b..86473a3 100644
static inline void fscache_stat_d(atomic_t *stat)
{
atomic_dec(stat);
-@@ -278,6 +283,7 @@ extern const struct file_operations fscache_stats_fops;
+@@ -284,6 +289,7 @@ extern const struct file_operations fscache_stats_fops;
#define __fscache_stat(stat) (NULL)
#define fscache_stat(stat) do {} while (0)
@@ -56348,7 +56855,7 @@ index 318071a..379938b 100644
ASSERTCMP(atomic_read(&op->usage), ==, 0);
ASSERTCMP(op->state, ==, FSCACHE_OP_ST_DEAD);
diff --git a/fs/fscache/page.c b/fs/fscache/page.c
-index d479ab3..727a7f2 100644
+index 73899c1..ae40c58 100644
--- a/fs/fscache/page.c
+++ b/fs/fscache/page.c
@@ -61,7 +61,7 @@ try_again:
@@ -56448,7 +56955,7 @@ index d479ab3..727a7f2 100644
return NULL;
}
-@@ -289,13 +289,13 @@ static int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
+@@ -289,13 +289,13 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
return 0;
}
@@ -56466,42 +56973,43 @@ index d479ab3..727a7f2 100644
}
@@ -324,8 +324,8 @@ static void fscache_do_cancel_retrieval(struct fscache_operation *_op)
*/
- static int fscache_wait_for_retrieval_activation(struct fscache_object *object,
- struct fscache_retrieval *op,
-- atomic_t *stat_op_waits,
-- atomic_t *stat_object_dead)
-+ atomic_unchecked_t *stat_op_waits,
-+ atomic_unchecked_t *stat_object_dead)
+ int fscache_wait_for_operation_activation(struct fscache_object *object,
+ struct fscache_operation *op,
+- atomic_t *stat_op_waits,
+- atomic_t *stat_object_dead,
++ atomic_unchecked_t *stat_op_waits,
++ atomic_unchecked_t *stat_object_dead,
+ void (*do_cancel)(struct fscache_operation *))
{
int ret;
-
-@@ -333,7 +333,7 @@ static int fscache_wait_for_retrieval_activation(struct fscache_object *object,
- goto check_if_dead;
+@@ -335,7 +335,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
_debug(">>> WT");
-- fscache_stat(stat_op_waits);
-+ fscache_stat_unchecked(stat_op_waits);
- if (wait_on_bit(&op->op.flags, FSCACHE_OP_WAITING,
+ if (stat_op_waits)
+- fscache_stat(stat_op_waits);
++ fscache_stat_unchecked(stat_op_waits);
+ if (wait_on_bit(&op->flags, FSCACHE_OP_WAITING,
fscache_wait_bit_interruptible,
TASK_INTERRUPTIBLE) != 0) {
-@@ -350,14 +350,14 @@ static int fscache_wait_for_retrieval_activation(struct fscache_object *object,
-
+@@ -353,7 +353,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
check_if_dead:
- if (op->op.state == FSCACHE_OP_ST_CANCELLED) {
-- fscache_stat(stat_object_dead);
-+ fscache_stat_unchecked(stat_object_dead);
+ if (op->state == FSCACHE_OP_ST_CANCELLED) {
+ if (stat_object_dead)
+- fscache_stat(stat_object_dead);
++ fscache_stat_unchecked(stat_object_dead);
_leave(" = -ENOBUFS [cancelled]");
return -ENOBUFS;
}
- if (unlikely(fscache_object_is_dead(object))) {
- pr_err("%s() = -ENOBUFS [obj dead %d]\n", __func__, op->op.state);
- fscache_cancel_op(&op->op, fscache_do_cancel_retrieval);
-- fscache_stat(stat_object_dead);
-+ fscache_stat_unchecked(stat_object_dead);
+@@ -361,7 +361,7 @@ check_if_dead:
+ pr_err("%s() = -ENOBUFS [obj dead %d]\n", __func__, op->state);
+ fscache_cancel_op(op, do_cancel);
+ if (stat_object_dead)
+- fscache_stat(stat_object_dead);
++ fscache_stat_unchecked(stat_object_dead);
return -ENOBUFS;
}
return 0;
-@@ -384,7 +384,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
+@@ -388,7 +388,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
_enter("%p,%p,,,", cookie, page);
@@ -56510,7 +57018,7 @@ index d479ab3..727a7f2 100644
if (hlist_empty(&cookie->backing_objects))
goto nobufs;
-@@ -424,7 +424,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
+@@ -428,7 +428,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
goto nobufs_unlock_dec;
spin_unlock(&cookie->lock);
@@ -56519,7 +57027,7 @@ index d479ab3..727a7f2 100644
/* pin the netfs read context in case we need to do the actual netfs
* read because we've encountered a cache read failure */
-@@ -454,15 +454,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
+@@ -459,15 +459,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
error:
if (ret == -ENOMEM)
@@ -56540,7 +57048,7 @@ index d479ab3..727a7f2 100644
fscache_put_retrieval(op);
_leave(" = %d", ret);
-@@ -475,7 +475,7 @@ nobufs_unlock:
+@@ -480,7 +480,7 @@ nobufs_unlock:
atomic_dec(&cookie->n_active);
kfree(op);
nobufs:
@@ -56549,7 +57057,7 @@ index d479ab3..727a7f2 100644
_leave(" = -ENOBUFS");
return -ENOBUFS;
}
-@@ -513,7 +513,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
+@@ -518,7 +518,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
_enter("%p,,%d,,,", cookie, *nr_pages);
@@ -56558,7 +57066,7 @@ index d479ab3..727a7f2 100644
if (hlist_empty(&cookie->backing_objects))
goto nobufs;
-@@ -549,7 +549,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
+@@ -554,7 +554,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
goto nobufs_unlock_dec;
spin_unlock(&cookie->lock);
@@ -56567,7 +57075,7 @@ index d479ab3..727a7f2 100644
/* pin the netfs read context in case we need to do the actual netfs
* read because we've encountered a cache read failure */
-@@ -579,15 +579,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
+@@ -585,15 +585,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
error:
if (ret == -ENOMEM)
@@ -56588,7 +57096,7 @@ index d479ab3..727a7f2 100644
fscache_put_retrieval(op);
_leave(" = %d", ret);
-@@ -600,7 +600,7 @@ nobufs_unlock:
+@@ -606,7 +606,7 @@ nobufs_unlock:
atomic_dec(&cookie->n_active);
kfree(op);
nobufs:
@@ -56597,7 +57105,7 @@ index d479ab3..727a7f2 100644
_leave(" = -ENOBUFS");
return -ENOBUFS;
}
-@@ -624,7 +624,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
+@@ -630,7 +630,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
_enter("%p,%p,,,", cookie, page);
@@ -56606,16 +57114,16 @@ index d479ab3..727a7f2 100644
if (hlist_empty(&cookie->backing_objects))
goto nobufs;
-@@ -656,7 +656,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
+@@ -662,7 +662,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
goto nobufs_unlock;
spin_unlock(&cookie->lock);
- fscache_stat(&fscache_n_alloc_ops);
+ fscache_stat_unchecked(&fscache_n_alloc_ops);
- ret = fscache_wait_for_retrieval_activation(
- object, op,
-@@ -672,11 +672,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
+ ret = fscache_wait_for_operation_activation(
+ object, &op->op,
+@@ -679,11 +679,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
error:
if (ret == -ERESTARTSYS)
@@ -56630,7 +57138,7 @@ index d479ab3..727a7f2 100644
fscache_put_retrieval(op);
_leave(" = %d", ret);
-@@ -687,7 +687,7 @@ nobufs_unlock:
+@@ -694,7 +694,7 @@ nobufs_unlock:
atomic_dec(&cookie->n_active);
kfree(op);
nobufs:
@@ -56639,7 +57147,7 @@ index d479ab3..727a7f2 100644
_leave(" = -ENOBUFS");
return -ENOBUFS;
}
-@@ -747,7 +747,7 @@ static void fscache_write_op(struct fscache_operation *_op)
+@@ -770,7 +770,7 @@ static void fscache_write_op(struct fscache_operation *_op)
spin_lock(&cookie->stores_lock);
@@ -56648,7 +57156,7 @@ index d479ab3..727a7f2 100644
/* find a page to store */
page = NULL;
-@@ -758,7 +758,7 @@ static void fscache_write_op(struct fscache_operation *_op)
+@@ -781,7 +781,7 @@ static void fscache_write_op(struct fscache_operation *_op)
page = results[0];
_debug("gang %d [%lx]", n, page->index);
if (page->index > op->store_limit) {
@@ -56657,7 +57165,7 @@ index d479ab3..727a7f2 100644
goto superseded;
}
-@@ -770,7 +770,7 @@ static void fscache_write_op(struct fscache_operation *_op)
+@@ -793,7 +793,7 @@ static void fscache_write_op(struct fscache_operation *_op)
spin_unlock(&cookie->stores_lock);
spin_unlock(&object->lock);
@@ -56666,7 +57174,7 @@ index d479ab3..727a7f2 100644
fscache_stat(&fscache_n_cop_write_page);
ret = object->cache->ops->write_page(op, page);
fscache_stat_d(&fscache_n_cop_write_page);
-@@ -873,7 +873,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
+@@ -896,7 +896,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
ASSERT(PageFsCache(page));
@@ -56675,7 +57183,7 @@ index d479ab3..727a7f2 100644
if (test_bit(FSCACHE_COOKIE_INVALIDATING, &cookie->flags)) {
_leave(" = -ENOBUFS [invalidating]");
-@@ -931,7 +931,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
+@@ -954,7 +954,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
spin_unlock(&cookie->stores_lock);
spin_unlock(&object->lock);
@@ -56684,7 +57192,7 @@ index d479ab3..727a7f2 100644
op->store_limit = object->store_limit;
atomic_inc(&cookie->n_active);
-@@ -940,8 +940,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
+@@ -963,8 +963,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
spin_unlock(&cookie->lock);
radix_tree_preload_end();
@@ -56695,7 +57203,7 @@ index d479ab3..727a7f2 100644
/* the work queue now carries its own ref on the object */
fscache_put_operation(&op->op);
-@@ -949,14 +949,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
+@@ -972,14 +972,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
return 0;
already_queued:
@@ -56712,7 +57220,7 @@ index d479ab3..727a7f2 100644
_leave(" = 0");
return 0;
-@@ -976,14 +976,14 @@ nobufs:
+@@ -999,14 +999,14 @@ nobufs:
spin_unlock(&cookie->lock);
radix_tree_preload_end();
kfree(op);
@@ -56729,7 +57237,7 @@ index d479ab3..727a7f2 100644
_leave(" = -ENOMEM");
return -ENOMEM;
}
-@@ -1001,7 +1001,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
+@@ -1024,7 +1024,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
ASSERTCMP(page, !=, NULL);
@@ -56738,7 +57246,7 @@ index d479ab3..727a7f2 100644
/* cache withdrawal may beat us to it */
if (!PageFsCache(page))
-@@ -1052,7 +1052,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
+@@ -1075,7 +1075,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
struct fscache_cookie *cookie = op->op.object->cookie;
#ifdef CONFIG_FSCACHE_STATS
@@ -57130,10 +57638,10 @@ index 40d13c7..ddf52b9 100644
seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
atomic_read(&fscache_n_cop_alloc_object),
diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
-index aef34b1..59bfd7b 100644
+index adbfd66..4b25822 100644
--- a/fs/fuse/cuse.c
+++ b/fs/fuse/cuse.c
-@@ -600,10 +600,12 @@ static int __init cuse_init(void)
+@@ -603,10 +603,12 @@ static int __init cuse_init(void)
INIT_LIST_HEAD(&cuse_conntbl[i]);
/* inherit and extend fuse_dev_operations */
@@ -57151,7 +57659,7 @@ index aef34b1..59bfd7b 100644
cuse_class = class_create(THIS_MODULE, "cuse");
if (IS_ERR(cuse_class))
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
-index 1d55f94..088da65 100644
+index ef74ad5..c9ac759e 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1339,7 +1339,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
@@ -57173,10 +57681,10 @@ index 1d55f94..088da65 100644
}
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index 8fec28f..cd40dba 100644
+index b7989f2..1f72ec4 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
-@@ -1437,7 +1437,7 @@ static char *read_link(struct dentry *dentry)
+@@ -1438,7 +1438,7 @@ static char *read_link(struct dentry *dentry)
return link;
}
@@ -57186,10 +57694,10 @@ index 8fec28f..cd40dba 100644
if (!IS_ERR(link))
free_page((unsigned long) link);
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
-index 64915ee..6bed500 100644
+index ced3257..b5c3b942 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
-@@ -1506,7 +1506,7 @@ out:
+@@ -1508,7 +1508,7 @@ out:
static void gfs2_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
{
@@ -57198,6 +57706,19 @@ index 64915ee..6bed500 100644
if (!IS_ERR(s))
kfree(s);
}
+diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
+index 2543728..14d7bd4 100644
+--- a/fs/hostfs/hostfs_kern.c
++++ b/fs/hostfs/hostfs_kern.c
+@@ -904,7 +904,7 @@ static void *hostfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+
+ static void hostfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
+ {
+- char *s = nd_get_link(nd);
++ const char *s = nd_get_link(nd);
+ if (!IS_ERR(s))
+ __putname(s);
+ }
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index d19b30a..ef89c36 100644
--- a/fs/hugetlbfs/inode.c
@@ -57249,10 +57770,10 @@ index d19b30a..ef89c36 100644
static int can_do_hugetlb_shm(void)
{
diff --git a/fs/inode.c b/fs/inode.c
-index d6dfb09..602e77e 100644
+index b33ba8e..3c79a47 100644
--- a/fs/inode.c
+++ b/fs/inode.c
-@@ -880,8 +880,8 @@ unsigned int get_next_ino(void)
+@@ -849,8 +849,8 @@ unsigned int get_next_ino(void)
#ifdef CONFIG_SMP
if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
@@ -57376,7 +57897,7 @@ index b27a300..4156d0b 100644
spin_lock(&inode->i_lock);
diff --git a/fs/namei.c b/fs/namei.c
-index 7720fbd..7934bb2 100644
+index caa2805..c9d3edc 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -319,16 +319,32 @@ int generic_permission(struct inode *inode, int mask)
@@ -57430,7 +57951,7 @@ index 7720fbd..7934bb2 100644
return -EACCES;
}
-@@ -820,7 +828,7 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
+@@ -821,7 +829,7 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
{
struct dentry *dentry = link->dentry;
int error;
@@ -57439,7 +57960,7 @@ index 7720fbd..7934bb2 100644
BUG_ON(nd->flags & LOOKUP_RCU);
-@@ -841,6 +849,12 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
+@@ -842,6 +850,12 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
if (error)
goto out_put_nd_path;
@@ -57452,7 +57973,7 @@ index 7720fbd..7934bb2 100644
nd->last_type = LAST_BIND;
*p = dentry->d_inode->i_op->follow_link(dentry, nd);
error = PTR_ERR(*p);
-@@ -1588,6 +1602,8 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
+@@ -1602,6 +1616,8 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
if (res)
break;
res = walk_component(nd, path, LOOKUP_FOLLOW);
@@ -57461,7 +57982,7 @@ index 7720fbd..7934bb2 100644
put_link(nd, &link, cookie);
} while (res > 0);
-@@ -1686,7 +1702,7 @@ EXPORT_SYMBOL(full_name_hash);
+@@ -1700,7 +1716,7 @@ EXPORT_SYMBOL(full_name_hash);
static inline unsigned long hash_name(const char *name, unsigned int *hashp)
{
unsigned long a, b, adata, bdata, mask, hash, len;
@@ -57470,7 +57991,7 @@ index 7720fbd..7934bb2 100644
hash = a = 0;
len = -sizeof(unsigned long);
-@@ -1967,6 +1983,8 @@ static int path_lookupat(int dfd, const char *name,
+@@ -1981,6 +1997,8 @@ static int path_lookupat(int dfd, const char *name,
if (err)
break;
err = lookup_last(nd, &path);
@@ -57479,7 +58000,7 @@ index 7720fbd..7934bb2 100644
put_link(nd, &link, cookie);
}
}
-@@ -1974,6 +1992,13 @@ static int path_lookupat(int dfd, const char *name,
+@@ -1988,6 +2006,13 @@ static int path_lookupat(int dfd, const char *name,
if (!err)
err = complete_walk(nd);
@@ -57493,7 +58014,7 @@ index 7720fbd..7934bb2 100644
if (!err && nd->flags & LOOKUP_DIRECTORY) {
if (!can_lookup(nd->inode)) {
path_put(&nd->path);
-@@ -2001,8 +2026,15 @@ static int filename_lookup(int dfd, struct filename *name,
+@@ -2015,8 +2040,15 @@ static int filename_lookup(int dfd, struct filename *name,
retval = path_lookupat(dfd, name->name,
flags | LOOKUP_REVAL, nd);
@@ -57510,7 +58031,7 @@ index 7720fbd..7934bb2 100644
return retval;
}
-@@ -2380,6 +2412,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
+@@ -2586,6 +2618,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
if (flag & O_NOATIME && !inode_owner_or_capable(inode))
return -EPERM;
@@ -57524,7 +58045,7 @@ index 7720fbd..7934bb2 100644
return 0;
}
-@@ -2601,7 +2640,7 @@ looked_up:
+@@ -2817,7 +2856,7 @@ looked_up:
* cleared otherwise prior to returning.
*/
static int lookup_open(struct nameidata *nd, struct path *path,
@@ -57533,7 +58054,7 @@ index 7720fbd..7934bb2 100644
const struct open_flags *op,
bool got_write, int *opened)
{
-@@ -2636,6 +2675,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -2852,6 +2891,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
/* Negative dentry, just create the file */
if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
umode_t mode = op->mode;
@@ -57551,7 +58072,7 @@ index 7720fbd..7934bb2 100644
if (!IS_POSIXACL(dir->d_inode))
mode &= ~current_umask();
/*
-@@ -2657,6 +2707,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -2873,6 +2923,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
nd->flags & LOOKUP_EXCL);
if (error)
goto out_dput;
@@ -57560,7 +58081,7 @@ index 7720fbd..7934bb2 100644
}
out_no_open:
path->dentry = dentry;
-@@ -2671,7 +2723,7 @@ out_dput:
+@@ -2887,7 +2939,7 @@ out_dput:
/*
* Handle the last step of open()
*/
@@ -57569,7 +58090,7 @@ index 7720fbd..7934bb2 100644
struct file *file, const struct open_flags *op,
int *opened, struct filename *name)
{
-@@ -2721,6 +2773,15 @@ static int do_last(struct nameidata *nd, struct path *path,
+@@ -2937,6 +2989,15 @@ static int do_last(struct nameidata *nd, struct path *path,
if (error)
return error;
@@ -57585,7 +58106,7 @@ index 7720fbd..7934bb2 100644
audit_inode(name, dir, LOOKUP_PARENT);
error = -EISDIR;
/* trailing slashes? */
-@@ -2740,7 +2801,7 @@ retry_lookup:
+@@ -2956,7 +3017,7 @@ retry_lookup:
*/
}
mutex_lock(&dir->d_inode->i_mutex);
@@ -57594,7 +58115,7 @@ index 7720fbd..7934bb2 100644
mutex_unlock(&dir->d_inode->i_mutex);
if (error <= 0) {
-@@ -2764,11 +2825,28 @@ retry_lookup:
+@@ -2980,11 +3041,28 @@ retry_lookup:
goto finish_open_created;
}
@@ -57624,7 +58145,7 @@ index 7720fbd..7934bb2 100644
/*
* If atomic_open() acquired write access it is dropped now due to
-@@ -2809,6 +2887,11 @@ finish_lookup:
+@@ -3025,6 +3103,11 @@ finish_lookup:
}
}
BUG_ON(inode != path->dentry->d_inode);
@@ -57636,7 +58157,7 @@ index 7720fbd..7934bb2 100644
return 1;
}
-@@ -2818,7 +2901,6 @@ finish_lookup:
+@@ -3034,7 +3117,6 @@ finish_lookup:
save_parent.dentry = nd->path.dentry;
save_parent.mnt = mntget(path->mnt);
nd->path.dentry = path->dentry;
@@ -57644,7 +58165,7 @@ index 7720fbd..7934bb2 100644
}
nd->inode = inode;
/* Why this, you ask? _Now_ we might have grown LOOKUP_JUMPED... */
-@@ -2828,7 +2910,18 @@ finish_open:
+@@ -3044,7 +3126,18 @@ finish_open:
path_put(&save_parent);
return error;
}
@@ -57663,7 +58184,7 @@ index 7720fbd..7934bb2 100644
error = -EISDIR;
if ((open_flag & O_CREAT) && S_ISDIR(nd->inode->i_mode))
goto out;
-@@ -2991,7 +3084,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
+@@ -3207,7 +3300,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
if (unlikely(error))
goto out;
@@ -57672,7 +58193,7 @@ index 7720fbd..7934bb2 100644
while (unlikely(error > 0)) { /* trailing symlink */
struct path link = path;
void *cookie;
-@@ -3009,7 +3102,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
+@@ -3225,7 +3318,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
error = follow_link(&link, nd, &cookie);
if (unlikely(error))
break;
@@ -57681,7 +58202,7 @@ index 7720fbd..7934bb2 100644
put_link(nd, &link, cookie);
}
out:
-@@ -3109,8 +3202,12 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
+@@ -3325,8 +3418,12 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
goto unlock;
error = -EEXIST;
@@ -57695,7 +58216,7 @@ index 7720fbd..7934bb2 100644
/*
* Special case - lookup gave negative, but... we had foo/bar/
* From the vfs_mknod() POV we just have a negative dentry -
-@@ -3162,6 +3259,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
+@@ -3378,6 +3475,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
}
EXPORT_SYMBOL(user_path_create);
@@ -57716,7 +58237,7 @@ index 7720fbd..7934bb2 100644
int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
{
int error = may_create(dir, dentry);
-@@ -3224,6 +3335,17 @@ retry:
+@@ -3440,6 +3551,17 @@ retry:
if (!IS_POSIXACL(path.dentry->d_inode))
mode &= ~current_umask();
@@ -57734,7 +58255,7 @@ index 7720fbd..7934bb2 100644
error = security_path_mknod(&path, dentry, mode, dev);
if (error)
goto out;
-@@ -3240,6 +3362,8 @@ retry:
+@@ -3456,6 +3578,8 @@ retry:
break;
}
out:
@@ -57743,7 +58264,7 @@ index 7720fbd..7934bb2 100644
done_path_create(&path, dentry);
if (retry_estale(error, lookup_flags)) {
lookup_flags |= LOOKUP_REVAL;
-@@ -3292,9 +3416,16 @@ retry:
+@@ -3508,9 +3632,16 @@ retry:
if (!IS_POSIXACL(path.dentry->d_inode))
mode &= ~current_umask();
@@ -57760,7 +58281,7 @@ index 7720fbd..7934bb2 100644
done_path_create(&path, dentry);
if (retry_estale(error, lookup_flags)) {
lookup_flags |= LOOKUP_REVAL;
-@@ -3375,6 +3506,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
+@@ -3591,6 +3722,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
struct filename *name;
struct dentry *dentry;
struct nameidata nd;
@@ -57769,7 +58290,7 @@ index 7720fbd..7934bb2 100644
unsigned int lookup_flags = 0;
retry:
name = user_path_parent(dfd, pathname, &nd, lookup_flags);
-@@ -3407,10 +3540,21 @@ retry:
+@@ -3623,10 +3756,21 @@ retry:
error = -ENOENT;
goto exit3;
}
@@ -57791,7 +58312,7 @@ index 7720fbd..7934bb2 100644
exit3:
dput(dentry);
exit2:
-@@ -3476,6 +3620,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
+@@ -3692,6 +3836,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
struct dentry *dentry;
struct nameidata nd;
struct inode *inode = NULL;
@@ -57800,7 +58321,7 @@ index 7720fbd..7934bb2 100644
unsigned int lookup_flags = 0;
retry:
name = user_path_parent(dfd, pathname, &nd, lookup_flags);
-@@ -3502,10 +3648,22 @@ retry:
+@@ -3718,10 +3864,22 @@ retry:
if (!inode)
goto slashes;
ihold(inode);
@@ -57823,7 +58344,7 @@ index 7720fbd..7934bb2 100644
exit2:
dput(dentry);
}
-@@ -3583,9 +3741,17 @@ retry:
+@@ -3799,9 +3957,17 @@ retry:
if (IS_ERR(dentry))
goto out_putname;
@@ -57841,7 +58362,7 @@ index 7720fbd..7934bb2 100644
done_path_create(&path, dentry);
if (retry_estale(error, lookup_flags)) {
lookup_flags |= LOOKUP_REVAL;
-@@ -3665,6 +3831,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
+@@ -3881,6 +4047,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
{
struct dentry *new_dentry;
struct path old_path, new_path;
@@ -57849,7 +58370,7 @@ index 7720fbd..7934bb2 100644
int how = 0;
int error;
-@@ -3688,7 +3855,7 @@ retry:
+@@ -3904,7 +4071,7 @@ retry:
if (error)
return error;
@@ -57858,7 +58379,7 @@ index 7720fbd..7934bb2 100644
(how & LOOKUP_REVAL));
error = PTR_ERR(new_dentry);
if (IS_ERR(new_dentry))
-@@ -3700,11 +3867,28 @@ retry:
+@@ -3916,11 +4083,28 @@ retry:
error = may_linkat(&old_path);
if (unlikely(error))
goto out_dput;
@@ -57887,7 +58408,7 @@ index 7720fbd..7934bb2 100644
done_path_create(&new_path, new_dentry);
if (retry_estale(error, how)) {
how |= LOOKUP_REVAL;
-@@ -3950,12 +4134,21 @@ retry:
+@@ -4166,12 +4350,21 @@ retry:
if (new_dentry == trap)
goto exit5;
@@ -57909,7 +58430,7 @@ index 7720fbd..7934bb2 100644
exit5:
dput(new_dentry);
exit4:
-@@ -3987,6 +4180,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
+@@ -4203,6 +4396,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
{
@@ -57918,7 +58439,7 @@ index 7720fbd..7934bb2 100644
int len;
len = PTR_ERR(link);
-@@ -3996,7 +4191,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
+@@ -4212,7 +4407,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
len = strlen(link);
if (len > (unsigned) buflen)
len = buflen;
@@ -57935,10 +58456,10 @@ index 7720fbd..7934bb2 100644
out:
return len;
diff --git a/fs/namespace.c b/fs/namespace.c
-index a45ba4f..b4c7d07 100644
+index da5c494..a755a54 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -1265,6 +1265,9 @@ static int do_umount(struct mount *mnt, int flags)
+@@ -1268,6 +1268,9 @@ static int do_umount(struct mount *mnt, int flags)
if (!(sb->s_flags & MS_RDONLY))
retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
up_write(&sb->s_umount);
@@ -57948,7 +58469,7 @@ index a45ba4f..b4c7d07 100644
return retval;
}
-@@ -1283,6 +1286,9 @@ static int do_umount(struct mount *mnt, int flags)
+@@ -1286,6 +1289,9 @@ static int do_umount(struct mount *mnt, int flags)
}
br_write_unlock(&vfsmount_lock);
namespace_unlock();
@@ -57958,7 +58479,7 @@ index a45ba4f..b4c7d07 100644
return retval;
}
-@@ -1302,7 +1308,7 @@ static inline bool may_mount(void)
+@@ -1305,7 +1311,7 @@ static inline bool may_mount(void)
* unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
*/
@@ -57967,7 +58488,7 @@ index a45ba4f..b4c7d07 100644
{
struct path path;
struct mount *mnt;
-@@ -1342,7 +1348,7 @@ out:
+@@ -1347,7 +1353,7 @@ out:
/*
* The 2.0 compatible umount. No flags.
*/
@@ -57976,7 +58497,7 @@ index a45ba4f..b4c7d07 100644
{
return sys_umount(name, 0);
}
-@@ -2313,6 +2319,16 @@ long do_mount(const char *dev_name, const char *dir_name,
+@@ -2358,6 +2364,16 @@ long do_mount(const char *dev_name, const char *dir_name,
MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
MS_STRICTATIME);
@@ -57993,7 +58514,7 @@ index a45ba4f..b4c7d07 100644
if (flags & MS_REMOUNT)
retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
data_page);
-@@ -2327,6 +2343,9 @@ long do_mount(const char *dev_name, const char *dir_name,
+@@ -2372,6 +2388,9 @@ long do_mount(const char *dev_name, const char *dir_name,
dev_name, data_page);
dput_out:
path_put(&path);
@@ -58003,7 +58524,7 @@ index a45ba4f..b4c7d07 100644
return retval;
}
-@@ -2344,7 +2363,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
+@@ -2389,7 +2408,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
* number incrementing at 10Ghz will take 12,427 years to wrap which
* is effectively never, so we can ignore the possibility.
*/
@@ -58012,7 +58533,7 @@ index a45ba4f..b4c7d07 100644
static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
{
-@@ -2359,7 +2378,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
+@@ -2404,7 +2423,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
kfree(new_ns);
return ERR_PTR(ret);
}
@@ -58021,7 +58542,7 @@ index a45ba4f..b4c7d07 100644
atomic_set(&new_ns->count, 1);
new_ns->root = NULL;
INIT_LIST_HEAD(&new_ns->list);
-@@ -2373,7 +2392,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
+@@ -2418,7 +2437,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
* Allocate a new namespace structure and populate it with contents
* copied from the namespace of the passed in task structure.
*/
@@ -58030,7 +58551,7 @@ index a45ba4f..b4c7d07 100644
struct user_namespace *user_ns, struct fs_struct *fs)
{
struct mnt_namespace *new_ns;
-@@ -2500,8 +2519,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
+@@ -2549,8 +2568,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
}
EXPORT_SYMBOL(mount_subtree);
@@ -58041,7 +58562,7 @@ index a45ba4f..b4c7d07 100644
{
int ret;
char *kernel_type;
-@@ -2614,6 +2633,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
+@@ -2663,6 +2682,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
if (error)
goto out2;
@@ -58053,8 +58574,8 @@ index a45ba4f..b4c7d07 100644
get_fs_root(current->fs, &root);
old_mp = lock_mount(&old);
error = PTR_ERR(old_mp);
-@@ -2864,7 +2888,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns)
- !nsown_capable(CAP_SYS_ADMIN))
+@@ -2932,7 +2956,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns)
+ !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
return -EPERM;
- if (fs->users != 1)
@@ -58076,10 +58597,10 @@ index f4ccfe6..a5cf064 100644
static struct callback_op callback_ops[];
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
-index 941246f..17d8724 100644
+index eda8879..bfc6837 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
-@@ -1138,16 +1138,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
+@@ -1150,16 +1150,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
}
@@ -58100,38 +58621,14 @@ index 941246f..17d8724 100644
void nfs_fattr_init(struct nfs_fattr *fattr)
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index e22862f..92d66eb 100644
+index cc14cbb..6021bb6 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
-@@ -154,6 +154,19 @@ struct rpc_cred *nfs4_get_machine_cred_locked(struct nfs_client *clp)
- return cred;
- }
-
-+static void nfs4_root_machine_cred(struct nfs_client *clp)
-+{
-+ struct rpc_cred *cred, *new;
-+
-+ new = rpc_lookup_machine_cred(NULL);
-+ spin_lock(&clp->cl_lock);
-+ cred = clp->cl_machine_cred;
-+ clp->cl_machine_cred = new;
-+ spin_unlock(&clp->cl_lock);
-+ if (cred != NULL)
-+ put_rpccred(cred);
-+}
-+
- static struct rpc_cred *
- nfs4_get_renew_cred_server_locked(struct nfs_server *server)
- {
-@@ -1896,10 +1909,19 @@ again:
- __func__, status);
- goto again;
- case -EACCES:
-- if (i++)
-+ if (i++ == 0) {
-+ nfs4_root_machine_cred(clp);
-+ goto again;
-+ }
+@@ -1881,10 +1881,15 @@ again:
+ nfs4_root_machine_cred(clp);
+ goto again;
+ }
+- if (i > 2)
+ if (clnt->cl_auth->au_flavor == RPC_AUTH_UNIX)
break;
case -NFS4ERR_CLID_INUSE:
@@ -58158,7 +58655,7 @@ index 419572f..5414a23 100644
static struct nfsd4_operation nfsd4_ops[];
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
-index c2a4701..fd80e29 100644
+index d9454fe..855c9d1 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1498,7 +1498,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
@@ -58189,10 +58686,10 @@ index c2a4701..fd80e29 100644
};
diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
-index e76244e..9fe8f2f1 100644
+index 9186c7c..3fdde3e 100644
--- a/fs/nfsd/nfscache.c
+++ b/fs/nfsd/nfscache.c
-@@ -526,14 +526,17 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
+@@ -540,14 +540,17 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
{
struct svc_cacherep *rp = rqstp->rq_cacherep;
struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
@@ -58378,7 +58875,7 @@ index 9e38daf..5727cae 100644
"inode 0x%lx or driver bug.", vdir->i_ino);
goto err_out;
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
-index c5670b8..d590213 100644
+index ea4ba9d..1e13d34 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -1282,7 +1282,7 @@ static inline size_t ntfs_copy_from_user(struct page **pages,
@@ -58422,7 +58919,7 @@ index 82650d5..db37dcf 100644
if (bh_primary)
brelse(bh_primary);
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
-index aebeacd..0dcdd26 100644
+index cd5496b..26a1055 100644
--- a/fs/ocfs2/localalloc.c
+++ b/fs/ocfs2/localalloc.c
@@ -1278,7 +1278,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
@@ -58514,7 +59011,7 @@ index 5397c07..54afc55 100644
}
}
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
-index 121da2d..a0232bc 100644
+index d4e81e4..ad89f5f 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -300,11 +300,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
@@ -58552,7 +59049,7 @@ index 121da2d..a0232bc 100644
/* Copy the blockcheck stats from the superblock probe */
osb->osb_ecc_stats = *stats;
diff --git a/fs/open.c b/fs/open.c
-index 7931f76..7b03f3b 100644
+index d420331..2dbb3fd 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -32,6 +32,8 @@
@@ -58646,7 +59143,7 @@ index 7931f76..7b03f3b 100644
error = security_path_chmod(path, mode);
if (error)
goto out_unlock;
-@@ -531,6 +565,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
+@@ -530,6 +564,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
uid = make_kuid(current_user_ns(), user);
gid = make_kgid(current_user_ns(), group);
@@ -58656,7 +59153,7 @@ index 7931f76..7b03f3b 100644
newattrs.ia_valid = ATTR_CTIME;
if (user != (uid_t) -1) {
if (!uid_valid(uid))
-@@ -960,6 +997,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
+@@ -974,6 +1011,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
} else {
fsnotify_open(f);
fd_install(fd, f);
@@ -59508,7 +60005,7 @@ index b143471..bb105e5 100644
}
module_init(proc_devices_init);
diff --git a/fs/proc/fd.c b/fs/proc/fd.c
-index 0ff80f9..a1d7500 100644
+index 985ea88..d118a0a 100644
--- a/fs/proc/fd.c
+++ b/fs/proc/fd.c
@@ -25,7 +25,8 @@ static int seq_show(struct seq_file *m, void *v)
@@ -59530,7 +60027,7 @@ index 0ff80f9..a1d7500 100644
- if (rv == 0)
- return 0;
+
- if (task_pid(current) == proc_pid(inode))
+ if (task_tgid(current) == proc_pid(inode))
rv = 0;
+
+ task = get_proc_task(inode);
@@ -59546,7 +60043,7 @@ index 0ff80f9..a1d7500 100644
}
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
-index 073aea6..0630370 100644
+index 8eaa1ba..cc6ff42 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -23,11 +23,17 @@
@@ -59581,7 +60078,7 @@ index 073aea6..0630370 100644
}
static struct kmem_cache * proc_inode_cachep;
-@@ -385,7 +398,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
+@@ -405,7 +418,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
if (de->mode) {
inode->i_mode = de->mode;
inode->i_uid = de->uid;
@@ -59670,10 +60167,10 @@ index 06ea155..9a798c7 100644
return -EPERM;
if (kcore_need_update)
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
-index 5aa847a..f77c8d4 100644
+index 59d85d6..ac6fc05 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
-@@ -159,7 +159,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
+@@ -153,7 +153,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
vmi.used >> 10,
vmi.largest_chunk >> 10
#ifdef CONFIG_MEMORY_FAILURE
@@ -59726,14 +60223,17 @@ index 4677bb7..408e936 100644
rcu_read_lock();
task = pid_task(proc_pid(dir), PIDTYPE_PID);
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index 7129046..130793a 100644
+index 7129046..6914844 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
-@@ -11,13 +11,18 @@
+@@ -11,13 +11,21 @@
#include <linux/namei.h>
#include <linux/mm.h>
#include <linux/module.h>
+#include <linux/nsproxy.h>
++#ifdef CONFIG_GRKERNSEC
++#include <net/net_namespace.h>
++#endif
#include "internal.h"
+extern int gr_handle_chroot_sysctl(const int op);
@@ -59750,7 +60250,7 @@ index 7129046..130793a 100644
void proc_sys_poll_notify(struct ctl_table_poll *poll)
{
-@@ -467,6 +472,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
+@@ -467,6 +475,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
err = NULL;
d_set_d_op(dentry, &proc_sys_dentry_operations);
@@ -59760,7 +60260,7 @@ index 7129046..130793a 100644
d_add(dentry, inode);
out:
-@@ -482,6 +490,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -482,6 +493,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
struct inode *inode = file_inode(filp);
struct ctl_table_header *head = grab_header(inode);
struct ctl_table *table = PROC_I(inode)->sysctl_entry;
@@ -59768,7 +60268,7 @@ index 7129046..130793a 100644
ssize_t error;
size_t res;
-@@ -493,7 +502,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -493,7 +505,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
* and won't be until we finish.
*/
error = -EPERM;
@@ -59777,7 +60277,7 @@ index 7129046..130793a 100644
goto out;
/* if that can happen at all, it should be -EINVAL, not -EISDIR */
-@@ -501,6 +510,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
+@@ -501,6 +513,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
if (!table->proc_handler)
goto out;
@@ -59797,7 +60297,7 @@ index 7129046..130793a 100644
+ if (current->nsproxy->net_ns != table->extra2) {
+ if (!capable(CAP_SYS_ADMIN))
+ goto out;
-+ } else if (!nsown_capable(CAP_NET_ADMIN))
++ } else if (!ns_capable(current->nsproxy->net_ns->user_ns, CAP_NET_ADMIN))
+ goto out;
+ }
+#endif
@@ -59805,7 +60305,7 @@ index 7129046..130793a 100644
/* careful: calling conventions are nasty here */
res = count;
error = table->proc_handler(table, write, buf, &res, ppos);
-@@ -598,6 +628,9 @@ static bool proc_sys_fill_cache(struct file *file,
+@@ -598,6 +631,9 @@ static bool proc_sys_fill_cache(struct file *file,
return false;
} else {
d_set_d_op(child, &proc_sys_dentry_operations);
@@ -59815,7 +60315,7 @@ index 7129046..130793a 100644
d_add(child, inode);
}
} else {
-@@ -641,6 +674,9 @@ static int scan(struct ctl_table_header *head, ctl_table *table,
+@@ -641,6 +677,9 @@ static int scan(struct ctl_table_header *head, ctl_table *table,
if ((*pos)++ < ctx->pos)
return true;
@@ -59825,7 +60325,7 @@ index 7129046..130793a 100644
if (unlikely(S_ISLNK(table->mode)))
res = proc_sys_link_fill_cache(file, ctx, head, table);
else
-@@ -734,6 +770,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
+@@ -734,6 +773,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
if (IS_ERR(head))
return PTR_ERR(head);
@@ -59835,7 +60335,7 @@ index 7129046..130793a 100644
generic_fillattr(inode, stat);
if (table)
stat->mode = (stat->mode & S_IFMT) | table->mode;
-@@ -756,13 +795,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
+@@ -756,13 +798,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
.llseek = generic_file_llseek,
};
@@ -59851,7 +60351,7 @@ index 7129046..130793a 100644
.lookup = proc_sys_lookup,
.permission = proc_sys_permission,
.setattr = proc_sys_setattr,
-@@ -839,7 +878,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
+@@ -839,7 +881,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
static struct ctl_dir *new_dir(struct ctl_table_set *set,
const char *name, int namelen)
{
@@ -59860,7 +60360,7 @@ index 7129046..130793a 100644
struct ctl_dir *new;
struct ctl_node *node;
char *new_name;
-@@ -851,7 +890,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
+@@ -851,7 +893,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
return NULL;
node = (struct ctl_node *)(new + 1);
@@ -59869,7 +60369,7 @@ index 7129046..130793a 100644
new_name = (char *)(table + 2);
memcpy(new_name, name, namelen);
new_name[namelen] = '\0';
-@@ -1020,7 +1059,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
+@@ -1020,7 +1062,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
struct ctl_table_root *link_root)
{
@@ -59879,7 +60379,7 @@ index 7129046..130793a 100644
struct ctl_table_header *links;
struct ctl_node *node;
char *link_name;
-@@ -1043,7 +1083,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
+@@ -1043,7 +1086,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
return NULL;
node = (struct ctl_node *)(links + 1);
@@ -59888,7 +60388,7 @@ index 7129046..130793a 100644
link_name = (char *)&link_table[nr_entries + 1];
for (link = link_table, entry = table; entry->procname; link++, entry++) {
-@@ -1291,8 +1331,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
+@@ -1291,8 +1334,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
struct ctl_table_header ***subheader, struct ctl_table_set *set,
struct ctl_table *table)
{
@@ -59899,7 +60399,7 @@ index 7129046..130793a 100644
int nr_files = 0;
int nr_dirs = 0;
int err = -ENOMEM;
-@@ -1304,10 +1344,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
+@@ -1304,10 +1347,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
nr_files++;
}
@@ -59911,7 +60411,7 @@ index 7129046..130793a 100644
files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1),
GFP_KERNEL);
if (!files)
-@@ -1325,7 +1364,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
+@@ -1325,7 +1367,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
/* Register everything except a directory full of subdirectories */
if (nr_files || !nr_dirs) {
struct ctl_table_header *header;
@@ -59921,10 +60421,10 @@ index 7129046..130793a 100644
kfree(ctl_table_arg);
goto out;
diff --git a/fs/proc/root.c b/fs/proc/root.c
-index 0e0e83c..005ba6a 100644
+index 87dbcbe..55e1b4d 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
-@@ -183,7 +183,15 @@ void __init proc_root_init(void)
+@@ -186,7 +186,15 @@ void __init proc_root_init(void)
#ifdef CONFIG_PROC_DEVICETREE
proc_device_tree_init();
#endif
@@ -59954,7 +60454,7 @@ index 6b6a993..807cccc 100644
kfree(s);
}
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 7a9e255..03763e3 100644
+index 390bdab..83c1e8a 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -12,12 +12,19 @@
@@ -60121,7 +60621,7 @@ index 7a9e255..03763e3 100644
mss.resident >> 10,
(unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
mss.shared_clean >> 10,
-@@ -1362,6 +1413,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1390,6 +1441,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
int n;
char buffer[50];
@@ -60135,9 +60635,9 @@ index 7a9e255..03763e3 100644
if (!mm)
return 0;
-@@ -1379,11 +1437,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
- mpol_to_str(buffer, sizeof(buffer), pol);
- mpol_cond_put(pol);
+@@ -1409,11 +1467,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+ if (n < 0)
+ return n;
+#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
+ seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
@@ -60175,10 +60675,10 @@ index 56123a6..5a2f6ec 100644
pid_t tid = vm_is_stack(priv->task, vma, is_pid);
diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
-index a1a16eb..6be46ed 100644
+index 9100d69..f1f9fc9 100644
--- a/fs/proc/vmcore.c
+++ b/fs/proc/vmcore.c
-@@ -104,9 +104,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
+@@ -105,9 +105,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
nr_bytes = count;
/* If pfn is not ram, return zeros for sparse dump files */
@@ -60195,12 +60695,12 @@ index a1a16eb..6be46ed 100644
tmp = copy_oldmem_page(pfn, buf, nr_bytes,
offset, userbuf);
if (tmp < 0)
-@@ -178,7 +182,7 @@ static ssize_t read_vmcore(struct file *file, char __user *buffer,
+@@ -233,7 +237,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
if (*fpos < m->offset + m->size) {
tsz = min_t(size_t, m->offset + m->size - *fpos, buflen);
start = m->paddr + *fpos - m->offset;
-- tmp = read_from_oldmem(buffer, tsz, &start, 1);
-+ tmp = read_from_oldmem((char __force_kernel *)buffer, tsz, &start, 1);
+- tmp = read_from_oldmem(buffer, tsz, &start, userbuf);
++ tmp = read_from_oldmem((char __force_kernel *)buffer, tsz, &start, userbuf);
if (tmp < 0)
return tmp;
buflen -= tsz;
@@ -60249,10 +60749,10 @@ index 16e8abb..2dcf914 100644
if (!msg_head) {
printk(KERN_ERR
diff --git a/fs/read_write.c b/fs/read_write.c
-index 122a384..0b7ecf2 100644
+index e3cd280..a378473 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
-@@ -440,7 +440,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
+@@ -438,7 +438,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
old_fs = get_fs();
set_fs(get_ds());
@@ -60381,7 +60881,7 @@ index a958444..42b2323 100644
SF(s_do_balance), SF(s_unneeded_left_neighbor),
SF(s_good_search_by_key_reada), SF(s_bmaps),
diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
-index 3df5ce6..8c0f4b0 100644
+index f8adaee..0eeeeca 100644
--- a/fs/reiserfs/reiserfs.h
+++ b/fs/reiserfs/reiserfs.h
@@ -453,7 +453,7 @@ struct reiserfs_sb_info {
@@ -60393,7 +60893,7 @@ index 3df5ce6..8c0f4b0 100644
// tree gets re-balanced
unsigned long s_properties; /* File system properties. Currently holds
on-disk FS format */
-@@ -1978,7 +1978,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
+@@ -1982,7 +1982,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
#define REISERFS_USER_MEM 1 /* reiserfs user memory mode */
#define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
@@ -60423,7 +60923,7 @@ index dfd5cb1..1754d57 100644
return -EINVAL;
diff --git a/fs/seq_file.c b/fs/seq_file.c
-index a290157..5fa85e4 100644
+index a290157..ec3211a 100644
--- a/fs/seq_file.c
+++ b/fs/seq_file.c
@@ -10,6 +10,7 @@
@@ -60462,6 +60962,15 @@ index a290157..5fa85e4 100644
return !m->buf ? -ENOMEM : -EAGAIN;
}
+@@ -152,7 +156,7 @@ Eoverflow:
+ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
+ {
+ struct seq_file *m = file->private_data;
+- size_t copied = 0;
++ ssize_t copied = 0;
+ loff_t pos;
+ size_t n;
+ void *p;
@@ -191,7 +195,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
/* grab buffer if we didn't have one */
@@ -60658,7 +61167,7 @@ index 3b7ee65..87fc2e4 100644
pipe_unlock(ipipe);
diff --git a/fs/stat.c b/fs/stat.c
-index 04ce1ac..a13dd1e 100644
+index d0ea7ef..f463f9d 100644
--- a/fs/stat.c
+++ b/fs/stat.c
@@ -28,8 +28,13 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
@@ -60695,10 +61204,10 @@ index 04ce1ac..a13dd1e 100644
generic_fillattr(inode, stat);
return 0;
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c
-index 15c68f9..36a8b3e 100644
+index c590cab..6dfd6fc 100644
--- a/fs/sysfs/bin.c
+++ b/fs/sysfs/bin.c
-@@ -235,13 +235,13 @@ static int bin_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+@@ -234,13 +234,13 @@ static int bin_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
return ret;
}
@@ -60716,7 +61225,7 @@ index 15c68f9..36a8b3e 100644
if (!bb->vm_ops)
return -EINVAL;
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
-index e068e74..92edeb8 100644
+index 4d83ced..049dc45 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -40,7 +40,7 @@ static DEFINE_IDA(sysfs_ino_ida);
@@ -60728,7 +61237,7 @@ index e068e74..92edeb8 100644
{
unsigned long hash = init_name_hash();
unsigned int len = strlen(name);
-@@ -679,6 +679,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
+@@ -675,6 +675,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
struct sysfs_dirent *sd;
int rc;
@@ -60748,7 +61257,7 @@ index e068e74..92edeb8 100644
sd = sysfs_new_dirent(name, mode, SYSFS_DIR);
if (!sd)
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
-index d2bb7ed..fe8c331 100644
+index 15ef5eb..e474372 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -37,7 +37,7 @@ static DEFINE_SPINLOCK(sysfs_open_dirent_lock);
@@ -60760,7 +61269,7 @@ index d2bb7ed..fe8c331 100644
wait_queue_head_t poll;
struct list_head buffers; /* goes through sysfs_buffer.list */
};
-@@ -81,7 +81,7 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer
+@@ -81,7 +81,7 @@ static int fill_read_buffer(struct dentry *dentry, struct sysfs_buffer *buffer)
if (!sysfs_get_active(attr_sd))
return -ENODEV;
@@ -60769,7 +61278,7 @@ index d2bb7ed..fe8c331 100644
count = ops->show(kobj, attr_sd->s_attr.attr, buffer->page);
sysfs_put_active(attr_sd);
-@@ -287,7 +287,7 @@ static int sysfs_get_open_dirent(struct sysfs_dirent *sd,
+@@ -284,7 +284,7 @@ static int sysfs_get_open_dirent(struct sysfs_dirent *sd,
return -ENOMEM;
atomic_set(&new_od->refcnt, 0);
@@ -60778,7 +61287,7 @@ index d2bb7ed..fe8c331 100644
init_waitqueue_head(&new_od->poll);
INIT_LIST_HEAD(&new_od->buffers);
goto retry;
-@@ -432,7 +432,7 @@ static unsigned int sysfs_poll(struct file *filp, poll_table *wait)
+@@ -430,7 +430,7 @@ static unsigned int sysfs_poll(struct file *filp, poll_table *wait)
sysfs_put_active(attr_sd);
@@ -60787,7 +61296,7 @@ index d2bb7ed..fe8c331 100644
goto trigger;
return DEFAULT_POLLMASK;
-@@ -452,7 +452,7 @@ void sysfs_notify_dirent(struct sysfs_dirent *sd)
+@@ -450,7 +450,7 @@ void sysfs_notify_dirent(struct sysfs_dirent *sd)
if (!WARN_ON(sysfs_type(sd) != SYSFS_KOBJ_ATTR)) {
od = sd->s_attr.open;
if (od) {
@@ -60797,12 +61306,12 @@ index d2bb7ed..fe8c331 100644
}
}
diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
-index 8c940df..25b733e 100644
+index 2dd4507..62a215a 100644
--- a/fs/sysfs/symlink.c
+++ b/fs/sysfs/symlink.c
-@@ -305,7 +305,7 @@ static void *sysfs_follow_link(struct dentry *dentry, struct nameidata *nd)
-
- static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
+@@ -308,7 +308,7 @@ static void *sysfs_follow_link(struct dentry *dentry, struct nameidata *nd)
+ static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd,
+ void *cookie)
{
- char *page = nd_get_link(nd);
+ const char *page = nd_get_link(nd);
@@ -61003,10 +61512,10 @@ index 9fbea87..6b19972 100644
struct posix_acl *acl;
struct posix_acl_entry *acl_e;
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
-index 05c698c..6b918af 100644
+index f47e65c..e7125d9 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
-@@ -765,7 +765,7 @@ xfs_bmap_validate_ret(
+@@ -586,7 +586,7 @@ xfs_bmap_validate_ret(
#else
#define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
@@ -61015,26 +61524,26 @@ index 05c698c..6b918af 100644
#endif /* DEBUG */
/*
-diff --git a/fs/xfs/xfs_dir2_sf.c b/fs/xfs/xfs_dir2_sf.c
-index 97676a3..399a75d 100644
---- a/fs/xfs/xfs_dir2_sf.c
-+++ b/fs/xfs/xfs_dir2_sf.c
-@@ -848,7 +848,12 @@ xfs_dir2_sf_getdents(
-
- ino = xfs_dir2_sfe_get_ino(sfp, sfep);
+diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
+index 8f84153..7ce60d0 100644
+--- a/fs/xfs/xfs_dir2_readdir.c
++++ b/fs/xfs/xfs_dir2_readdir.c
+@@ -160,7 +160,12 @@ xfs_dir2_sf_getdents(
+ ino = xfs_dir3_sfe_get_ino(mp, sfp, sfep);
+ filetype = xfs_dir3_sfe_get_ftype(mp, sfp, sfep);
ctx->pos = off & 0x7fffffff;
-- if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen,
+- if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
+ if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
+ char name[sfep->namelen];
+ memcpy(name, sfep->name, sfep->namelen);
-+ if (!dir_emit(ctx, name, sfep->namelen, ino, DT_UNKNOWN))
++ if (!dir_emit(ctx, name, sfep->namelen, ino, xfs_dir3_get_dtype(mp, filetype)))
+ return 0;
-+ } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen,
- ino, DT_UNKNOWN))
++ } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
+ xfs_dir3_get_dtype(mp, filetype)))
return 0;
- sfep = xfs_dir2_sf_nextentry(sfp, sfep);
+ sfep = xfs_dir3_sf_nextentry(mp, sfp, sfep);
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
-index 6e2bca5..6ce80d3 100644
+index 668e8f4..9d38104 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -127,7 +127,7 @@ xfs_find_handle(
@@ -61047,10 +61556,10 @@ index 6e2bca5..6ce80d3 100644
goto out_put;
diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
-index 96dda62..d6c6a52 100644
+index 2b8952d..a60c6be 100644
--- a/fs/xfs/xfs_iops.c
+++ b/fs/xfs/xfs_iops.c
-@@ -395,7 +395,7 @@ xfs_vn_put_link(
+@@ -401,7 +401,7 @@ xfs_vn_put_link(
struct nameidata *nd,
void *p)
{
@@ -72419,10 +72928,10 @@ index 810431d..0ec4804f 100644
* (puds are folded into pgds so this doesn't get actually called,
* but the define is needed for a generic inline function.)
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index 0807ddf..cd67747 100644
+index f330d28..83ce28f 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
-@@ -741,6 +741,22 @@ static inline pmd_t pmd_mknuma(pmd_t pmd)
+@@ -737,6 +737,22 @@ static inline pmd_t pmd_mknuma(pmd_t pmd)
}
#endif /* CONFIG_NUMA_BALANCING */
@@ -72471,10 +72980,10 @@ index dc1269c..48a4f51 100644
+
#endif /* __ASM_GENERIC_UACCESS_H */
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
-index 69732d2..cbe16d9 100644
+index 83e2c31..eeb4a04 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
-@@ -227,6 +227,7 @@
+@@ -232,6 +232,7 @@
.rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
VMLINUX_SYMBOL(__start_rodata) = .; \
*(.rodata) *(.rodata.*) \
@@ -72482,7 +72991,7 @@ index 69732d2..cbe16d9 100644
*(__vermagic) /* Kernel version magic */ \
. = ALIGN(8); \
VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
-@@ -710,17 +711,18 @@
+@@ -715,17 +716,18 @@
* section in the linker script will go there too. @phdr should have
* a leading colon.
*
@@ -72519,18 +73028,18 @@ index 418d270..bfd2794 100644
struct crypto_instance {
struct crypto_alg alg;
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index 12083dc..39740ec 100644
+index b46fb45..b30d6d5 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
-@@ -69,6 +69,7 @@
+@@ -66,6 +66,7 @@
#include <linux/workqueue.h>
#include <linux/poll.h>
#include <asm/pgalloc.h>
+#include <asm/local.h>
#include <drm/drm.h>
#include <drm/drm_sarea.h>
-
-@@ -293,10 +294,12 @@ do { \
+ #include <drm/drm_vma_manager.h>
+@@ -277,10 +278,12 @@ do { \
* \param cmd command.
* \param arg argument.
*/
@@ -72545,7 +73054,7 @@ index 12083dc..39740ec 100644
unsigned long arg);
#define DRM_IOCTL_NR(n) _IOC_NR(n)
-@@ -311,10 +314,10 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
+@@ -296,10 +299,10 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
struct drm_ioctl_desc {
unsigned int cmd;
int flags;
@@ -72558,7 +73067,7 @@ index 12083dc..39740ec 100644
/**
* Creates a driver or general drm_ioctl_desc array entry for the given
-@@ -1015,7 +1018,7 @@ struct drm_info_list {
+@@ -1027,7 +1030,7 @@ struct drm_info_list {
int (*show)(struct seq_file*, void*); /** show callback */
u32 driver_features; /**< Required driver features for this entry */
void *data;
@@ -72567,7 +73076,7 @@ index 12083dc..39740ec 100644
/**
* debugfs node structure. This structure represents a debugfs file.
-@@ -1088,7 +1091,7 @@ struct drm_device {
+@@ -1098,7 +1101,7 @@ struct drm_device {
/** \name Usage Counters */
/*@{ */
@@ -72576,7 +73085,7 @@ index 12083dc..39740ec 100644
atomic_t ioctl_count; /**< Outstanding IOCTLs pending */
atomic_t vma_count; /**< Outstanding vma areas open */
int buf_use; /**< Buffers in use -- cannot alloc */
-@@ -1099,7 +1102,7 @@ struct drm_device {
+@@ -1109,7 +1112,7 @@ struct drm_device {
/*@{ */
unsigned long counters;
enum drm_stat_type types[15];
@@ -72598,6 +73107,19 @@ index f43d556..94d9343 100644
/**
* drm_connector_helper_funcs - helper operations for connectors
+diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
+index 8a10f5c..5de7f5c 100644
+--- a/include/drm/i915_pciids.h
++++ b/include/drm/i915_pciids.h
+@@ -37,7 +37,7 @@
+ */
+ #define INTEL_VGA_DEVICE(id, info) { \
+ 0x8086, id, \
+- ~0, ~0, \
++ PCI_ANY_ID, PCI_ANY_ID, \
+ 0x030000, 0xff0000, \
+ (unsigned long) info }
+
diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
index 72dcbe8..8db58d7 100644
--- a/include/drm/ttm/ttm_memory.h
@@ -72646,8 +73168,21 @@ index c1da539..1dcec55 100644
struct atmphy_ops {
int (*start)(struct atm_dev *dev);
+diff --git a/include/linux/audit.h b/include/linux/audit.h
+index 729a4d1..9b304ae 100644
+--- a/include/linux/audit.h
++++ b/include/linux/audit.h
+@@ -193,7 +193,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,
+ struct timespec *t, unsigned int *serial);
+-extern int audit_set_loginuid(kuid_t loginuid);
++extern int __intentional_overflow(-1) audit_set_loginuid(kuid_t loginuid);
+
+ static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
+ {
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
-index 70cf138..0418ee2 100644
+index e8112ae..05b8e7f 100644
--- a/include/linux/binfmts.h
+++ b/include/linux/binfmts.h
@@ -73,8 +73,10 @@ struct linux_binfmt {
@@ -72662,11 +73197,33 @@ index 70cf138..0418ee2 100644
extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
+diff --git a/include/linux/bitops.h b/include/linux/bitops.h
+index a3b6b82..cd8f69c 100644
+--- a/include/linux/bitops.h
++++ b/include/linux/bitops.h
+@@ -91,7 +91,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
+ * @word: value to rotate
+ * @shift: bits to roll
+ */
+-static inline __u32 rol32(__u32 word, unsigned int shift)
++static inline __u32 __intentional_overflow(-1) rol32(__u32 word, unsigned int shift)
+ {
+ return (word << shift) | (word >> (32 - shift));
+ }
+@@ -101,7 +101,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
+ * @word: value to rotate
+ * @shift: bits to roll
+ */
+-static inline __u32 ror32(__u32 word, unsigned int shift)
++static inline __u32 __intentional_overflow(-1) ror32(__u32 word, unsigned int shift)
+ {
+ return (word >> shift) | (word << (32 - shift));
+ }
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index 2fdb4a4..54aad7e 100644
+index 0e6f765..885bb2b 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
-@@ -1526,7 +1526,7 @@ struct block_device_operations {
+@@ -1537,7 +1537,7 @@ struct block_device_operations {
/* this callback is with swap_lock and sometimes page table lock held */
void (*swap_slot_free_notify) (struct block_device *, unsigned long);
struct module *owner;
@@ -72708,11 +73265,11 @@ index 4c57065..40346da 100644
#define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
#endif
diff --git a/include/linux/capability.h b/include/linux/capability.h
-index d9a4f7f4..19f77d6 100644
+index a6ee1f9..e1ca49d 100644
--- a/include/linux/capability.h
+++ b/include/linux/capability.h
-@@ -213,8 +213,13 @@ extern bool ns_capable(struct user_namespace *ns, int cap);
- extern bool nsown_capable(int cap);
+@@ -212,8 +212,13 @@ extern bool capable(int cap);
+ extern bool ns_capable(struct user_namespace *ns, int cap);
extern bool inode_capable(const struct inode *inode, int cap);
extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
+extern bool capable_nolog(int cap);
@@ -72751,10 +73308,10 @@ index 4ce9056..86caac6 100644
extern struct cleancache_ops *
cleancache_register_ops(struct cleancache_ops *ops);
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
-index 1ec14a7..d0654a2 100644
+index 73bdb69..d66d47a 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
-@@ -132,6 +132,7 @@ struct clk_ops {
+@@ -141,6 +141,7 @@ struct clk_ops {
unsigned long);
void (*init)(struct clk_hw *hw);
};
@@ -72763,10 +73320,10 @@ index 1ec14a7..d0654a2 100644
/**
* struct clk_init_data - holds init data that's common to all clocks and is
diff --git a/include/linux/compat.h b/include/linux/compat.h
-index ec1aee4..1077986 100644
+index 345da00..b6eff26 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
-@@ -312,7 +312,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
+@@ -313,7 +313,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
compat_size_t __user *len_ptr);
asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
@@ -72775,7 +73332,7 @@ index ec1aee4..1077986 100644
asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
compat_ssize_t msgsz, int msgflg);
-@@ -419,7 +419,7 @@ extern int compat_ptrace_request(struct task_struct *child,
+@@ -420,7 +420,7 @@ extern int compat_ptrace_request(struct task_struct *child,
extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
compat_ulong_t addr, compat_ulong_t data);
asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
@@ -72948,19 +73505,23 @@ index 92669cd..1771a15 100644
/* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */
#ifdef CONFIG_KPROBES
diff --git a/include/linux/completion.h b/include/linux/completion.h
-index 3cd574d..adce5fa 100644
+index 3cd574d..240dcb0 100644
--- a/include/linux/completion.h
+++ b/include/linux/completion.h
-@@ -79,15 +79,15 @@ static inline void init_completion(struct completion *x)
+@@ -78,16 +78,16 @@ static inline void init_completion(struct completion *x)
+
extern void wait_for_completion(struct completion *);
extern void wait_for_completion_io(struct completion *);
- extern int wait_for_completion_interruptible(struct completion *x);
+-extern int wait_for_completion_interruptible(struct completion *x);
-extern int wait_for_completion_killable(struct completion *x);
++extern int wait_for_completion_interruptible(struct completion *x) __intentional_overflow(-1);
+extern int wait_for_completion_killable(struct completion *x) __intentional_overflow(-1);
extern unsigned long wait_for_completion_timeout(struct completion *x,
- unsigned long timeout);
+- unsigned long timeout);
++ unsigned long timeout) __intentional_overflow(-1);
extern unsigned long wait_for_completion_io_timeout(struct completion *x,
- unsigned long timeout);
+- unsigned long timeout);
++ unsigned long timeout) __intentional_overflow(-1);
extern long wait_for_completion_interruptible_timeout(
- struct completion *x, unsigned long timeout);
+ struct completion *x, unsigned long timeout) __intentional_overflow(-1);
@@ -72984,19 +73545,10 @@ index 34025df..d94bbbc 100644
/*
* Users often need to create attribute structures for their configurable
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
-index 90d5a15..950cb80 100644
+index fcabc42..cba5d93 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
-@@ -266,7 +266,7 @@ struct cpufreq_driver {
- int (*suspend) (struct cpufreq_policy *policy);
- int (*resume) (struct cpufreq_policy *policy);
- struct freq_attr **attr;
--};
-+} __do_const;
-
- /* flags */
-
-@@ -325,6 +325,7 @@ struct global_attr {
+@@ -167,6 +167,7 @@ struct global_attr {
ssize_t (*store)(struct kobject *a, struct attribute *b,
const char *c, size_t count);
};
@@ -73004,11 +73556,20 @@ index 90d5a15..950cb80 100644
#define define_one_global_ro(_name) \
static struct global_attr _name = \
+@@ -208,7 +209,7 @@ struct cpufreq_driver {
+ int (*suspend) (struct cpufreq_policy *policy);
+ int (*resume) (struct cpufreq_policy *policy);
+ struct freq_attr **attr;
+-};
++} __do_const;
+
+ /* flags */
+ #define CPUFREQ_STICKY 0x01 /* the driver isn't removed even if
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
-index 0bc4b74..973b368 100644
+index 781addc..d1e1fe6 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
-@@ -52,7 +52,8 @@ struct cpuidle_state {
+@@ -50,7 +50,8 @@ struct cpuidle_state {
int index);
int (*enter_dead) (struct cpuidle_device *dev, int index);
@@ -73018,7 +73579,7 @@ index 0bc4b74..973b368 100644
/* Idle State Flags */
#define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */
-@@ -191,7 +192,7 @@ struct cpuidle_governor {
+@@ -192,7 +193,7 @@ struct cpuidle_governor {
void (*reflect) (struct cpuidle_device *dev, int index);
struct module *owner;
@@ -73162,10 +73723,10 @@ index 5f1ab92..39c35ae 100644
/**
* struct devfreq - Device devfreq structure
diff --git a/include/linux/device.h b/include/linux/device.h
-index 22b546a..a573dc9 100644
+index 2a9d6ed..d14551e3 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
-@@ -305,7 +305,7 @@ struct subsys_interface {
+@@ -313,7 +313,7 @@ struct subsys_interface {
struct list_head node;
int (*add_dev)(struct device *dev, struct subsys_interface *sif);
int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
@@ -73174,7 +73735,7 @@ index 22b546a..a573dc9 100644
int subsys_interface_register(struct subsys_interface *sif);
void subsys_interface_unregister(struct subsys_interface *sif);
-@@ -493,7 +493,7 @@ struct device_type {
+@@ -501,7 +501,7 @@ struct device_type {
void (*release)(struct device *dev);
const struct dev_pm_ops *pm;
@@ -73183,7 +73744,7 @@ index 22b546a..a573dc9 100644
/* interface for exporting device attributes */
struct device_attribute {
-@@ -503,11 +503,12 @@ struct device_attribute {
+@@ -511,11 +511,12 @@ struct device_attribute {
ssize_t (*store)(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count);
};
@@ -73198,7 +73759,7 @@ index 22b546a..a573dc9 100644
ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
char *buf);
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
-index 94af418..b1ca7a2 100644
+index 3a8d0a2..c762be2 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -54,7 +54,7 @@ struct dma_map_ops {
@@ -73211,10 +73772,10 @@ index 94af418..b1ca7a2 100644
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
-index cb286b1..923d066 100644
+index 0bc7275..4ccbf11 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
-@@ -1030,9 +1030,9 @@ struct dma_pinned_list {
+@@ -1078,9 +1078,9 @@ struct dma_pinned_list {
struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
@@ -73259,7 +73820,7 @@ index 40a3c0e..4c45a38 100644
#endif
diff --git a/include/linux/err.h b/include/linux/err.h
-index 221fcfb..f29e5e2 100644
+index 15f92e0..e825a8e 100644
--- a/include/linux/err.h
+++ b/include/linux/err.h
@@ -19,12 +19,12 @@
@@ -73330,10 +73891,10 @@ index 8293262..2b3b8bd 100644
extern bool frontswap_enabled;
extern struct frontswap_ops *
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 9818747..788bfbd 100644
+index 3f40547..46f76eb 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1554,7 +1554,8 @@ struct file_operations {
+@@ -1552,7 +1552,8 @@ struct file_operations {
long (*fallocate)(struct file *file, int mode, loff_t offset,
loff_t len);
int (*show_fdinfo)(struct seq_file *m, struct file *f);
@@ -73343,7 +73904,7 @@ index 9818747..788bfbd 100644
struct inode_operations {
struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
-@@ -2740,4 +2741,14 @@ static inline bool dir_relax(struct inode *inode)
+@@ -2745,4 +2746,14 @@ static inline bool dir_relax(struct inode *inode)
return !IS_DEADDIR(inode);
}
@@ -73359,7 +73920,7 @@ index 9818747..788bfbd 100644
+
#endif /* _LINUX_FS_H */
diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h
-index 2b93a9a..855d94a 100644
+index 0efc3e6..e0e1e5f 100644
--- a/include/linux/fs_struct.h
+++ b/include/linux/fs_struct.h
@@ -6,7 +6,7 @@
@@ -73372,7 +73933,7 @@ index 2b93a9a..855d94a 100644
seqcount_t seq;
int umask;
diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
-index a9ff9a3..1ba1788 100644
+index 7823e9e..56b6f2f 100644
--- a/include/linux/fscache-cache.h
+++ b/include/linux/fscache-cache.h
@@ -113,7 +113,7 @@ struct fscache_operation {
@@ -73394,7 +73955,7 @@ index a9ff9a3..1ba1788 100644
op->release = release;
INIT_LIST_HEAD(&op->pend_link);
diff --git a/include/linux/fscache.h b/include/linux/fscache.h
-index 7a08623..4c07b0f 100644
+index 19b4645..3b73dfc 100644
--- a/include/linux/fscache.h
+++ b/include/linux/fscache.h
@@ -152,7 +152,7 @@ struct fscache_cookie_def {
@@ -74840,7 +75401,7 @@ index 7fb31da..08b5114 100644
unsigned start1, unsigned end1,
unsigned start2, unsigned end2)
diff --git a/include/linux/hwmon-sysfs.h b/include/linux/hwmon-sysfs.h
-index 1c7b89a..7f52502 100644
+index 1c7b89a..7dda400 100644
--- a/include/linux/hwmon-sysfs.h
+++ b/include/linux/hwmon-sysfs.h
@@ -25,7 +25,8 @@
@@ -74853,17 +75414,18 @@ index 1c7b89a..7f52502 100644
#define to_sensor_dev_attr(_dev_attr) \
container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
-@@ -41,7 +42,7 @@ struct sensor_device_attribute_2 {
+@@ -41,7 +42,8 @@ struct sensor_device_attribute_2 {
struct device_attribute dev_attr;
u8 index;
u8 nr;
-};
+} __do_const;
++typedef struct sensor_device_attribute_2 __no_const sensor_device_attribute_2_no_const;
#define to_sensor_dev_attr_2(_dev_attr) \
container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
-index e988fa9..ff9f17e 100644
+index 2ab11dc..663a3f2 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -366,6 +366,7 @@ struct i2c_algorithm {
@@ -74901,7 +75463,7 @@ index aff7ad8..3942bbd 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 e73f2b7..cc996e0 100644
+index f1c27a71..7d6010e 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -39,9 +39,17 @@
@@ -74958,10 +75520,10 @@ index 5cd0f09..c9f67cc 100644
.files = &init_files, \
.signal = &init_signals, \
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
-index 5fa5afe..ac55b25 100644
+index 5e865b5..71bd258 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
-@@ -430,7 +430,7 @@ enum
+@@ -361,7 +361,7 @@ enum
/* map softirq index to softirq name. update 'softirq_to_name' in
* kernel/softirq.c when adding a new softirq.
*/
@@ -74970,7 +75532,7 @@ index 5fa5afe..ac55b25 100644
/* softirq mask and active fields moved to irq_cpustat_t in
* asm/hardirq.h to get better cache usage. KAO
-@@ -438,12 +438,12 @@ extern char *softirq_to_name[NR_SOFTIRQS];
+@@ -369,12 +369,12 @@ extern char *softirq_to_name[NR_SOFTIRQS];
struct softirq_action
{
@@ -74987,10 +75549,10 @@ index 5fa5afe..ac55b25 100644
extern void __raise_softirq_irqoff(unsigned int nr);
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
-index 3aeb730..2177f39 100644
+index 7ea319e..f9e971d 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
-@@ -113,7 +113,7 @@ struct iommu_ops {
+@@ -129,7 +129,7 @@ struct iommu_ops {
u32 (*domain_get_windows)(struct iommu_domain *domain);
unsigned long pgsize_bitmap;
@@ -75013,7 +75575,7 @@ index 89b7c24..382af74 100644
return res->end - res->start + 1;
}
diff --git a/include/linux/irq.h b/include/linux/irq.h
-index f04d3ba..bcf2cfb 100644
+index 56bb0dc..8ae94d62 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -333,7 +333,8 @@ struct irq_chip {
@@ -75027,7 +75589,7 @@ index f04d3ba..bcf2cfb 100644
/*
* irq_chip specific flags
diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h
-index 3e203eb..3fe68d0 100644
+index 0e5d9ec..46acb3a 100644
--- a/include/linux/irqchip/arm-gic.h
+++ b/include/linux/irqchip/arm-gic.h
@@ -59,9 +59,11 @@
@@ -75043,6 +75605,31 @@ index 3e203eb..3fe68d0 100644
void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *,
u32 offset, struct device_node *);
+diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
+index d235e88..8ccbe74 100644
+--- a/include/linux/jiffies.h
++++ b/include/linux/jiffies.h
+@@ -292,14 +292,14 @@ extern unsigned long preset_lpj;
+ /*
+ * Convert various time units to each other:
+ */
+-extern unsigned int jiffies_to_msecs(const unsigned long j);
+-extern unsigned int jiffies_to_usecs(const unsigned long j);
+-extern unsigned long msecs_to_jiffies(const unsigned int m);
+-extern unsigned long usecs_to_jiffies(const unsigned int u);
+-extern unsigned long timespec_to_jiffies(const struct timespec *value);
++extern unsigned int jiffies_to_msecs(const unsigned long j) __intentional_overflow(-1);
++extern unsigned int jiffies_to_usecs(const unsigned long j) __intentional_overflow(-1);
++extern unsigned long msecs_to_jiffies(const unsigned int m) __intentional_overflow(-1);
++extern unsigned long usecs_to_jiffies(const unsigned int u) __intentional_overflow(-1);
++extern unsigned long timespec_to_jiffies(const struct timespec *value) __intentional_overflow(-1);
+ extern void jiffies_to_timespec(const unsigned long jiffies,
+ struct timespec *value);
+-extern unsigned long timeval_to_jiffies(const struct timeval *value);
++extern unsigned long timeval_to_jiffies(const struct timeval *value) __intentional_overflow(-1);
+ extern void jiffies_to_timeval(const unsigned long jiffies,
+ struct timeval *value);
+
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index 6883e19..e854fcb 100644
--- a/include/linux/kallsyms.h
@@ -75147,10 +75734,10 @@ index 0555cc6..40116ce 100644
char **envp;
int wait;
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
-index 939b112..ed6ed51 100644
+index de6dcbcc..4735f88 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
-@@ -111,7 +111,7 @@ struct kobj_type {
+@@ -115,7 +115,7 @@ struct kobj_type {
struct attribute **default_attrs;
const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
const void *(*namespace)(struct kobject *kobj);
@@ -75159,7 +75746,7 @@ index 939b112..ed6ed51 100644
struct kobj_uevent_env {
char *envp[UEVENT_NUM_ENVP];
-@@ -134,6 +134,7 @@ struct kobj_attribute {
+@@ -138,6 +138,7 @@ struct kobj_attribute {
ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
const char *buf, size_t count);
};
@@ -75168,10 +75755,10 @@ index