commit:     a60602ca4172ca8b380e52588f7902afeb9aad57
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 16 16:17:42 2016 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Apr 16 16:17:42 2016 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-patchset.git/commit/?id=a60602ca

grsecurity-3.1-4.4.7-201604152208

 {4.4.6 => 4.4.7}/0000_README                       |   2 +-
 .../4420_grsecurity-3.1-4.4.7-201604152208.patch   | 838 +++++++--------------
 {4.4.6 => 4.4.7}/4425_grsec_remove_EI_PAX.patch    |   0
 {4.4.6 => 4.4.7}/4427_force_XATTR_PAX_tmpfs.patch  |   0
 .../4430_grsec-remove-localversion-grsec.patch     |   0
 {4.4.6 => 4.4.7}/4435_grsec-mute-warnings.patch    |   0
 .../4440_grsec-remove-protected-paths.patch        |   0
 .../4450_grsec-kconfig-default-gids.patch          |   0
 .../4465_selinux-avc_audit-log-curr_ip.patch       |   0
 {4.4.6 => 4.4.7}/4470_disable-compat_vdso.patch    |   0
 {4.4.6 => 4.4.7}/4475_emutramp_default_on.patch    |   0
 11 files changed, 281 insertions(+), 559 deletions(-)

diff --git a/4.4.6/0000_README b/4.4.7/0000_README
similarity index 96%
rename from 4.4.6/0000_README
rename to 4.4.7/0000_README
index 938fbaa..afa79df 100644
--- a/4.4.6/0000_README
+++ b/4.4.7/0000_README
@@ -2,7 +2,7 @@ README
 -----------------------------------------------------------------------------
 Individual Patch Descriptions:
 -----------------------------------------------------------------------------
-Patch: 4420_grsecurity-3.1-4.4.6-201604100830.patch
+Patch: 4420_grsecurity-3.1-4.4.7-201604152208.patch
 From:  http://www.grsecurity.net
 Desc:  hardened-sources base patch from upstream grsecurity
 

diff --git a/4.4.6/4420_grsecurity-3.1-4.4.6-201604100830.patch 
b/4.4.7/4420_grsecurity-3.1-4.4.7-201604152208.patch
similarity index 99%
rename from 4.4.6/4420_grsecurity-3.1-4.4.6-201604100830.patch
rename to 4.4.7/4420_grsecurity-3.1-4.4.7-201604152208.patch
index 62aa16c..e6ad811 100644
--- a/4.4.6/4420_grsecurity-3.1-4.4.6-201604100830.patch
+++ b/4.4.7/4420_grsecurity-3.1-4.4.7-201604152208.patch
@@ -449,7 +449,7 @@ index af70d15..ccd3786 100644
  
  A toggle value indicating if modules are allowed to be loaded
 diff --git a/Makefile b/Makefile
-index 87d12b4..b9e0477 100644
+index 5a493e7..70a9fb1 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -298,7 +298,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo 
$$BASH; \
@@ -12115,19 +12115,6 @@ index e3abe6f..ae224ef 100644
  #This will adjust *FLAGS accordingly to the platform.
  include $(ARCH_DIR)/Makefile-os-$(OS)
  
-diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c
-index 29880c9..e22e572 100644
---- a/arch/um/drivers/mconsole_kern.c
-+++ b/arch/um/drivers/mconsole_kern.c
-@@ -133,7 +133,7 @@ void mconsole_proc(struct mc_request *req)
-       ptr += strlen("proc");
-       ptr = skip_spaces(ptr);
- 
--      file = file_open_root(mnt->mnt_root, mnt, ptr, O_RDONLY);
-+      file = file_open_root(mnt->mnt_root, mnt, ptr, O_RDONLY, 0);
-       if (IS_ERR(file)) {
-               mconsole_reply(req, "Failed to open file", 1, 0);
-               printk(KERN_ERR "open /proc/%s: %ld\n", ptr, PTR_ERR(file));
 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
 index 19e1bdd..3665b77 100644
 --- a/arch/um/include/asm/cache.h
@@ -12231,7 +12218,7 @@ index ad8f795..2c7eec6 100644
  /*
   * Memory returned by kmalloc() may be used for DMA, so we must make
 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index db3622f..8a6202c 100644
+index 436639a..3d211bb 100644
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
 @@ -36,14 +36,13 @@ config X86
@@ -12284,7 +12271,7 @@ index db3622f..8a6202c 100644
        default y
        depends on MODIFY_LDT_SYSCALL
        ---help---
-@@ -1192,6 +1193,7 @@ choice
+@@ -1193,6 +1194,7 @@ choice
  
  config NOHIGHMEM
        bool "off"
@@ -12292,7 +12279,7 @@ index db3622f..8a6202c 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
-@@ -1228,6 +1230,7 @@ config NOHIGHMEM
+@@ -1229,6 +1231,7 @@ config NOHIGHMEM
  
  config HIGHMEM4G
        bool "4GB"
@@ -12300,7 +12287,7 @@ index db3622f..8a6202c 100644
        ---help---
          Select this if you have a 32-bit processor and between 1 and 4
          gigabytes of physical RAM.
-@@ -1280,7 +1283,7 @@ config PAGE_OFFSET
+@@ -1281,7 +1284,7 @@ config PAGE_OFFSET
        hex
        default 0xB0000000 if VMSPLIT_3G_OPT
        default 0x80000000 if VMSPLIT_2G
@@ -12309,7 +12296,7 @@ index db3622f..8a6202c 100644
        default 0x40000000 if VMSPLIT_1G
        default 0xC0000000
        depends on X86_32
-@@ -1301,7 +1304,6 @@ config X86_PAE
+@@ -1302,7 +1305,6 @@ config X86_PAE
  
  config ARCH_PHYS_ADDR_T_64BIT
        def_bool y
@@ -12317,7 +12304,7 @@ index db3622f..8a6202c 100644
  
  config ARCH_DMA_ADDR_T_64BIT
        def_bool y
-@@ -1432,7 +1434,7 @@ config ARCH_PROC_KCORE_TEXT
+@@ -1433,7 +1435,7 @@ config ARCH_PROC_KCORE_TEXT
  
  config ILLEGAL_POINTER_VALUE
         hex
@@ -12326,7 +12313,7 @@ index db3622f..8a6202c 100644
         default 0xdead000000000000 if X86_64
  
  source "mm/Kconfig"
-@@ -1741,6 +1743,7 @@ source kernel/Kconfig.hz
+@@ -1742,6 +1744,7 @@ source kernel/Kconfig.hz
  config KEXEC
        bool "kexec system call"
        select KEXEC_CORE
@@ -12334,7 +12321,7 @@ index db3622f..8a6202c 100644
        ---help---
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
-@@ -1923,7 +1926,9 @@ config X86_NEED_RELOCS
+@@ -1924,7 +1927,9 @@ config X86_NEED_RELOCS
  
  config PHYSICAL_ALIGN
        hex "Alignment value to which kernel should be aligned"
@@ -12345,7 +12332,7 @@ index db3622f..8a6202c 100644
        range 0x2000 0x1000000 if X86_32
        range 0x200000 0x1000000 if X86_64
        ---help---
-@@ -2006,6 +2011,7 @@ config COMPAT_VDSO
+@@ -2007,6 +2012,7 @@ config COMPAT_VDSO
        def_bool n
        prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
        depends on X86_32 || IA32_EMULATION
@@ -12353,7 +12340,7 @@ index db3622f..8a6202c 100644
        ---help---
          Certain buggy versions of glibc will crash if they are
          presented with a 32-bit vDSO that is not mapped at the address
-@@ -2046,15 +2052,6 @@ choice
+@@ -2047,15 +2053,6 @@ choice
  
          If unsure, select "Emulate".
  
@@ -12369,7 +12356,7 @@ index db3622f..8a6202c 100644
        config LEGACY_VSYSCALL_EMULATE
                bool "Emulate"
                help
-@@ -2135,6 +2132,22 @@ config MODIFY_LDT_SYSCALL
+@@ -2136,6 +2133,22 @@ config MODIFY_LDT_SYSCALL
  
          Saying 'N' here may make sense for embedded or server kernels.
  
@@ -14538,7 +14525,7 @@ index 3c71dd9..008b8db 100644
  
        .macro REMOVE_PT_GPREGS_FROM_STACK addskip=0
 diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
-index 0366374..61ed739 100644
+index 1a4477c..9bc8a3a 100644
 --- a/arch/x86/entry/common.c
 +++ b/arch/x86/entry/common.c
 @@ -32,9 +32,7 @@
@@ -14608,7 +14595,7 @@ index 0366374..61ed739 100644
  }
  
  #define EXIT_TO_USERMODE_LOOP_FLAGS                           \
-@@ -306,7 +318,7 @@ static void syscall_slow_exit_work(struct pt_regs *regs, 
u32 cached_flags)
+@@ -317,7 +329,7 @@ static void syscall_slow_exit_work(struct pt_regs *regs, 
u32 cached_flags)
        step = unlikely(
                (cached_flags & (_TIF_SINGLESTEP | _TIF_SYSCALL_EMU))
                == _TIF_SINGLESTEP);
@@ -14617,7 +14604,7 @@ index 0366374..61ed739 100644
                tracehook_report_syscall_exit(regs, step);
  }
  
-@@ -325,6 +337,11 @@ __visible inline void syscall_return_slowpath(struct 
pt_regs *regs)
+@@ -336,6 +348,11 @@ __visible inline void syscall_return_slowpath(struct 
pt_regs *regs)
            WARN(irqs_disabled(), "syscall %ld left IRQs disabled", 
regs->orig_ax))
                local_irq_enable();
  
@@ -14629,7 +14616,7 @@ index 0366374..61ed739 100644
        /*
         * First do one-time work.  If these work items are enabled, we
         * want to run them exactly once per syscall exit with IRQs on.
-@@ -412,6 +429,7 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
+@@ -415,6 +432,7 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
  
        unsigned long landing_pad = (unsigned long)current->mm->context.vdso +
                vdso_image_32.sym_int80_landing_pad;
@@ -14637,7 +14624,7 @@ index 0366374..61ed739 100644
  
        /*
         * SYSENTER loses EIP, and even SYSCALL32 needs us to skip forward
-@@ -432,11 +450,9 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
+@@ -435,11 +453,9 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
                 * Micro-optimization: the pointer we're following is explicitly
                 * 32 bits, so it can't be out of range.
                 */
@@ -17047,7 +17034,7 @@ index 7bfc85b..65d1ec4 100644
        ALTINSTR_REPLACEMENT(newinstr2, feature2, 2)                    \
        ".popsection"
 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
-index a30316b..db419a1 100644
+index 163769d..d41133e 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)
@@ -18890,10 +18877,10 @@ index b4c1f54..e290c08 100644
        pagefault_enable();
  
 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
-index 1e3408e..67c5ba1 100644
+index 59caa55..e4d3fec 100644
 --- a/arch/x86/include/asm/hw_irq.h
 +++ b/arch/x86/include/asm/hw_irq.h
-@@ -158,8 +158,8 @@ static inline void unlock_vector_lock(void) {}
+@@ -159,8 +159,8 @@ static inline void unlock_vector_lock(void) {}
  #endif        /* CONFIG_X86_LOCAL_APIC */
  
  /* Statistics */
@@ -22953,7 +22940,7 @@ index 7694ae6..5abb08e 100644
  
  static int cmdline_apic __initdata;
 diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
-index a35f6b5..cced8817 100644
+index 7af2505..d1ea63f 100644
 --- a/arch/x86/kernel/apic/vector.c
 +++ b/arch/x86/kernel/apic/vector.c
 @@ -36,6 +36,7 @@ static struct irq_chip lapic_controller;
@@ -23730,10 +23717,10 @@ index 01dd870..6fd1c59 100644
        wmb();
  
 diff --git a/arch/x86/kernel/cpu/microcode/intel.c 
b/arch/x86/kernel/cpu/microcode/intel.c
-index ce47402..4a6bdf8 100644
+index ac8975a..37d9aa6 100644
 --- a/arch/x86/kernel/cpu/microcode/intel.c
 +++ b/arch/x86/kernel/cpu/microcode/intel.c
-@@ -1014,13 +1014,13 @@ static enum ucode_state request_microcode_fw(int cpu, 
struct device *device,
+@@ -1016,13 +1016,13 @@ static enum ucode_state request_microcode_fw(int cpu, 
struct device *device,
  
  static int get_ucode_user(void *to, const void *from, size_t n)
  {
@@ -23813,10 +23800,10 @@ index 951884d..4796b75 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 2bf79d7..c188219 100644
+index a3aeb2c..935e1d7 100644
 --- a/arch/x86/kernel/cpu/perf_event.c
 +++ b/arch/x86/kernel/cpu/perf_event.c
-@@ -1518,7 +1518,7 @@ static void __init pmu_check_apic(void)
+@@ -1531,7 +1531,7 @@ static void __init pmu_check_apic(void)
  
  }
  
@@ -23825,7 +23812,7 @@ index 2bf79d7..c188219 100644
        .name = "format",
        .attrs = NULL,
  };
-@@ -1617,7 +1617,7 @@ static struct attribute *events_attr[] = {
+@@ -1630,7 +1630,7 @@ static struct attribute *events_attr[] = {
        NULL,
  };
  
@@ -23834,7 +23821,7 @@ index 2bf79d7..c188219 100644
        .name = "events",
        .attrs = events_attr,
  };
-@@ -2203,7 +2203,7 @@ valid_user_frame(const void __user *fp, unsigned long 
size)
+@@ -2216,7 +2216,7 @@ valid_user_frame(const void __user *fp, unsigned long 
size)
  static unsigned long get_segment_base(unsigned int segment)
  {
        struct desc_struct *desc;
@@ -23843,7 +23830,7 @@ index 2bf79d7..c188219 100644
  
        if ((segment & SEGMENT_TI_MASK) == SEGMENT_LDT) {
  #ifdef CONFIG_MODIFY_LDT_SYSCALL
-@@ -2225,7 +2225,7 @@ static unsigned long get_segment_base(unsigned int 
segment)
+@@ -2238,7 +2238,7 @@ static unsigned long get_segment_base(unsigned int 
segment)
                if (idx > GDT_ENTRIES)
                        return 0;
  
@@ -23852,7 +23839,7 @@ index 2bf79d7..c188219 100644
        }
  
        return get_desc_base(desc);
-@@ -2315,7 +2315,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, 
struct pt_regs *regs)
+@@ -2328,7 +2328,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, 
struct pt_regs *regs)
                        break;
  
                perf_callchain_store(entry, frame.return_address);
@@ -23862,10 +23849,10 @@ index 2bf79d7..c188219 100644
  }
  
 diff --git a/arch/x86/kernel/cpu/perf_event.h 
b/arch/x86/kernel/cpu/perf_event.h
-index d0e35eb..5e98530 100644
+index ee70445..7c6859c 100644
 --- a/arch/x86/kernel/cpu/perf_event.h
 +++ b/arch/x86/kernel/cpu/perf_event.h
-@@ -791,7 +791,7 @@ static inline void set_linear_ip(struct pt_regs *regs, 
unsigned long ip)
+@@ -792,7 +792,7 @@ static inline void set_linear_ip(struct pt_regs *regs, 
unsigned long ip)
        regs->cs = kernel_ip(ip) ? __KERNEL_CS : __USER_CS;
        if (regs->flags & X86_VM_MASK)
                regs->flags ^= (PERF_EFLAGS_VM | X86_VM_MASK);
@@ -23888,10 +23875,10 @@ index 97242a9..cf9c30e 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 e2a4300..1df45be 100644
+index 078de2e..7ac50e5 100644
 --- a/arch/x86/kernel/cpu/perf_event_intel.c
 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
-@@ -2119,6 +2119,8 @@ __intel_get_event_constraints(struct cpu_hw_events 
*cpuc, int idx,
+@@ -2140,6 +2140,8 @@ __intel_get_event_constraints(struct cpu_hw_events 
*cpuc, int idx,
  }
  
  static void
@@ -23900,7 +23887,7 @@ index e2a4300..1df45be 100644
  intel_start_scheduling(struct cpu_hw_events *cpuc)
  {
        struct intel_excl_cntrs *excl_cntrs = cpuc->excl_cntrs;
-@@ -2128,14 +2130,18 @@ intel_start_scheduling(struct cpu_hw_events *cpuc)
+@@ -2149,14 +2151,18 @@ intel_start_scheduling(struct cpu_hw_events *cpuc)
        /*
         * nothing needed if in group validation mode
         */
@@ -23921,7 +23908,7 @@ index e2a4300..1df45be 100644
  
        xl = &excl_cntrs->states[tid];
  
-@@ -2175,6 +2181,8 @@ static void intel_commit_scheduling(struct cpu_hw_events 
*cpuc, int idx, int cnt
+@@ -2196,6 +2202,8 @@ static void intel_commit_scheduling(struct cpu_hw_events 
*cpuc, int idx, int cnt
  }
  
  static void
@@ -23930,7 +23917,7 @@ index e2a4300..1df45be 100644
  intel_stop_scheduling(struct cpu_hw_events *cpuc)
  {
        struct intel_excl_cntrs *excl_cntrs = cpuc->excl_cntrs;
-@@ -2184,13 +2192,18 @@ intel_stop_scheduling(struct cpu_hw_events *cpuc)
+@@ -2205,13 +2213,18 @@ intel_stop_scheduling(struct cpu_hw_events *cpuc)
        /*
         * nothing needed if in group validation mode
         */
@@ -23951,7 +23938,7 @@ index e2a4300..1df45be 100644
  
        xl = &excl_cntrs->states[tid];
  
-@@ -2373,19 +2386,22 @@ static void intel_put_excl_constraints(struct 
cpu_hw_events *cpuc,
+@@ -2394,19 +2407,22 @@ static void intel_put_excl_constraints(struct 
cpu_hw_events *cpuc,
         * unused now.
         */
        if (hwc->idx >= 0) {
@@ -23976,7 +23963,7 @@ index e2a4300..1df45be 100644
                        raw_spin_unlock(&excl_cntrs->lock);
        }
  }
-@@ -3258,10 +3274,10 @@ __init int intel_pmu_init(void)
+@@ -3279,10 +3295,10 @@ __init int intel_pmu_init(void)
                x86_pmu.num_counters_fixed = 
max((int)edx.split.num_counters_fixed, 3);
  
        if (boot_cpu_has(X86_FEATURE_PDCM)) {
@@ -24037,10 +24024,10 @@ index a316ca9..99344f4 100644
        ret = intel_cqm_setup_rmid_cache();
        if (ret)
 diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c 
b/arch/x86/kernel/cpu/perf_event_intel_ds.c
-index 5db1c77..7acef35 100644
+index 7abb2b8..ea24517 100644
 --- a/arch/x86/kernel/cpu/perf_event_intel_ds.c
 +++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c
-@@ -589,7 +589,7 @@ int intel_pmu_drain_bts_buffer(void)
+@@ -598,7 +598,7 @@ int intel_pmu_drain_bts_buffer(void)
  
  static inline void intel_pmu_drain_pebs_buffer(void)
  {
@@ -24049,7 +24036,7 @@ index 5db1c77..7acef35 100644
  
        x86_pmu.drain_pebs(&regs);
  }
-@@ -860,7 +860,7 @@ static int intel_pmu_pebs_fixup_ip(struct pt_regs *regs)
+@@ -869,7 +869,7 @@ static int intel_pmu_pebs_fixup_ip(struct pt_regs *regs)
        struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
        unsigned long from = cpuc->lbr_entries[0].from;
        unsigned long old_to, to = cpuc->lbr_entries[0].to;
@@ -24058,7 +24045,7 @@ index 5db1c77..7acef35 100644
        int is_64bit = 0;
        void *kaddr;
        int size;
-@@ -912,6 +912,7 @@ static int intel_pmu_pebs_fixup_ip(struct pt_regs *regs)
+@@ -921,6 +921,7 @@ static int intel_pmu_pebs_fixup_ip(struct pt_regs *regs)
        } else {
                kaddr = (void *)to;
        }
@@ -24066,7 +24053,7 @@ index 5db1c77..7acef35 100644
  
        do {
                struct insn insn;
-@@ -1060,7 +1061,7 @@ static void setup_pebs_sample_data(struct perf_event 
*event,
+@@ -1069,7 +1070,7 @@ static void setup_pebs_sample_data(struct perf_event 
*event,
        }
  
        if (event->attr.precise_ip > 1 && x86_pmu.intel_cap.pebs_format >= 2) {
@@ -26117,7 +26104,7 @@ index a979b5b..1d6db75 100644
                .callback       = dmi_io_delay_0xed_port,
                .ident          = "Compaq Presario V6000",
 diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
-index 37dae79..620dd84 100644
+index 589b319..41d6575 100644
 --- a/arch/x86/kernel/ioport.c
 +++ b/arch/x86/kernel/ioport.c
 @@ -6,6 +6,7 @@
@@ -26150,7 +26137,7 @@ index 37dae79..620dd84 100644
  
        if (turn_on)
                bitmap_clear(t->io_bitmap_ptr, from, num);
-@@ -105,6 +112,12 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
+@@ -110,6 +117,12 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
        if (level > old) {
                if (!capable(CAP_SYS_RAWIO))
                        return -EPERM;
@@ -26161,8 +26148,8 @@ index 37dae79..620dd84 100644
 +              }
 +#endif
        }
-       regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
-       t->iopl = level << 12;
+       regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
+               (level << X86_EFLAGS_IOPL_BIT);
 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
 index 61521dc..5ce5a37 100644
 --- a/arch/x86/kernel/irq.c
@@ -27791,10 +27778,10 @@ index 9f95091..6885108 100644
        return prev_p;
  }
 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index e835d26..65762c9 100644
+index 4cbb60f..7cc4cb4 100644
 --- a/arch/x86/kernel/process_64.c
 +++ b/arch/x86/kernel/process_64.c
-@@ -159,9 +159,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned 
long sp,
+@@ -160,9 +160,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned 
long sp,
        struct pt_regs *childregs;
        struct task_struct *me = current;
  
@@ -27806,7 +27793,7 @@ index e835d26..65762c9 100644
        set_tsk_thread_flag(p, TIF_FORK);
        p->thread.io_bitmap_ptr = NULL;
  
-@@ -171,6 +172,8 @@ int copy_thread_tls(unsigned long clone_flags, unsigned 
long sp,
+@@ -172,6 +173,8 @@ int copy_thread_tls(unsigned long clone_flags, unsigned 
long sp,
        p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
        savesegment(es, p->thread.es);
        savesegment(ds, p->thread.ds);
@@ -27815,7 +27802,7 @@ index e835d26..65762c9 100644
        memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
  
        if (unlikely(p->flags & PF_KTHREAD)) {
-@@ -278,7 +281,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct 
*next_p)
+@@ -279,7 +282,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct 
*next_p)
        struct fpu *prev_fpu = &prev->fpu;
        struct fpu *next_fpu = &next->fpu;
        int cpu = smp_processor_id();
@@ -27824,7 +27811,7 @@ index e835d26..65762c9 100644
        unsigned fsindex, gsindex;
        fpu_switch_t fpu_switch;
  
-@@ -329,6 +332,10 @@ __switch_to(struct task_struct *prev_p, struct 
task_struct *next_p)
+@@ -330,6 +333,10 @@ __switch_to(struct task_struct *prev_p, struct 
task_struct *next_p)
        if (unlikely(next->ds | prev->ds))
                loadsegment(ds, next->ds);
  
@@ -27835,7 +27822,7 @@ index e835d26..65762c9 100644
        /*
         * Switch FS and GS.
         *
-@@ -400,10 +407,13 @@ __switch_to(struct task_struct *prev_p, struct 
task_struct *next_p)
+@@ -401,10 +408,13 @@ __switch_to(struct task_struct *prev_p, struct 
task_struct *next_p)
         * Switch the PDA and FPU contexts.
         */
        this_cpu_write(current_task, next_p);
@@ -29709,7 +29696,7 @@ index 899c40f..a114588 100644
        .disabled_by_bios = is_disabled,
        .hardware_setup = svm_hardware_setup,
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 0958fa2..4d1af52 100644
+index f34ab71..049ebd8 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
 @@ -1514,12 +1514,12 @@ static void vmcs_write64(unsigned long field, u64 
value)
@@ -29759,7 +29746,7 @@ index 0958fa2..4d1af52 100644
  {
        u64 host_tsc, tsc_offset;
  
-@@ -4626,7 +4634,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx 
*vmx)
+@@ -4633,7 +4641,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx 
*vmx)
        unsigned long cr4;
  
        vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS);  /* 22.2.3 */
@@ -29770,7 +29757,7 @@ index 0958fa2..4d1af52 100644
  
        /* Save the most likely value for this task's CR4 in the VMCS. */
        cr4 = cr4_read_shadow();
-@@ -4653,7 +4664,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx 
*vmx)
+@@ -4660,7 +4671,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;
  
@@ -29779,7 +29766,7 @@ index 0958fa2..4d1af52 100644
  
        rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
        vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
-@@ -6203,11 +6214,17 @@ static __init int hardware_setup(void)
+@@ -6210,11 +6221,17 @@ static __init int hardware_setup(void)
         * page upon invalidation.  No need to do anything if not
         * using the APIC_ACCESS_ADDR VMCS field.
         */
@@ -29799,7 +29786,7 @@ index 0958fa2..4d1af52 100644
  
        if (enable_ept && !cpu_has_vmx_ept_2m_page())
                kvm_disable_largepages();
-@@ -6224,6 +6241,7 @@ static __init int hardware_setup(void)
+@@ -6231,6 +6248,7 @@ static __init int hardware_setup(void)
                kvm_tsc_scaling_ratio_frac_bits = 48;
        }
  
@@ -29807,7 +29794,7 @@ index 0958fa2..4d1af52 100644
        if (enable_apicv)
                kvm_x86_ops->update_cr8_intercept = NULL;
        else {
-@@ -6232,6 +6250,7 @@ static __init int hardware_setup(void)
+@@ -6239,6 +6257,7 @@ static __init int hardware_setup(void)
                kvm_x86_ops->deliver_posted_interrupt = NULL;
                kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
        }
@@ -29815,7 +29802,7 @@ index 0958fa2..4d1af52 100644
  
        vmx_disable_intercept_for_msr(MSR_FS_BASE, false);
        vmx_disable_intercept_for_msr(MSR_GS_BASE, false);
-@@ -6286,10 +6305,12 @@ static __init int hardware_setup(void)
+@@ -6293,10 +6312,12 @@ static __init int hardware_setup(void)
                enable_pml = 0;
  
        if (!enable_pml) {
@@ -29828,23 +29815,7 @@ index 0958fa2..4d1af52 100644
        }
  
        kvm_set_posted_intr_wakeup_handler(wakeup_handler);
-@@ -7340,6 +7361,7 @@ static int handle_invept(struct kvm_vcpu *vcpu)
-       if (!(types & (1UL << type))) {
-               nested_vmx_failValid(vcpu,
-                               VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID);
-+              skip_emulated_instruction(vcpu);
-               return 1;
-       }
- 
-@@ -7398,6 +7420,7 @@ static int handle_invvpid(struct kvm_vcpu *vcpu)
-       if (!(types & (1UL << type))) {
-               nested_vmx_failValid(vcpu,
-                       VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID);
-+              skip_emulated_instruction(vcpu);
-               return 1;
-       }
- 
-@@ -8601,6 +8624,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu 
*vcpu)
+@@ -8615,6 +8636,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu 
*vcpu)
                "jmp 2f \n\t"
                "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
                "2: "
@@ -29857,7 +29828,7 @@ index 0958fa2..4d1af52 100644
                /* Save guest registers, load host registers, keep flags */
                "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
                "pop %0 \n\t"
-@@ -8653,6 +8682,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu 
*vcpu)
+@@ -8667,6 +8694,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))
@@ -29869,7 +29840,7 @@ index 0958fa2..4d1af52 100644
              : "cc", "memory"
  #ifdef CONFIG_X86_64
                , "rax", "rbx", "rdi", "rsi"
-@@ -8666,7 +8700,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
+@@ -8680,7 +8712,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
        if (debugctlmsr)
                update_debugctlmsr(debugctlmsr);
  
@@ -29878,7 +29849,7 @@ index 0958fa2..4d1af52 100644
        /*
         * The sysexit path does not restore ds/es, so we must set them to
         * a reasonable value ourselves.
-@@ -8675,8 +8709,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu 
*vcpu)
+@@ -8689,8 +8721,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.
         */
@@ -29899,7 +29870,7 @@ index 0958fa2..4d1af52 100644
  #endif
  
        vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
-@@ -10758,7 +10802,7 @@ out:
+@@ -10772,7 +10814,7 @@ out:
        return ret;
  }
  
@@ -29909,7 +29880,7 @@ index 0958fa2..4d1af52 100644
        .disabled_by_bios = vmx_disabled_by_bios,
        .hardware_setup = hardware_setup,
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index d294502..af80bcb 100644
+index 8bfc5fc..d94e9e3 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
 @@ -1937,8 +1937,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 
data)
@@ -29932,7 +29903,7 @@ index d294502..af80bcb 100644
                if (copy_to_user(user_msr_list->indices, &msrs_to_save,
                                 num_msrs_to_save * sizeof(u32)))
                        goto out;
-@@ -3028,7 +3030,7 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct 
kvm_vcpu *vcpu,
+@@ -3029,7 +3031,7 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct 
kvm_vcpu *vcpu,
  
  static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
  {
@@ -29941,7 +29912,7 @@ index d294502..af80bcb 100644
        u64 xstate_bv = xsave->header.xfeatures;
        u64 valid;
  
-@@ -3064,7 +3066,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
+@@ -3065,7 +3067,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
  
  static void load_xsave(struct kvm_vcpu *vcpu, u8 *src)
  {
@@ -29950,7 +29921,7 @@ index d294502..af80bcb 100644
        u64 xstate_bv = *(u64 *)(src + XSAVE_HDR_OFFSET);
        u64 valid;
  
-@@ -3108,7 +3110,7 @@ static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu 
*vcpu,
+@@ -3109,7 +3111,7 @@ static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu 
*vcpu,
                fill_xsave((u8 *) guest_xsave->region, vcpu);
        } else {
                memcpy(guest_xsave->region,
@@ -29959,7 +29930,7 @@ index d294502..af80bcb 100644
                        sizeof(struct fxregs_state));
                *(u64 *)&guest_xsave->region[XSAVE_HDR_OFFSET / sizeof(u32)] =
                        XFEATURE_MASK_FPSSE;
-@@ -3133,7 +3135,7 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu 
*vcpu,
+@@ -3134,7 +3136,7 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu 
*vcpu,
        } else {
                if (xstate_bv & ~XFEATURE_MASK_FPSSE)
                        return -EINVAL;
@@ -29968,7 +29939,7 @@ index d294502..af80bcb 100644
                        guest_xsave->region, sizeof(struct fxregs_state));
        }
        return 0;
-@@ -6363,6 +6365,7 @@ void kvm_arch_mmu_notifier_invalidate_page(struct kvm 
*kvm,
+@@ -6364,6 +6366,7 @@ void kvm_arch_mmu_notifier_invalidate_page(struct kvm 
*kvm,
   * exiting to the userspace.  Otherwise, the value will be returned to the
   * userspace.
   */
@@ -29976,7 +29947,7 @@ index d294502..af80bcb 100644
  static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
  {
        int r;
-@@ -6611,6 +6614,7 @@ out:
+@@ -6612,6 +6615,7 @@ out:
        return r;
  }
  
@@ -29984,7 +29955,7 @@ index d294502..af80bcb 100644
  static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)
  {
        if (!kvm_arch_vcpu_runnable(vcpu) &&
-@@ -7158,7 +7162,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
+@@ -7159,7 +7163,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
  int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
  {
        struct fxregs_state *fxsave =
@@ -29993,7 +29964,7 @@ index d294502..af80bcb 100644
  
        memcpy(fpu->fpr, fxsave->st_space, 128);
        fpu->fcw = fxsave->cwd;
-@@ -7175,7 +7179,7 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, 
struct kvm_fpu *fpu)
+@@ -7176,7 +7180,7 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, 
struct kvm_fpu *fpu)
  int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
  {
        struct fxregs_state *fxsave =
@@ -30002,7 +29973,7 @@ index d294502..af80bcb 100644
  
        memcpy(fxsave->st_space, fpu->fpr, 128);
        fxsave->cwd = fpu->fcw;
-@@ -7191,9 +7195,9 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, 
struct kvm_fpu *fpu)
+@@ -7192,9 +7196,9 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, 
struct kvm_fpu *fpu)
  
  static void fx_init(struct kvm_vcpu *vcpu)
  {
@@ -30014,7 +29985,7 @@ index d294502..af80bcb 100644
                        host_xcr0 | XSTATE_COMPACTION_ENABLED;
  
        /*
-@@ -7217,7 +7221,7 @@ void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
+@@ -7218,7 +7222,7 @@ void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
        kvm_put_guest_xcr0(vcpu);
        vcpu->guest_fpu_loaded = 1;
        __kernel_fpu_begin();
@@ -30023,7 +29994,7 @@ index d294502..af80bcb 100644
        trace_kvm_fpu(1);
  }
  
-@@ -7520,6 +7524,8 @@ bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
+@@ -7521,6 +7525,8 @@ bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
  
  struct static_key kvm_no_apic_vcpu __read_mostly;
  
@@ -30032,7 +30003,7 @@ index d294502..af80bcb 100644
  int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
  {
        struct page *page;
-@@ -7536,11 +7542,14 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
+@@ -7537,11 +7543,14 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
        else
                vcpu->arch.mp_state = KVM_MP_STATE_UNINITIALIZED;
  
@@ -30051,7 +30022,7 @@ index d294502..af80bcb 100644
        vcpu->arch.pio_data = page_address(page);
  
        kvm_set_tsc_khz(vcpu, max_tsc_khz);
-@@ -7596,6 +7605,9 @@ fail_mmu_destroy:
+@@ -7597,6 +7606,9 @@ fail_mmu_destroy:
        kvm_mmu_destroy(vcpu);
  fail_free_pio_data:
        free_page((unsigned long)vcpu->arch.pio_data);
@@ -30061,7 +30032,7 @@ index d294502..af80bcb 100644
  fail:
        return r;
  }
-@@ -7613,6 +7625,8 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
+@@ -7614,6 +7626,8 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
        free_page((unsigned long)vcpu->arch.pio_data);
        if (!lapic_in_kernel(vcpu))
                static_key_slow_dec(&kvm_no_apic_vcpu);
@@ -35185,7 +35156,7 @@ index 90555bf..f5f1828 100644
  }
  
 diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
-index 8f4cc3d..7143a15 100644
+index 5fb6ada..9c48b29 100644
 --- a/arch/x86/mm/tlb.c
 +++ b/arch/x86/mm/tlb.c
 @@ -45,7 +45,11 @@ void leave_mm(int cpu)
@@ -36660,7 +36631,7 @@ index c7b15f3..cc09a65 100644
          This is the Linux Xen port.  Enabling this will allow the
          kernel to boot in a paravirtualized environment under the
 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index b7de78b..81f54af 100644
+index beab8c7..9a29803 100644
 --- a/arch/x86/xen/enlighten.c
 +++ b/arch/x86/xen/enlighten.c
 @@ -131,8 +131,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
@@ -37677,7 +37648,7 @@ index 7cfbda4..74f738c 100644
        set_no_mwait, "Extensa 5220", {
        DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
-index 0d94621..21686cc 100644
+index e3322ad..4a03c27 100644
 --- a/drivers/acpi/sleep.c
 +++ b/drivers/acpi/sleep.c
 @@ -148,7 +148,7 @@ static int __init init_nvs_nosave(const struct 
dmi_system_id *d)
@@ -40570,7 +40541,7 @@ index 565a947..dcdc06e 100644
        acpi_os_unmap_iomem(virt, len);
        return 0;
 diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
-index bd72fb0..0212a62 100644
+index 4e6940a..fc08428 100644
 --- a/drivers/char/tpm/tpm_eventlog.c
 +++ b/drivers/char/tpm/tpm_eventlog.c
 @@ -108,8 +108,7 @@ static void *tpm_bios_measurements_start(struct seq_file 
*m, loff_t *pos)
@@ -42180,10 +42151,10 @@ index 8e99514..3d68786 100644
  
  void *amdgpu_cgs_create_device(struct amdgpu_device *adev)
 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-index c961fe0..acde4f5 100644
+index 9d88023..5fe8189 100644
 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
-@@ -1075,7 +1075,7 @@ static bool amdgpu_switcheroo_can_switch(struct pci_dev 
*pdev)
+@@ -1081,7 +1081,7 @@ static bool amdgpu_switcheroo_can_switch(struct pci_dev 
*pdev)
        * locking inversion with the driver load path. And the access here is
        * completely racy anyway. So don't bother with locking for now.
        */
@@ -43077,6 +43048,28 @@ index d4813e0..6c1ab4d 100644
        if (pipe) {
                pipeconf_reg = PIPECCONF;
                dspcntr_reg = DSPCCNTR;
+diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_output.c 
b/drivers/gpu/drm/gma500/mdfld_dsi_output.c
+index 89f705c..d262d0b 100644
+--- a/drivers/gpu/drm/gma500/mdfld_dsi_output.c
++++ b/drivers/gpu/drm/gma500/mdfld_dsi_output.c
+@@ -382,14 +382,14 @@ static int mdfld_dsi_connector_mode_valid(struct 
drm_connector *connector,
+       return MODE_OK;
+ }
+ 
+-static void mdfld_dsi_connector_dpms(struct drm_connector *connector, int 
mode)
++static int mdfld_dsi_connector_dpms(struct drm_connector *connector, int mode)
+ {
+       if (mode == connector->dpms)
+-              return;
++              return 0;
+ 
+       /*first, execute dpms*/
+ 
+-      drm_helper_connector_dpms(connector, mode);
++      return drm_helper_connector_dpms(connector, mode);
+ }
+ 
+ static struct drm_encoder *mdfld_dsi_connector_best_encoder(
 diff --git a/drivers/gpu/drm/gma500/psb_drv.c 
b/drivers/gpu/drm/gma500/psb_drv.c
 index 92e7e57..5d74ff5 100644
 --- a/drivers/gpu/drm/gma500/psb_drv.c
@@ -44243,10 +44236,10 @@ index b928c17..e5d9400 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 c566993..0bf8fae 100644
+index f78f111..3df7de6 100644
 --- a/drivers/gpu/drm/radeon/radeon_device.c
 +++ b/drivers/gpu/drm/radeon/radeon_device.c
-@@ -1253,7 +1253,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev 
*pdev)
+@@ -1259,7 +1259,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev 
*pdev)
         * locking inversion with the driver load path. And the access here is
         * completely racy anyway. So don't bother with locking for now.
         */
@@ -45116,10 +45109,10 @@ index 41edd5a..cb008f0 100644
        /* 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 c6f7a69..cf26aed 100644
+index ec791e1..169a46d 100644
 --- a/drivers/hid/hid-core.c
 +++ b/drivers/hid/hid-core.c
-@@ -2583,7 +2583,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
+@@ -2584,7 +2584,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
  
  int hid_add_device(struct hid_device *hdev)
  {
@@ -45128,7 +45121,7 @@ index c6f7a69..cf26aed 100644
        int ret;
  
        if (WARN_ON(hdev->status & HID_STAT_ADDED))
-@@ -2626,7 +2626,7 @@ int hid_add_device(struct hid_device *hdev)
+@@ -2628,7 +2628,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,
@@ -45684,6 +45677,23 @@ index 37a8a90..4724cbd 100644
                                      sector_t block)
  {
        ide_hwif_t *hwif = drive->hwif;
+diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
+index 146eed70b..4e6a8d5 100644
+--- a/drivers/idle/intel_idle.c
++++ b/drivers/idle/intel_idle.c
+@@ -1060,8 +1060,10 @@ static void sklh_idle_state_table_update(void)
+                       return;
+       }
+ 
+-      skl_cstates[5].disabled = 1;    /* C8-SKL */
+-      skl_cstates[6].disabled = 1;    /* C9-SKL */
++      pax_open_kernel();
++      *(bool **)&skl_cstates[5].disabled = 1; /* C8-SKL */
++      *(bool **)&skl_cstates[6].disabled = 1; /* C9-SKL */
++      pax_close_kernel();
+ }
+ /*
+  * intel_idle_state_table_update()
 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
 index 159ede6..856c0d5 100644
 --- a/drivers/iio/industrialio-core.c
@@ -46690,113 +46700,11 @@ index 4a95b22..874c182 100644
  #include <linux/input.h>
  #include <linux/gameport.h>
  #include <linux/jiffies.h>
-diff --git a/drivers/input/misc/ati_remote2.c 
b/drivers/input/misc/ati_remote2.c
-index cfd58e8..1c5914c 100644
---- a/drivers/input/misc/ati_remote2.c
-+++ b/drivers/input/misc/ati_remote2.c
-@@ -817,26 +817,49 @@ static int ati_remote2_probe(struct usb_interface 
*interface, const struct usb_d
- 
-       ar2->udev = udev;
- 
-+      /* Sanity check, first interface must have an endpoint */
-+      if (alt->desc.bNumEndpoints < 1 || !alt->endpoint) {
-+              dev_err(&interface->dev,
-+                      "%s(): interface 0 must have an endpoint\n", __func__);
-+              r = -ENODEV;
-+              goto fail1;
-+      }
-       ar2->intf[0] = interface;
-       ar2->ep[0] = &alt->endpoint[0].desc;
- 
-+      /* Sanity check, the device must have two interfaces */
-       ar2->intf[1] = usb_ifnum_to_if(udev, 1);
-+      if ((udev->actconfig->desc.bNumInterfaces < 2) || !ar2->intf[1]) {
-+              dev_err(&interface->dev, "%s(): need 2 interfaces, found %d\n",
-+                      __func__, udev->actconfig->desc.bNumInterfaces);
-+              r = -ENODEV;
-+              goto fail1;
-+      }
-+
-       r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2);
-       if (r)
-               goto fail1;
-+
-+      /* Sanity check, second interface must have an endpoint */
-       alt = ar2->intf[1]->cur_altsetting;
-+      if (alt->desc.bNumEndpoints < 1 || !alt->endpoint) {
-+              dev_err(&interface->dev,
-+                      "%s(): interface 1 must have an endpoint\n", __func__);
-+              r = -ENODEV;
-+              goto fail2;
-+      }
-       ar2->ep[1] = &alt->endpoint[0].desc;
- 
-       r = ati_remote2_urb_init(ar2);
-       if (r)
--              goto fail2;
-+              goto fail3;
- 
-       ar2->channel_mask = channel_mask;
-       ar2->mode_mask = mode_mask;
- 
-       r = ati_remote2_setup(ar2, ar2->channel_mask);
-       if (r)
--              goto fail2;
-+              goto fail3;
- 
-       usb_make_path(udev, ar2->phys, sizeof(ar2->phys));
-       strlcat(ar2->phys, "/input0", sizeof(ar2->phys));
-@@ -845,11 +868,11 @@ static int ati_remote2_probe(struct usb_interface 
*interface, const struct usb_d
- 
-       r = sysfs_create_group(&udev->dev.kobj, &ati_remote2_attr_group);
-       if (r)
--              goto fail2;
-+              goto fail3;
- 
-       r = ati_remote2_input_init(ar2);
-       if (r)
--              goto fail3;
-+              goto fail4;
- 
-       usb_set_intfdata(interface, ar2);
- 
-@@ -857,10 +880,11 @@ static int ati_remote2_probe(struct usb_interface 
*interface, const struct usb_d
- 
-       return 0;
- 
-- fail3:
-+ fail4:
-       sysfs_remove_group(&udev->dev.kobj, &ati_remote2_attr_group);
-- fail2:
-+ fail3:
-       ati_remote2_urb_cleanup(ar2);
-+ fail2:
-       usb_driver_release_interface(&ati_remote2_driver, ar2->intf[1]);
-  fail1:
-       kfree(ar2);
 diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
-index ac1fa5f..1e1a411 100644
+index 9c0ea36..1e1a411 100644
 --- a/drivers/input/misc/ims-pcu.c
 +++ b/drivers/input/misc/ims-pcu.c
-@@ -1663,6 +1663,8 @@ static int ims_pcu_parse_cdc_data(struct usb_interface 
*intf, struct ims_pcu *pc
- 
-       pcu->ctrl_intf = usb_ifnum_to_if(pcu->udev,
-                                        union_desc->bMasterInterface0);
-+      if (!pcu->ctrl_intf)
-+              return -EINVAL;
- 
-       alt = pcu->ctrl_intf->cur_altsetting;
-       pcu->ep_ctrl = &alt->endpoint[0].desc;
-@@ -1670,6 +1672,8 @@ static int ims_pcu_parse_cdc_data(struct usb_interface 
*intf, struct ims_pcu *pc
- 
-       pcu->data_intf = usb_ifnum_to_if(pcu->udev,
-                                        union_desc->bSlaveInterface0);
-+      if (!pcu->data_intf)
-+              return -EINVAL;
- 
-       alt = pcu->data_intf->cur_altsetting;
-       if (alt->desc.bNumEndpoints != 2) {
-@@ -1851,7 +1855,7 @@ static int ims_pcu_identify_type(struct ims_pcu *pcu, u8 
*device_id)
+@@ -1855,7 +1855,7 @@ static int ims_pcu_identify_type(struct ims_pcu *pcu, u8 
*device_id)
  
  static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
  {
@@ -46805,7 +46713,7 @@ index ac1fa5f..1e1a411 100644
  
        const struct ims_pcu_device_info *info;
        int error;
-@@ -1882,7 +1886,7 @@ static int ims_pcu_init_application_mode(struct ims_pcu 
*pcu)
+@@ -1886,7 +1886,7 @@ static int ims_pcu_init_application_mode(struct ims_pcu 
*pcu)
        }
  
        /* Device appears to be operable, complete initialization */
@@ -48408,7 +48316,7 @@ index adbff14..018c2d2 100644
        struct cache_stat_collector collector;
  
 diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
-index 8d0ead9..2b81525 100644
+index a296425..397607e 100644
 --- a/drivers/md/bcache/super.c
 +++ b/drivers/md/bcache/super.c
 @@ -530,7 +530,7 @@ void bch_prio_write(struct cache *ca)
@@ -48476,7 +48384,7 @@ index 4f22e91..5b13fde 100644
  
        seq_printf(seq, "\n");
 diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
-index 2fd4c82..199bd5d 100644
+index 515f83e..56f11f0 100644
 --- a/drivers/md/dm-cache-target.c
 +++ b/drivers/md/dm-cache-target.c
 @@ -185,16 +185,16 @@ struct cache_features {
@@ -48556,7 +48464,7 @@ index 2fd4c82..199bd5d 100644
  
        dm_cache_metadata_set_stats(cache->cmd, &stats);
  }
-@@ -1322,7 +1322,7 @@ static bool bio_writes_complete_block(struct cache 
*cache, struct bio *bio)
+@@ -1327,7 +1327,7 @@ static bool bio_writes_complete_block(struct cache 
*cache, struct bio *bio)
  
  static void avoid_copy(struct dm_cache_migration *mg)
  {
@@ -48565,7 +48473,7 @@ index 2fd4c82..199bd5d 100644
        migration_success_pre_commit(mg);
  }
  
-@@ -1649,13 +1649,13 @@ static bool spare_migration_bandwidth(struct cache 
*cache)
+@@ -1654,13 +1654,13 @@ static bool spare_migration_bandwidth(struct cache 
*cache)
  
  static void inc_hit_counter(struct cache *cache, struct bio *bio)
  {
@@ -48581,7 +48489,7 @@ index 2fd4c82..199bd5d 100644
                   &cache->stats.read_miss : &cache->stats.write_miss);
  }
  
-@@ -1828,7 +1828,7 @@ static void process_cell(struct cache *cache, struct 
prealloc *structs,
+@@ -1833,7 +1833,7 @@ static void process_cell(struct cache *cache, struct 
prealloc *structs,
                         */
  
                        if (bio_data_dir(bio) == WRITE) {
@@ -48590,7 +48498,7 @@ index 2fd4c82..199bd5d 100644
                                invalidate(cache, structs, block, 
lookup_result.cblock, new_ocell);
                                release_cell = false;
  
-@@ -1861,14 +1861,14 @@ static void process_cell(struct cache *cache, struct 
prealloc *structs,
+@@ -1866,14 +1866,14 @@ static void process_cell(struct cache *cache, struct 
prealloc *structs,
                break;
  
        case POLICY_NEW:
@@ -48608,7 +48516,7 @@ index 2fd4c82..199bd5d 100644
                demote_then_promote(cache, structs, lookup_result.old_oblock,
                                    block, lookup_result.cblock,
                                    ool.cell, new_ocell);
-@@ -1922,7 +1922,7 @@ static int commit(struct cache *cache, bool 
clean_shutdown)
+@@ -1927,7 +1927,7 @@ static int commit(struct cache *cache, bool 
clean_shutdown)
        if (get_cache_mode(cache) >= CM_READ_ONLY)
                return -EINVAL;
  
@@ -48617,7 +48525,7 @@ index 2fd4c82..199bd5d 100644
        r = dm_cache_commit(cache->cmd, clean_shutdown);
        if (r)
                metadata_operation_failed(cache, "dm_cache_commit", r);
-@@ -2153,32 +2153,32 @@ static void process_invalidation_requests(struct cache 
*cache)
+@@ -2158,32 +2158,32 @@ static void process_invalidation_requests(struct cache 
*cache)
   *--------------------------------------------------------------*/
  static bool is_quiescing(struct cache *cache)
  {
@@ -48656,7 +48564,7 @@ index 2fd4c82..199bd5d 100644
  }
  
  static void wait_for_migrations(struct cache *cache)
-@@ -2865,8 +2865,8 @@ static int cache_create(struct cache_args *ca, struct 
cache **result)
+@@ -2870,8 +2870,8 @@ static int cache_create(struct cache_args *ca, struct 
cache **result)
        init_waitqueue_head(&cache->migration_wait);
  
        init_waitqueue_head(&cache->quiescing_wait);
@@ -48667,7 +48575,7 @@ index 2fd4c82..199bd5d 100644
  
        r = -ENOMEM;
        atomic_set(&cache->nr_dirty, 0);
-@@ -2933,12 +2933,12 @@ static int cache_create(struct cache_args *ca, struct 
cache **result)
+@@ -2938,12 +2938,12 @@ static int cache_create(struct cache_args *ca, struct 
cache **result)
  
        load_stats(cache);
  
@@ -48686,7 +48594,7 @@ index 2fd4c82..199bd5d 100644
  
        spin_lock_init(&cache->invalidation_lock);
        INIT_LIST_HEAD(&cache->invalidation_requests);
-@@ -3548,12 +3548,12 @@ static void cache_status(struct dm_target *ti, 
status_type_t type,
+@@ -3554,12 +3554,12 @@ static void cache_status(struct dm_target *ti, 
status_type_t type,
                       cache->sectors_per_block,
                       (unsigned long long) from_cblock(residency),
                       (unsigned long long) from_cblock(cache->cache_size),
@@ -48883,7 +48791,7 @@ index 797ddb9..9595c24 100644
                                schedule_work(&sc->trigger_event);
                }
 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
-index 061152a..b033201 100644
+index cb5d0da..a06db6d 100644
 --- a/drivers/md/dm-table.c
 +++ b/drivers/md/dm-table.c
 @@ -305,7 +305,7 @@ static int device_area_is_invalid(struct dm_target *ti, 
struct dm_dev *dev,
@@ -48896,7 +48804,7 @@ index 061152a..b033201 100644
                       "start=%llu, len=%llu, dev_size=%llu",
                       dm_device_name(ti->table->md), bdevname(bdev, b),
 diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
-index c219a05..15a27ca 100644
+index 911ada6..85d4750 100644
 --- a/drivers/md/dm-thin-metadata.c
 +++ b/drivers/md/dm-thin-metadata.c
 @@ -405,7 +405,7 @@ static void __setup_btree_details(struct dm_pool_metadata 
*pmd)
@@ -48918,7 +48826,7 @@ index c219a05..15a27ca 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 dd83492..d111dcf 100644
+index c338aeb..671c671 100644
 --- a/drivers/md/dm.c
 +++ b/drivers/md/dm.c
 @@ -194,9 +194,9 @@ struct mapped_device {
@@ -48970,7 +48878,7 @@ index dd83492..d111dcf 100644
  {
        rcu_read_unlock();
  }
-@@ -2317,8 +2321,8 @@ static struct mapped_device *alloc_dev(int minor)
+@@ -2316,8 +2320,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);
@@ -48981,7 +48889,7 @@ index dd83492..d111dcf 100644
        INIT_LIST_HEAD(&md->uevent_list);
        INIT_LIST_HEAD(&md->table_devices);
        spin_lock_init(&md->uevent_lock);
-@@ -2459,7 +2463,7 @@ static void event_callback(void *context)
+@@ -2458,7 +2462,7 @@ static void event_callback(void *context)
  
        dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
  
@@ -48990,7 +48898,7 @@ index dd83492..d111dcf 100644
        wake_up(&md->eventq);
  }
  
-@@ -3402,18 +3406,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum 
kobject_action action,
+@@ -3401,18 +3405,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum 
kobject_action action,
  
  uint32_t dm_next_uevent_seq(struct mapped_device *md)
  {
@@ -49234,7 +49142,7 @@ index 3e6d115..ffecdeb 100644
  /*----------------------------------------------------------------*/
  
 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index c4b9134..6602200 100644
+index 515554c..51df664 100644
 --- a/drivers/md/raid1.c
 +++ b/drivers/md/raid1.c
 @@ -1063,7 +1063,7 @@ static void make_request(struct mddev *mddev, struct bio 
* bio)
@@ -49274,7 +49182,7 @@ index c4b9134..6602200 100644
                                               "md/raid1:%s: read error 
corrected "
                                               "(%d sectors at %llu on %s)\n",
 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index ce959b4..3dff1bc 100644
+index ebb0dd6..2be20c1 100644
 --- a/drivers/md/raid10.c
 +++ b/drivers/md/raid10.c
 @@ -1068,7 +1068,7 @@ static void __make_request(struct mddev *mddev, struct 
bio *bio)
@@ -49355,10 +49263,10 @@ index ce959b4..3dff1bc 100644
  
                        rdev_dec_pending(rdev, mddev);
 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 704ef7f..8799ca3 100644
+index 10ce885..b98e542 100644
 --- a/drivers/md/raid5.c
 +++ b/drivers/md/raid5.c
-@@ -1121,23 +1121,23 @@ async_copy_data(int frombio, struct bio *bio, struct 
page **page,
+@@ -1112,23 +1112,23 @@ async_copy_data(int frombio, struct bio *bio, struct 
page **page,
        struct bio_vec bvl;
        struct bvec_iter iter;
        struct page *bio_page;
@@ -49388,7 +49296,7 @@ index 704ef7f..8799ca3 100644
  
                if (page_offset < 0) {
                        b_offset = -page_offset;
-@@ -2028,6 +2028,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t 
gfp)
+@@ -2019,6 +2019,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t 
gfp)
        return 1;
  }
  
@@ -49399,7 +49307,7 @@ index 704ef7f..8799ca3 100644
  static int grow_stripes(struct r5conf *conf, int num)
  {
        struct kmem_cache *sc;
-@@ -2038,7 +2042,11 @@ static int grow_stripes(struct r5conf *conf, int num)
+@@ -2029,7 +2033,11 @@ static int grow_stripes(struct r5conf *conf, int num)
                        "raid%d-%s", conf->level, mdname(conf->mddev));
        else
                sprintf(conf->cache_name[0],
@@ -49411,7 +49319,7 @@ index 704ef7f..8799ca3 100644
        sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]);
  
        conf->active_name = 0;
-@@ -2329,21 +2337,21 @@ static void raid5_end_read_request(struct bio * bi)
+@@ -2332,21 +2340,21 @@ static void raid5_end_read_request(struct bio * bi)
                                mdname(conf->mddev), STRIPE_SECTORS,
                                (unsigned long long)s,
                                bdevname(rdev->bdev, b));
@@ -49437,7 +49345,7 @@ index 704ef7f..8799ca3 100644
                if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
                        printk_ratelimited(
                                KERN_WARNING
-@@ -2371,7 +2379,7 @@ static void raid5_end_read_request(struct bio * bi)
+@@ -2374,7 +2382,7 @@ static void raid5_end_read_request(struct bio * bi)
                                mdname(conf->mddev),
                                (unsigned long long)s,
                                bdn);
@@ -49446,7 +49354,7 @@ index 704ef7f..8799ca3 100644
                         > conf->max_nr_stripes)
                        printk(KERN_WARNING
                               "md/raid:%s: Too many read errors, failing 
device %s.\n",
-@@ -3743,7 +3751,7 @@ static void handle_parity_checks5(struct r5conf *conf, 
struct stripe_head *sh,
+@@ -3746,7 +3754,7 @@ static void handle_parity_checks5(struct r5conf *conf, 
struct stripe_head *sh,
                         */
                        set_bit(STRIPE_INSYNC, &sh->state);
                else {
@@ -49455,7 +49363,7 @@ index 704ef7f..8799ca3 100644
                        if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery))
                                /* don't try to repair!! */
                                set_bit(STRIPE_INSYNC, &sh->state);
-@@ -3895,7 +3903,7 @@ static void handle_parity_checks6(struct r5conf *conf, 
struct stripe_head *sh,
+@@ -3898,7 +3906,7 @@ static void handle_parity_checks6(struct r5conf *conf, 
struct stripe_head *sh,
                                 */
                        }
                } else {
@@ -50653,10 +50561,10 @@ index 6c3c477..6c435a4 100644
  }
  
 diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 
b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
-index 327e83a..b0963b7 100644
+index f38c076..072bb90 100644
 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
-@@ -450,7 +450,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, 
struct v4l2_buffer32 __user
+@@ -448,7 +448,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, 
struct v4l2_buffer32 __user
                 * by passing a very big num_planes value */
                uplane = compat_alloc_user_space(num_planes *
                                                sizeof(struct v4l2_plane));
@@ -50665,7 +50573,7 @@ index 327e83a..b0963b7 100644
  
                while (--num_planes >= 0) {
                        ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
-@@ -521,7 +521,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, 
struct v4l2_buffer32 __user
+@@ -518,7 +518,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, 
struct v4l2_buffer32 __user
                if (num_planes == 0)
                        return 0;
  
@@ -50674,7 +50582,7 @@ index 327e83a..b0963b7 100644
                if (get_user(p, &up->m.planes))
                        return -EFAULT;
                uplane32 = compat_ptr(p);
-@@ -585,7 +585,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer 
*kp, struct v4l2_frame
+@@ -580,7 +580,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer 
*kp, struct v4l2_frame
                get_user(kp->flags, &up->flags) ||
                copy_from_user(&kp->fmt, &up->fmt, sizeof(up->fmt)))
                        return -EFAULT;
@@ -50683,7 +50591,7 @@ index 327e83a..b0963b7 100644
        return 0;
  }
  
-@@ -691,7 +691,7 @@ static int get_v4l2_ext_controls32(struct 
v4l2_ext_controls *kp, struct v4l2_ext
+@@ -686,7 +686,7 @@ static int get_v4l2_ext_controls32(struct 
v4l2_ext_controls *kp, struct v4l2_ext
                        n * sizeof(struct v4l2_ext_control32)))
                return -EFAULT;
        kcontrols = compat_alloc_user_space(n * sizeof(struct 
v4l2_ext_control));
@@ -50692,7 +50600,7 @@ index 327e83a..b0963b7 100644
        while (--n >= 0) {
                u32 id;
  
-@@ -718,7 +718,7 @@ static int put_v4l2_ext_controls32(struct 
v4l2_ext_controls *kp, struct v4l2_ext
+@@ -713,7 +713,7 @@ static int put_v4l2_ext_controls32(struct 
v4l2_ext_controls *kp, struct v4l2_ext
  {
        struct v4l2_ext_control32 __user *ucontrols;
        struct v4l2_ext_control __user *kcontrols =
@@ -50701,7 +50609,7 @@ index 327e83a..b0963b7 100644
        int n = kp->count;
        compat_caddr_t p;
  
-@@ -803,7 +803,7 @@ static int get_v4l2_edid32(struct v4l2_edid *kp, struct 
v4l2_edid32 __user *up)
+@@ -798,7 +798,7 @@ static int get_v4l2_edid32(struct v4l2_edid *kp, struct 
v4l2_edid32 __user *up)
                get_user(tmp, &up->edid) ||
                copy_from_user(kp->reserved, up->reserved, 
sizeof(kp->reserved)))
                        return -EFAULT;
@@ -55274,12 +55182,12 @@ index be35da2..ec16cdb 100644
         * Boxes that should not use MSI for PCIe PME signaling.
         */
 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
-index edb1984..dda9a083 100644
+index 7aafb5f..8fbfd44 100644
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -179,7 +179,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type 
type,
-       u16 orig_cmd;
-       struct pci_bus_region region, inverted_region;
+@@ -182,7 +182,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type 
type,
+       if (dev->non_compliant_bars)
+               return 0;
  
 -      mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
 +      mask = type ? (u32)PCI_ROM_ADDRESS_MASK : ~0;
@@ -56028,7 +55936,7 @@ index 302e626..12579af 100644
                da->attr.name = info->pin_config[i].name;
                da->attr.mode = 0644;
 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
-index 73b7683..8ccd43b 100644
+index 7b94b8e..1b35017 100644
 --- a/drivers/regulator/core.c
 +++ b/drivers/regulator/core.c
 @@ -3842,7 +3842,7 @@ regulator_register(const struct regulator_desc 
*regulator_desc,
@@ -56717,7 +56625,7 @@ index 4d1c511..d5744cb 100644
  
        wait_queue_head_t reset_wq;
 diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
-index 536cd5a..86dbbf2 100644
+index 43ac626..1bf014e9 100644
 --- a/drivers/scsi/ipr.c
 +++ b/drivers/scsi/ipr.c
 @@ -1057,7 +1057,7 @@ static int ipr_get_hrrq_index(struct ipr_ioa_cfg 
*ioa_cfg)
@@ -56729,7 +56637,7 @@ index 536cd5a..86dbbf2 100644
                hrrq = (hrrq % (ioa_cfg->hrrq_num - 1)) + 1;
        }
        return hrrq;
-@@ -8103,9 +8103,9 @@ static void ipr_init_ioa_mem(struct ipr_ioa_cfg *ioa_cfg)
+@@ -8107,9 +8107,9 @@ static void ipr_init_ioa_mem(struct ipr_ioa_cfg *ioa_cfg)
  
        ioa_cfg->identify_hrrq_index = 0;
        if (ioa_cfg->hrrq_num == 1)
@@ -57517,7 +57425,7 @@ index e3cd3ec..00560ec 100644
  
        transport_setup_device(&rport->dev);
 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index bb669d3..2074023 100644
+index cc84ea7..92bb10f 100644
 --- a/drivers/scsi/sd.c
 +++ b/drivers/scsi/sd.c
 @@ -112,7 +112,7 @@ static int sd_resume(struct device *);
@@ -57548,10 +57456,10 @@ index bb669d3..2074023 100644
        if (!sdp->request_queue->rq_timeout) {
                if (sdp->type != TYPE_MOD)
 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
-index 5e82067..8f7c2cc 100644
+index ae7d9bd..77e1f04 100644
 --- a/drivers/scsi/sg.c
 +++ b/drivers/scsi/sg.c
-@@ -1089,7 +1089,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, 
unsigned long arg)
+@@ -1090,7 +1090,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, 
unsigned long arg)
                                       sdp->disk->disk_name,
                                       MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
                                       NULL,
@@ -60231,20 +60139,6 @@ index db322d9..f0f4bc1 100644
  
        if (!left--) {
                if (instance->disconnected)
-diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
-index fa4e239..d37fdcc 100644
---- a/drivers/usb/class/cdc-acm.c
-+++ b/drivers/usb/class/cdc-acm.c
-@@ -1114,6 +1114,9 @@ static int acm_probe(struct usb_interface *intf,
-       if (quirks == NO_UNION_NORMAL) {
-               data_interface = usb_ifnum_to_if(usb_dev, 1);
-               control_interface = usb_ifnum_to_if(usb_dev, 0);
-+              /* we would crash */
-+              if (!data_interface || !control_interface)
-+                      return -ENODEV;
-               goto skip_normal_probe;
-       }
- 
 diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
 index ccfaba9..523f476 100644
 --- a/drivers/usb/class/cdc-acm.h
@@ -60338,27 +60232,6 @@ index 38ae877c..9bf9e7d 100644
                        __create_pipe(ps->dev, uurb->endpoint & 0xf) |
                        (uurb->endpoint & USB_DIR_IN);
  
-diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
-index 56593a9..2057d91 100644
---- a/drivers/usb/core/driver.c
-+++ b/drivers/usb/core/driver.c
-@@ -502,11 +502,15 @@ static int usb_unbind_interface(struct device *dev)
- int usb_driver_claim_interface(struct usb_driver *driver,
-                               struct usb_interface *iface, void *priv)
- {
--      struct device *dev = &iface->dev;
-+      struct device *dev;
-       struct usb_device *udev;
-       int retval = 0;
-       int lpm_disable_error;
- 
-+      if (!iface)
-+              return -ENODEV;
-+
-+      dev = &iface->dev;
-       if (dev->driver)
-               return -EBUSY;
- 
 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
 index 1c102d6..d15688e 100644
 --- a/drivers/usb/core/hcd.c
@@ -60382,7 +60255,7 @@ index 1c102d6..d15688e 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 1560f3f..ba76922 100644
+index 2a27488..436ee88 100644
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
 @@ -26,6 +26,7 @@
@@ -60393,7 +60266,7 @@ index 1560f3f..ba76922 100644
  
  #include <asm/uaccess.h>
  #include <asm/byteorder.h>
-@@ -4711,6 +4712,10 @@ static void hub_port_connect(struct usb_hub *hub, int 
port1, u16 portstatus,
+@@ -4717,6 +4718,10 @@ static void hub_port_connect(struct usb_hub *hub, int 
port1, u16 portstatus,
                        goto done;
                return;
        }
@@ -60783,23 +60656,6 @@ index a0a3827..d7ec10b 100644
        memset(&props, 0, sizeof(struct backlight_properties));
        props.type = BACKLIGHT_RAW;
        props.max_brightness = 0xff;
-diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
-index c6bfd13..1950e87 100644
---- a/drivers/usb/misc/iowarrior.c
-+++ b/drivers/usb/misc/iowarrior.c
-@@ -787,6 +787,12 @@ static int iowarrior_probe(struct usb_interface 
*interface,
-       iface_desc = interface->cur_altsetting;
-       dev->product_id = le16_to_cpu(udev->descriptor.idProduct);
- 
-+      if (iface_desc->desc.bNumEndpoints < 1) {
-+              dev_err(&interface->dev, "Invalid number of endpoints\n");
-+              retval = -EINVAL;
-+              goto error;
-+      }
-+
-       /* set up the endpoint information */
-       for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
-               endpoint = &iface_desc->endpoint[i].desc;
 diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
 index 3806e70..55c508b 100644
 --- a/drivers/usb/serial/console.c
@@ -80180,21 +80036,10 @@ index a7a1b21..023d87a 100644
                /*
                 * We'll have a dentry and an inode for
 diff --git a/fs/coredump.c b/fs/coredump.c
-index 1777331..400d71c 100644
+index dfc87c5..9e773ba 100644
 --- a/fs/coredump.c
 +++ b/fs/coredump.c
-@@ -32,6 +32,10 @@
- #include <linux/pipe_fs_i.h>
- #include <linux/oom.h>
- #include <linux/compat.h>
-+#include <linux/sched.h>
-+#include <linux/fs.h>
-+#include <linux/path.h>
-+#include <linux/timekeeping.h>
- 
- #include <asm/uaccess.h>
- #include <asm/mmu_context.h>
-@@ -456,8 +460,8 @@ static void wait_for_dump_helpers(struct file *file)
+@@ -459,8 +459,8 @@ static void wait_for_dump_helpers(struct file *file)
        struct pipe_inode_info *pipe = file->private_data;
  
        pipe_lock(pipe);
@@ -80205,7 +80050,7 @@ index 1777331..400d71c 100644
        wake_up_interruptible_sync(&pipe->wait);
        kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
        pipe_unlock(pipe);
-@@ -466,11 +470,11 @@ static void wait_for_dump_helpers(struct file *file)
+@@ -469,11 +469,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().
         */
@@ -80220,7 +80065,7 @@ index 1777331..400d71c 100644
        pipe_unlock(pipe);
  }
  
-@@ -517,7 +521,9 @@ void do_coredump(const siginfo_t *siginfo)
+@@ -520,7 +520,9 @@ void do_coredump(const siginfo_t *siginfo)
        /* require nonrelative corefile path and be extra careful */
        bool need_suid_safe = false;
        bool core_dumped = false;
@@ -80231,7 +80076,7 @@ index 1777331..400d71c 100644
        struct coredump_params cprm = {
                .siginfo = siginfo,
                .regs = signal_pt_regs(),
-@@ -530,12 +536,17 @@ void do_coredump(const siginfo_t *siginfo)
+@@ -533,12 +535,17 @@ void do_coredump(const siginfo_t *siginfo)
                .mm_flags = mm->flags,
        };
  
@@ -80251,7 +80096,7 @@ index 1777331..400d71c 100644
                goto fail;
  
        cred = prepare_creds();
-@@ -553,7 +564,7 @@ void do_coredump(const siginfo_t *siginfo)
+@@ -556,7 +563,7 @@ void do_coredump(const siginfo_t *siginfo)
                need_suid_safe = true;
        }
  
@@ -80260,7 +80105,7 @@ index 1777331..400d71c 100644
        if (retval < 0)
                goto fail_creds;
  
-@@ -596,7 +607,7 @@ void do_coredump(const siginfo_t *siginfo)
+@@ -599,7 +606,7 @@ void do_coredump(const siginfo_t *siginfo)
                }
                cprm.limit = RLIM_INFINITY;
  
@@ -80269,18 +80114,16 @@ index 1777331..400d71c 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);
-@@ -627,6 +638,10 @@ void do_coredump(const siginfo_t *siginfo)
-               }
-       } else {
-               struct inode *inode;
-+              int open_flags = O_CREAT | O_RDWR | O_NOFOLLOW |
-+                               O_LARGEFILE | O_EXCL;
-+
-+              gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 
1);
+@@ -633,6 +640,8 @@ void do_coredump(const siginfo_t *siginfo)
+               int open_flags = O_CREAT | O_RDWR | O_NOFOLLOW |
+                                O_LARGEFILE | O_EXCL;
  
++              gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 
1);
++
                if (cprm.limit < binfmt->min_coredump)
                        goto fail_unlock;
-@@ -653,7 +668,7 @@ void do_coredump(const siginfo_t *siginfo)
+ 
+@@ -658,7 +667,7 @@ void do_coredump(const siginfo_t *siginfo)
                         * If it doesn't exist, that's fine. If there's some
                         * other problem, we'll catch it at the filp_open().
                         */
@@ -80289,39 +80132,7 @@ index 1777331..400d71c 100644
                        set_fs(old_fs);
                }
  
-@@ -665,10 +680,27 @@ void do_coredump(const siginfo_t *siginfo)
-                * what matters is that at least one of the two processes
-                * writes its coredump successfully, not which one.
-                */
--              cprm.file = filp_open(cn.corename,
--                               O_CREAT | 2 | O_NOFOLLOW |
--                               O_LARGEFILE | O_EXCL,
--                               0600);
-+              if (need_suid_safe) {
-+                      /*
-+                       * Using user namespaces, normal user tasks can change
-+                       * their current->fs->root to point to arbitrary
-+                       * directories. Since the intention of the "only dump
-+                       * with a fully qualified path" rule is to control where
-+                       * coredumps may be placed using root privileges,
-+                       * current->fs->root must not be used. Instead, use the
-+                       * root directory of init_task.
-+                       */
-+                      struct path root;
-+
-+                      task_lock(&init_task);
-+                      get_fs_root(init_task.fs, &root);
-+                      task_unlock(&init_task);
-+                      cprm.file = file_open_root(root.dentry, root.mnt,
-+                              cn.corename, open_flags, 0600);
-+                      path_put(&root);
-+              } else {
-+                      cprm.file = filp_open(cn.corename, open_flags, 0600);
-+              }
-               if (IS_ERR(cprm.file))
-                       goto fail_unlock;
- 
-@@ -717,7 +749,7 @@ close_fail:
+@@ -739,7 +748,7 @@ close_fail:
                filp_close(cprm.file, NULL);
  fail_dropcount:
        if (ispipe)
@@ -80330,7 +80141,7 @@ index 1777331..400d71c 100644
  fail_unlock:
        kfree(cn.corename);
        coredump_finish(mm, core_dumped);
-@@ -738,6 +770,8 @@ int dump_emit(struct coredump_params *cprm, const void 
*addr, int nr)
+@@ -760,6 +769,8 @@ int dump_emit(struct coredump_params *cprm, const void 
*addr, int nr)
        struct file *file = cprm->file;
        loff_t pos = file->f_pos;
        ssize_t n;
@@ -82429,7 +82240,7 @@ index ee85cd4..9dd0d20 100644
  }
  EXPORT_SYMBOL(__f_setown);
 diff --git a/fs/fhandle.c b/fs/fhandle.c
-index d59712d..0c5456e 100644
+index ca3c3dd..0c5456e 100644
 --- a/fs/fhandle.c
 +++ b/fs/fhandle.c
 @@ -8,6 +8,7 @@
@@ -82468,15 +82279,6 @@ index d59712d..0c5456e 100644
                           f_handle.handle_bytes)) {
                retval = -EFAULT;
                goto out_handle;
-@@ -228,7 +228,7 @@ long do_handle_open(int mountdirfd,
-               path_put(&path);
-               return fd;
-       }
--      file = file_open_root(path.dentry, path.mnt, "", open_flag);
-+      file = file_open_root(path.dentry, path.mnt, "", open_flag, 0);
-       if (IS_ERR(file)) {
-               put_unused_fd(fd);
-               retval =  PTR_ERR(file);
 diff --git a/fs/file.c b/fs/file.c
 index 39f8f15..898d887 100644
 --- a/fs/file.c
@@ -82569,10 +82371,10 @@ index 5797d45..7d7d79a 100644
  
        if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
 diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
-index 7a8ea13..f7a17db 100644
+index 60d6fc2..dffa2ca 100644
 --- a/fs/fs-writeback.c
 +++ b/fs/fs-writeback.c
-@@ -880,9 +880,9 @@ fs_initcall(cgroup_writeback_init);
+@@ -882,9 +882,9 @@ fs_initcall(cgroup_writeback_init);
  #else /* CONFIG_CGROUP_WRITEBACK */
  
  static struct bdi_writeback *
@@ -82584,7 +82386,7 @@ index 7a8ea13..f7a17db 100644
  {
        struct bdi_writeback *wb = inode_to_wb(inode);
  
-@@ -891,8 +891,8 @@ locked_inode_to_wb_and_lock_list(struct inode *inode)
+@@ -893,8 +893,8 @@ locked_inode_to_wb_and_lock_list(struct inode *inode)
        return wb;
  }
  
@@ -82594,7 +82396,7 @@ index 7a8ea13..f7a17db 100644
  {
        struct bdi_writeback *wb = inode_to_wb(inode);
  
-@@ -1136,9 +1136,8 @@ static int write_inode(struct inode *inode, struct 
writeback_control *wbc)
+@@ -1138,9 +1138,8 @@ static int write_inode(struct inode *inode, struct 
writeback_control *wbc)
   * Wait for writeback on an inode to complete. Called with i_lock held.
   * Caller must make sure inode cannot go away when we drop i_lock.
   */
@@ -82605,7 +82407,7 @@ index 7a8ea13..f7a17db 100644
  {
        DEFINE_WAIT_BIT(wq, &inode->i_state, __I_SYNC);
        wait_queue_head_t *wqh;
-@@ -1167,8 +1166,8 @@ void inode_wait_for_writeback(struct inode *inode)
+@@ -1169,8 +1168,8 @@ void inode_wait_for_writeback(struct inode *inode)
   * held and drops it. It is aimed for callers not holding any inode reference
   * so once i_lock is dropped, inode can go away.
   */
@@ -84157,7 +83959,7 @@ index 7cfa0aa..d5ef97b7 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 8e3ee19..5a0b7b2 100644
+index c5b6b71..3949af6 100644
 --- a/fs/fuse/cuse.c
 +++ b/fs/fuse/cuse.c
 @@ -611,10 +611,12 @@ static int __init cuse_init(void)
@@ -85502,10 +85304,10 @@ index 9dea85f..ceb98c9 100644
  
  /*
 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
-index a9f096c..fa0310f 100644
+index 7d5351c..144fc32 100644
 --- a/fs/nfsd/nfs4proc.c
 +++ b/fs/nfsd/nfs4proc.c
-@@ -1485,7 +1485,7 @@ struct nfsd4_operation {
+@@ -1486,7 +1486,7 @@ struct nfsd4_operation {
        nfsd4op_rsize op_rsize_bop;
        stateid_getter op_get_currentstateid;
        stateid_setter op_set_currentstateid;
@@ -85515,10 +85317,10 @@ index a9f096c..fa0310f 100644
  static struct nfsd4_operation nfsd4_ops[];
  
 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
-index 51c9e9c..82dc067 100644
+index 1293520..4cc2062 100644
 --- a/fs/nfsd/nfs4xdr.c
 +++ b/fs/nfsd/nfs4xdr.c
-@@ -1704,7 +1704,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, 
void *p)
+@@ -1706,7 +1706,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, 
void *p)
  
  typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
  
@@ -86010,7 +85812,7 @@ index 2de4c8a..a106a0d 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 b6f1e96..c16baf7 100644
+index 6a24f98..c16baf7 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -32,6 +32,8 @@
@@ -86114,24 +85916,7 @@ index b6f1e96..c16baf7 100644
  retry_deleg:
        newattrs.ia_valid =  ATTR_CTIME;
        if (user != (uid_t) -1) {
-@@ -995,14 +1032,12 @@ struct file *filp_open(const char *filename, int flags, 
umode_t mode)
- EXPORT_SYMBOL(filp_open);
- 
- struct file *file_open_root(struct dentry *dentry, struct vfsmount *mnt,
--                          const char *filename, int flags)
-+                          const char *filename, int flags, umode_t mode)
- {
-       struct open_flags op;
--      int err = build_open_flags(flags, 0, &op);
-+      int err = build_open_flags(flags, mode, &op);
-       if (err)
-               return ERR_PTR(err);
--      if (flags & O_CREAT)
--              return ERR_PTR(-EINVAL);
-       return do_file_open_root(dentry, mnt, filename, &op);
- }
- EXPORT_SYMBOL(file_open_root);
-@@ -1029,6 +1064,7 @@ long do_sys_open(int dfd, const char __user *filename, 
int flags, umode_t mode)
+@@ -1027,6 +1064,7 @@ long do_sys_open(int dfd, const char __user *filename, 
int flags, umode_t mode)
                } else {
                        fsnotify_open(f);
                        fd_install(fd, f);
@@ -88706,10 +88491,10 @@ index e85664b..ad62e5f 100644
  {
        const struct seq_operations *op = ((struct seq_file 
*)file->private_data)->op;
 diff --git a/fs/splice.c b/fs/splice.c
-index 4cf700d..e7216fc 100644
+index 0f77e96..9dce13e 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -192,7 +192,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
+@@ -195,7 +195,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
        pipe_lock(pipe);
  
        for (;;) {
@@ -88718,7 +88503,7 @@ index 4cf700d..e7216fc 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -215,7 +215,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
+@@ -218,7 +218,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
                        page_nr++;
                        ret += buf->len;
  
@@ -88727,7 +88512,7 @@ index 4cf700d..e7216fc 100644
                                do_wakeup = 1;
  
                        if (!--spd->nr_pages)
-@@ -246,9 +246,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
+@@ -249,9 +249,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
                        do_wakeup = 0;
                }
  
@@ -88739,7 +88524,7 @@ index 4cf700d..e7216fc 100644
        }
  
        pipe_unlock(pipe);
-@@ -579,7 +579,7 @@ static ssize_t kernel_readv(struct file *file, const 
struct iovec *vec,
+@@ -582,7 +582,7 @@ static ssize_t kernel_readv(struct file *file, const 
struct iovec *vec,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -88748,7 +88533,7 @@ index 4cf700d..e7216fc 100644
        set_fs(old_fs);
  
        return res;
-@@ -594,7 +594,7 @@ ssize_t kernel_write(struct file *file, const char *buf, 
size_t count,
+@@ -597,7 +597,7 @@ ssize_t kernel_write(struct file *file, const char *buf, 
size_t count,
        old_fs = get_fs();
        set_fs(get_ds());
        /* The cast to a user pointer is valid due to the set_fs() */
@@ -88757,7 +88542,7 @@ index 4cf700d..e7216fc 100644
        set_fs(old_fs);
  
        return res;
-@@ -647,7 +647,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t 
*ppos,
+@@ -650,7 +650,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t 
*ppos,
                        goto err;
  
                this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
@@ -88766,7 +88551,7 @@ index 4cf700d..e7216fc 100644
                vec[i].iov_len = this_len;
                spd.pages[i] = page;
                spd.nr_pages++;
-@@ -786,7 +786,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info 
*pipe, struct splice_des
+@@ -789,7 +789,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info 
*pipe, struct splice_des
                        ops->release(pipe, buf);
                        pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
                        pipe->nrbufs--;
@@ -88775,7 +88560,7 @@ index 4cf700d..e7216fc 100644
                                sd->need_wakeup = true;
                }
  
-@@ -817,10 +817,10 @@ static int splice_from_pipe_next(struct pipe_inode_info 
*pipe, struct splice_des
+@@ -820,10 +820,10 @@ static int splice_from_pipe_next(struct pipe_inode_info 
*pipe, struct splice_des
                return -ERESTARTSYS;
  
        while (!pipe->nrbufs) {
@@ -88788,7 +88573,7 @@ index 4cf700d..e7216fc 100644
                        return 0;
  
                if (sd->flags & SPLICE_F_NONBLOCK)
-@@ -1036,7 +1036,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, 
struct file *out,
+@@ -1039,7 +1039,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, 
struct file *out,
                                ops->release(pipe, buf);
                                pipe->curbuf = (pipe->curbuf + 1) & 
(pipe->buffers - 1);
                                pipe->nrbufs--;
@@ -88797,7 +88582,7 @@ index 4cf700d..e7216fc 100644
                                        sd.need_wakeup = true;
                        } else {
                                buf->offset += ret;
-@@ -1196,7 +1196,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct 
splice_desc *sd,
+@@ -1199,7 +1199,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct 
splice_desc *sd,
                 * out of the pipe right after the splice_to_pipe(). So set
                 * PIPE_READERS appropriately.
                 */
@@ -88806,7 +88591,7 @@ index 4cf700d..e7216fc 100644
  
                current->splice_pipe = pipe;
        }
-@@ -1503,6 +1503,7 @@ static int get_iovec_page_array(const struct iovec 
__user *iov,
+@@ -1506,6 +1506,7 @@ static int get_iovec_page_array(const struct iovec 
__user *iov,
  
                        partial[buffers].offset = off;
                        partial[buffers].len = plen;
@@ -88814,7 +88599,7 @@ index 4cf700d..e7216fc 100644
  
                        off = 0;
                        len -= plen;
-@@ -1734,9 +1735,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, 
unsigned int flags)
+@@ -1737,9 +1738,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, 
unsigned int flags)
                        ret = -ERESTARTSYS;
                        break;
                }
@@ -88826,7 +88611,7 @@ index 4cf700d..e7216fc 100644
                        if (flags & SPLICE_F_NONBLOCK) {
                                ret = -EAGAIN;
                                break;
-@@ -1768,7 +1769,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, 
unsigned int flags)
+@@ -1771,7 +1772,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, 
unsigned int flags)
        pipe_lock(pipe);
  
        while (pipe->nrbufs >= pipe->buffers) {
@@ -88835,7 +88620,7 @@ index 4cf700d..e7216fc 100644
                        send_sig(SIGPIPE, current, 0);
                        ret = -EPIPE;
                        break;
-@@ -1781,9 +1782,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, 
unsigned int flags)
+@@ -1784,9 +1785,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, 
unsigned int flags)
                        ret = -ERESTARTSYS;
                        break;
                }
@@ -88847,7 +88632,7 @@ index 4cf700d..e7216fc 100644
        }
  
        pipe_unlock(pipe);
-@@ -1819,14 +1820,14 @@ retry:
+@@ -1822,14 +1823,14 @@ retry:
        pipe_double_lock(ipipe, opipe);
  
        do {
@@ -88864,7 +88649,7 @@ index 4cf700d..e7216fc 100644
                        break;
  
                /*
-@@ -1923,7 +1924,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
+@@ -1926,7 +1927,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
        pipe_double_lock(ipipe, opipe);
  
        do {
@@ -88873,7 +88658,7 @@ index 4cf700d..e7216fc 100644
                        send_sig(SIGPIPE, current, 0);
                        if (!ret)
                                ret = -EPIPE;
-@@ -1968,7 +1969,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
+@@ -1971,7 +1972,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
         * return EAGAIN if we have the potential of some data in the
         * future, otherwise just return 0
         */
@@ -101849,10 +101634,10 @@ index 8609d57..86e4d79 100644
        int (*generic_packet) (struct cdrom_device_info *,
                               struct packet_command *);
 diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h
-index 8e30fae..38632f8 100644
+index a7c7f74..0f1870f 100644
 --- a/include/linux/cgroup-defs.h
 +++ b/include/linux/cgroup-defs.h
-@@ -413,7 +413,7 @@ struct cftype {
+@@ -416,7 +416,7 @@ struct cftype {
  #ifdef CONFIG_DEBUG_LOCK_ALLOC
        struct lock_class_key   lockdep_key;
  #endif
@@ -102677,7 +102462,7 @@ index 5295535..9852c7e 100644
  int iterate_fd(struct files_struct *, unsigned,
                int (*)(const void *, struct file *, unsigned),
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 3aa5142..264567c 100644
+index 22c5a0c..264567c 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
 @@ -439,7 +439,7 @@ struct address_space {
@@ -102744,15 +102529,6 @@ index 3aa5142..264567c 100644
  
  struct inode_operations {
        struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned 
int);
-@@ -2217,7 +2218,7 @@ extern long do_sys_open(int dfd, const char __user 
*filename, int flags,
- extern struct file *file_open_name(struct filename *, int, umode_t);
- extern struct file *filp_open(const char *, int, umode_t);
- extern struct file *file_open_root(struct dentry *, struct vfsmount *,
--                                 const char *, int);
-+                                 const char *, int, umode_t);
- extern struct file * dentry_open(const struct path *, int, const struct cred 
*);
- extern int filp_close(struct file *, fl_owner_t id);
- 
 @@ -2336,7 +2337,7 @@ extern int register_chrdev_region(dev_t, unsigned, const 
char *);
  extern int __register_chrdev(unsigned int major, unsigned int baseminor,
                             unsigned int count, const char *name,
@@ -107964,7 +107740,7 @@ index ff307b5..f1a4468 100644
  
  #endif /* _LINUX_THREAD_INFO_H */
 diff --git a/include/linux/tty.h b/include/linux/tty.h
-index 6b6e811..616acad 100644
+index 3bf03b6..340cab9 100644
 --- a/include/linux/tty.h
 +++ b/include/linux/tty.h
 @@ -225,7 +225,7 @@ struct tty_port {
@@ -110972,10 +110748,10 @@ index 45432b5..988f1e4 100644
 +}
 +EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index fb1ecfd..f6add73 100644
+index dc94f8b..ccd3aea 100644
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
-@@ -3346,7 +3346,7 @@ static int cgroup_add_file(struct cgroup_subsys_state 
*css, struct cgroup *cgrp,
+@@ -3354,7 +3354,7 @@ static int cgroup_add_file(struct cgroup_subsys_state 
*css, struct cgroup *cgrp,
        key = &cft->lockdep_key;
  #endif
        kn = __kernfs_create_file(cgrp->kn, cgroup_file_name(cgrp, cft, name),
@@ -110984,7 +110760,7 @@ index fb1ecfd..f6add73 100644
                                  NULL, key);
        if (IS_ERR(kn))
                return PTR_ERR(kn);
-@@ -3450,11 +3450,14 @@ static void cgroup_exit_cftypes(struct cftype *cfts)
+@@ -3458,11 +3458,14 @@ static void cgroup_exit_cftypes(struct cftype *cfts)
                /* free copy for custom atomic_write_len, see init_cftypes() */
                if (cft->max_write_len && cft->max_write_len != PAGE_SIZE)
                        kfree(cft->kf_ops);
@@ -111002,7 +110778,7 @@ index fb1ecfd..f6add73 100644
        }
  }
  
-@@ -3485,8 +3488,10 @@ static int cgroup_init_cftypes(struct cgroup_subsys 
*ss, struct cftype *cfts)
+@@ -3493,8 +3496,10 @@ static int cgroup_init_cftypes(struct cgroup_subsys 
*ss, struct cftype *cfts)
                        kf_ops->atomic_write_len = cft->max_write_len;
                }
  
@@ -111015,7 +110791,7 @@ index fb1ecfd..f6add73 100644
        }
  
        return 0;
-@@ -3499,7 +3504,7 @@ static int cgroup_rm_cftypes_locked(struct cftype *cfts)
+@@ -3507,7 +3512,7 @@ static int cgroup_rm_cftypes_locked(struct cftype *cfts)
        if (!cfts || !cfts[0].ss)
                return -ENOENT;
  
@@ -111024,7 +110800,7 @@ index fb1ecfd..f6add73 100644
        cgroup_apply_cftypes(cfts, false);
        cgroup_exit_cftypes(cfts);
        return 0;
-@@ -3556,7 +3561,7 @@ static int cgroup_add_cftypes(struct cgroup_subsys *ss, 
struct cftype *cfts)
+@@ -3564,7 +3569,7 @@ static int cgroup_add_cftypes(struct cgroup_subsys *ss, 
struct cftype *cfts)
  
        mutex_lock(&cgroup_mutex);
  
@@ -111033,7 +110809,7 @@ index fb1ecfd..f6add73 100644
        ret = cgroup_apply_cftypes(cfts, true);
        if (ret)
                cgroup_rm_cftypes_locked(cfts);
-@@ -3577,8 +3582,10 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, 
struct cftype *cfts)
+@@ -3585,8 +3590,10 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, 
struct cftype *cfts)
  {
        struct cftype *cft;
  
@@ -111045,7 +110821,7 @@ index fb1ecfd..f6add73 100644
        return cgroup_add_cftypes(ss, cfts);
  }
  
-@@ -3594,8 +3601,10 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, 
struct cftype *cfts)
+@@ -3602,8 +3609,10 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, 
struct cftype *cfts)
  {
        struct cftype *cft;
  
@@ -111057,7 +110833,7 @@ index fb1ecfd..f6add73 100644
        return cgroup_add_cftypes(ss, cfts);
  }
  
-@@ -5738,6 +5747,9 @@ static void cgroup_release_agent(struct work_struct 
*work)
+@@ -5754,6 +5763,9 @@ static void cgroup_release_agent(struct work_struct 
*work)
        if (!pathbuf || !agentbuf)
                goto out;
  
@@ -111067,7 +110843,7 @@ index fb1ecfd..f6add73 100644
        path = cgroup_path(cgrp, pathbuf, PATH_MAX);
        if (!path)
                goto out;
-@@ -5913,7 +5925,7 @@ static int cgroup_css_links_read(struct seq_file *seq, 
void *v)
+@@ -5929,7 +5941,7 @@ static int cgroup_css_links_read(struct seq_file *seq, 
void *v)
                struct task_struct *task;
                int count = 0;
  
@@ -111486,7 +111262,7 @@ index 41213454..861e178 100644
  #ifdef CONFIG_MODULE_UNLOAD
                {
 diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 1087bbe..d0f51f0 100644
+index faf2067..d7d38d0 100644
 --- a/kernel/events/core.c
 +++ b/kernel/events/core.c
 @@ -175,8 +175,15 @@ static struct srcu_struct pmus_srcu;
@@ -111596,7 +111372,7 @@ index 1087bbe..d0f51f0 100644
  
        event->state            = PERF_EVENT_STATE_INACTIVE;
  
-@@ -8265,6 +8272,11 @@ SYSCALL_DEFINE5(perf_event_open,
+@@ -8268,6 +8275,11 @@ SYSCALL_DEFINE5(perf_event_open,
        if (flags & ~PERF_FLAG_ALL)
                return -EINVAL;
  
@@ -111608,7 +111384,7 @@ index 1087bbe..d0f51f0 100644
        err = perf_copy_attr(attr_uptr, &attr);
        if (err)
                return err;
-@@ -8736,10 +8748,10 @@ static void sync_child_event(struct perf_event 
*child_event,
+@@ -8735,10 +8747,10 @@ static void sync_child_event(struct perf_event 
*child_event,
        /*
         * Add back the child's count to the parent's count:
         */
@@ -115171,7 +114947,7 @@ index 750ed60..eb01466 100644
  #ifdef CONFIG_RT_GROUP_SCHED
        /*
 diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index eb70592..d5c8eb1 100644
+index 70e5e09..87f2797 100644
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
 @@ -2162,7 +2162,7 @@ void set_numabalancing_state(bool enabled)
@@ -115358,7 +115134,7 @@ index cfdc0e6..71f2abd 100644
        struct rq *this_rq = this_rq();
        enum cpu_idle_type idle = this_rq->idle_balance ?
 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index b242775..b497b69 100644
+index 0517abd..b185177 100644
 --- a/kernel/sched/sched.h
 +++ b/kernel/sched/sched.h
 @@ -1228,7 +1228,7 @@ struct sched_class {
@@ -116251,19 +116027,6 @@ index dc6858d..93aa01c 100644
 +EXPORT_SYMBOL(proc_dostring_modpriv);
  EXPORT_SYMBOL(proc_doulongvec_minmax);
  EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
-diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c
-index 7e7746a..10a1d7d 100644
---- a/kernel/sysctl_binary.c
-+++ b/kernel/sysctl_binary.c
-@@ -1321,7 +1321,7 @@ static ssize_t binary_sysctl(const int *name, int nlen,
-       }
- 
-       mnt = task_active_pid_ns(current)->proc_mnt;
--      file = file_open_root(mnt->mnt_root, mnt, pathname, flags);
-+      file = file_open_root(mnt->mnt_root, mnt, pathname, flags, 0);
-       result = PTR_ERR(file);
-       if (IS_ERR(file))
-               goto out_putname;
 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
 index 21f82c2..c1984e5 100644
 --- a/kernel/taskstats.c
@@ -117060,7 +116823,7 @@ index 9c6045a..927be25 100644
                *data_page = bpage;
  
 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index d929340..e0e84ca 100644
+index 8305cbb..c0d281a 100644
 --- a/kernel/trace/trace.c
 +++ b/kernel/trace/trace.c
 @@ -3546,7 +3546,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 
mask, int set)
@@ -117333,7 +117096,7 @@ index c8eac43..4b5f08f 100644
        memcpy(&uts_table, table, sizeof(uts_table));
        uts_table.data = get_uts(table, write);
 diff --git a/kernel/watchdog.c b/kernel/watchdog.c
-index 18f34cf..e7513f2 100644
+index 198137b..cde169b 100644
 --- a/kernel/watchdog.c
 +++ b/kernel/watchdog.c
 @@ -664,7 +664,7 @@ static int watchdog_nmi_enable(unsigned int cpu) { return 
0; }
@@ -119037,7 +118800,7 @@ index c889fcb..f181221 100644
        if (end == start)
                return error;
 diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index ee6acd2..e83259e 100644
+index fc0bcc4..2e9eabc 100644
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
 @@ -809,7 +809,7 @@ static void memcg_check_events(struct mem_cgroup *memcg, 
struct page *page)
@@ -119049,7 +118812,7 @@ index ee6acd2..e83259e 100644
  #endif
        }
  }
-@@ -1450,7 +1450,7 @@ static void mem_cgroup_may_update_nodemask(struct 
mem_cgroup *memcg)
+@@ -1451,7 +1451,7 @@ static void mem_cgroup_may_update_nodemask(struct 
mem_cgroup *memcg)
         * numainfo_events > 0 means there was at least NUMAINFO_EVENTS_TARGET
         * pagein/pageout changes since the last update.
         */
@@ -119058,7 +118821,7 @@ index ee6acd2..e83259e 100644
                return;
        if (atomic_inc_return(&memcg->numainfo_updating) > 1)
                return;
-@@ -1464,7 +1464,7 @@ static void mem_cgroup_may_update_nodemask(struct 
mem_cgroup *memcg)
+@@ -1465,7 +1465,7 @@ static void mem_cgroup_may_update_nodemask(struct 
mem_cgroup *memcg)
                        node_clear(nid, memcg->scan_nodes);
        }
  
@@ -121648,7 +121411,7 @@ index d15d88c..4316955 100644
        struct bdi_writeback *wb = dtc->wb;
        unsigned long write_bw = wb->avg_write_bandwidth;
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 9d666df..dfa2193 100644
+index c69531a..36ab4e3 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -62,6 +62,7 @@
@@ -121685,7 +121448,7 @@ index 9d666df..dfa2193 100644
  static inline void set_page_guard(struct zone *zone, struct page *page,
                                unsigned int order, int migratetype) {}
  static inline void clear_page_guard(struct zone *zone, struct page *page,
-@@ -955,6 +955,10 @@ static bool free_pages_prepare(struct page *page, 
unsigned int order)
+@@ -975,6 +975,10 @@ static bool free_pages_prepare(struct page *page, 
unsigned int order)
        bool compound = PageCompound(page);
        int i, bad = 0;
  
@@ -121696,7 +121459,7 @@ index 9d666df..dfa2193 100644
        VM_BUG_ON_PAGE(PageTail(page), page);
        VM_BUG_ON_PAGE(compound && compound_order(page) != order, page);
  
-@@ -981,6 +985,12 @@ static bool free_pages_prepare(struct page *page, 
unsigned int order)
+@@ -1001,6 +1005,12 @@ static bool free_pages_prepare(struct page *page, 
unsigned int order)
                debug_check_no_obj_freed(page_address(page),
                                           PAGE_SIZE << order);
        }
@@ -121709,7 +121472,7 @@ index 9d666df..dfa2193 100644
        arch_free_page(page, order);
        kernel_map_pages(page, 1 << order, 0);
  
-@@ -1003,6 +1013,20 @@ static void __free_pages_ok(struct page *page, unsigned 
int order)
+@@ -1023,6 +1033,20 @@ static void __free_pages_ok(struct page *page, unsigned 
int order)
        local_irq_restore(flags);
  }
  
@@ -121730,7 +121493,7 @@ index 9d666df..dfa2193 100644
  static void __init __free_pages_boot_core(struct page *page,
                                        unsigned long pfn, unsigned int order)
  {
-@@ -1019,6 +1043,19 @@ static void __init __free_pages_boot_core(struct page 
*page,
+@@ -1039,6 +1063,19 @@ static void __init __free_pages_boot_core(struct page 
*page,
        __ClearPageReserved(p);
        set_page_count(p, 0);
  
@@ -121750,7 +121513,7 @@ index 9d666df..dfa2193 100644
        page_zone(page)->managed_pages += nr_pages;
        set_page_refcounted(page);
        __free_pages(page, order);
-@@ -1075,7 +1112,6 @@ static inline bool __meminit meminit_pfn_in_nid(unsigned 
long pfn, int node,
+@@ -1095,7 +1132,6 @@ static inline bool __meminit meminit_pfn_in_nid(unsigned 
long pfn, int node,
  }
  #endif
  
@@ -121758,7 +121521,7 @@ index 9d666df..dfa2193 100644
  void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
                                                        unsigned int order)
  {
-@@ -1379,9 +1415,11 @@ static int prep_new_page(struct page *page, unsigned 
int order, gfp_t gfp_flags,
+@@ -1399,9 +1435,11 @@ static int prep_new_page(struct page *page, unsigned 
int order, gfp_t gfp_flags,
        kernel_map_pages(page, 1 << order, 1);
        kasan_alloc_pages(page, order);
  
@@ -121770,7 +121533,7 @@ index 9d666df..dfa2193 100644
  
        if (order && (gfp_flags & __GFP_COMP))
                prep_compound_page(page, order);
-@@ -2250,7 +2288,7 @@ struct page *buffered_rmqueue(struct zone 
*preferred_zone,
+@@ -2270,7 +2308,7 @@ struct page *buffered_rmqueue(struct zone 
*preferred_zone,
        }
  
        __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
@@ -121779,7 +121542,7 @@ index 9d666df..dfa2193 100644
            !test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
                set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
  
-@@ -2467,7 +2505,7 @@ static void reset_alloc_batches(struct zone 
*preferred_zone)
+@@ -2487,7 +2525,7 @@ static void reset_alloc_batches(struct zone 
*preferred_zone)
        do {
                mod_zone_page_state(zone, NR_ALLOC_BATCH,
                        high_wmark_pages(zone) - low_wmark_pages(zone) -
@@ -121788,7 +121551,7 @@ index 9d666df..dfa2193 100644
                clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
        } while (zone++ != preferred_zone);
  }
-@@ -6059,7 +6097,7 @@ static void __setup_per_zone_wmarks(void)
+@@ -6079,7 +6117,7 @@ static void __setup_per_zone_wmarks(void)
  
                __mod_zone_page_state(zone, NR_ALLOC_BATCH,
                        high_wmark_pages(zone) - low_wmark_pages(zone) -
@@ -133372,7 +133135,7 @@ index 6c3b038..54e0b5e 100755
  mkdir -p "$destdir"
  (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd 
$destdir; tar -xf -)
 diff --git a/scripts/package/mkspec b/scripts/package/mkspec
-index 71004da..3874acb 100755
+index fe44d68..3874acb 100755
 --- a/scripts/package/mkspec
 +++ b/scripts/package/mkspec
 @@ -120,29 +120,40 @@ echo 'rm -f 
$RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
@@ -133406,11 +133169,11 @@ index 71004da..3874acb 100755
 +echo ""
  echo "%post"
 -echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r 
/boot/System.map-$KERNELRELEASE ]; then"
--echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm"
--echo "cp /boot/System.map-$KERNELRELEASE /boot/System.map-$KERNELRELEASE-rpm"
+-echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm"
+-echo "cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm"
 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
--echo "/sbin/installkernel $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm 
/boot/System.map-$KERNELRELEASE-rpm"
--echo "rm -f /boot/vmlinuz-$KERNELRELEASE-rpm 
/boot/System.map-$KERNELRELEASE-rpm"
+-echo "/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm 
/boot/.System.map-$KERNELRELEASE-rpm"
+-echo "rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm 
/boot/.System.map-$KERNELRELEASE-rpm"
 +echo "if [ -x /sbin/dracut ]; then"
 +echo '/sbin/new-kernel-pkg --dracut --mkinitrd --depmod --install 
--make-default '"$KERNELRELEASE"' || exit $?'
 +echo "else"
@@ -156160,10 +155923,10 @@ index 0000000..fc58e16
 +}
 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data 
b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
 new file mode 100644
-index 0000000..ca51973
+index 0000000..951b3be
 --- /dev/null
 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
-@@ -0,0 +1,21509 @@
+@@ -0,0 +1,21510 @@
 +enable_so_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
 +enable_so___earlyonly_bootmem_alloc_fndecl_3 __earlyonly_bootmem_alloc fndecl 
2-3-4 3 NULL
 +enable_so_v9fs_xattr_get_acl_fndecl_4 v9fs_xattr_get_acl fndecl 5 4 NULL
@@ -161841,7 +161604,8 @@ index 0000000..ca51973
 +enable_so_audio_buf_size_f_uac1_opts_17353 audio_buf_size f_uac1_opts 0 17353 
&enable_so_xfs_trans_get_efi_fndecl_17353
 +enable_so_tipc_alloc_entry_fndecl_17360 tipc_alloc_entry fndecl 2 17360 NULL
 +enable_so_udf_tgetblk_fndecl_17362 udf_tgetblk fndecl 2 17362 NULL nohasharray
-+enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362 cxgb4i_max_connect 
vardecl_cxgb4i.c 0 17362 &enable_so_udf_tgetblk_fndecl_17362
++enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362 cxgb4i_max_connect 
vardecl_cxgb4i.c 0 17362 &enable_so_udf_tgetblk_fndecl_17362 nohasharray
++enable_so_pebs_buffer_size_x86_pmu_17362 pebs_buffer_size x86_pmu 0 17362 
&enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362
 +enable_so_fdt_translate_one_fndecl_17363 fdt_translate_one fndecl 2 17363 NULL
 +enable_so_config_desc_fndecl_17365 config_desc fndecl 0 17365 NULL
 +enable_so_extra_inflate_state_17367 extra inflate_state 0 17367 NULL
@@ -182523,7 +182287,7 @@ index 0a578fe..b81f62d 100644
  })
  
 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index 7338e30..7b0dc7f 100644
+index fefbf2d..7b0dc7f 100644
 --- a/virt/kvm/kvm_main.c
 +++ b/virt/kvm/kvm_main.c
 @@ -90,12 +90,17 @@ LIST_HEAD(vm_list);
@@ -182546,49 +182310,7 @@ index 7338e30..7b0dc7f 100644
  
  struct dentry *kvm_debugfs_dir;
  EXPORT_SYMBOL_GPL(kvm_debugfs_dir);
-@@ -547,6 +552,16 @@ static struct kvm *kvm_create_vm(unsigned long type)
-       if (!kvm)
-               return ERR_PTR(-ENOMEM);
- 
-+      spin_lock_init(&kvm->mmu_lock);
-+      atomic_inc(&current->mm->mm_count);
-+      kvm->mm = current->mm;
-+      kvm_eventfd_init(kvm);
-+      mutex_init(&kvm->lock);
-+      mutex_init(&kvm->irq_lock);
-+      mutex_init(&kvm->slots_lock);
-+      atomic_set(&kvm->users_count, 1);
-+      INIT_LIST_HEAD(&kvm->devices);
-+
-       r = kvm_arch_init_vm(kvm, type);
-       if (r)
-               goto out_err_no_disable;
-@@ -579,16 +594,6 @@ static struct kvm *kvm_create_vm(unsigned long type)
-                       goto out_err;
-       }
- 
--      spin_lock_init(&kvm->mmu_lock);
--      kvm->mm = current->mm;
--      atomic_inc(&kvm->mm->mm_count);
--      kvm_eventfd_init(kvm);
--      mutex_init(&kvm->lock);
--      mutex_init(&kvm->irq_lock);
--      mutex_init(&kvm->slots_lock);
--      atomic_set(&kvm->users_count, 1);
--      INIT_LIST_HEAD(&kvm->devices);
--
-       r = kvm_init_mmu_notifier(kvm);
-       if (r)
-               goto out_err;
-@@ -613,6 +618,7 @@ out_err_no_disable:
-       for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++)
-               kvm_free_memslots(kvm, kvm->memslots[i]);
-       kvm_arch_free_vm(kvm);
-+      mmdrop(current->mm);
-       return ERR_PTR(r);
- }
- 
-@@ -842,7 +848,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
+@@ -843,7 +848,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
        /* We can read the guest memory with __xxx_user() later on. */
        if ((id < KVM_USER_MEM_SLOTS) &&
            ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
@@ -182597,7 +182319,7 @@ index 7338e30..7b0dc7f 100644
                        (void __user *)(unsigned long)mem->userspace_addr,
                        mem->memory_size)))
                goto out;
-@@ -1897,9 +1903,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
+@@ -1898,9 +1903,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
  
  int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
  {
@@ -182617,7 +182339,7 @@ index 7338e30..7b0dc7f 100644
  }
  EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
  
-@@ -2236,7 +2250,7 @@ static int kvm_vcpu_release(struct inode *inode, struct 
file *filp)
+@@ -2237,7 +2250,7 @@ static int kvm_vcpu_release(struct inode *inode, struct 
file *filp)
        return 0;
  }
  
@@ -182626,7 +182348,7 @@ index 7338e30..7b0dc7f 100644
        .release        = kvm_vcpu_release,
        .unlocked_ioctl = kvm_vcpu_ioctl,
  #ifdef CONFIG_KVM_COMPAT
-@@ -2952,7 +2966,7 @@ out:
+@@ -2953,7 +2966,7 @@ out:
  }
  #endif
  
@@ -182635,7 +182357,7 @@ index 7338e30..7b0dc7f 100644
        .release        = kvm_vm_release,
        .unlocked_ioctl = kvm_vm_ioctl,
  #ifdef CONFIG_KVM_COMPAT
-@@ -3023,7 +3037,7 @@ out:
+@@ -3024,7 +3037,7 @@ out:
        return r;
  }
  
@@ -182644,7 +182366,7 @@ index 7338e30..7b0dc7f 100644
        .unlocked_ioctl = kvm_dev_ioctl,
        .compat_ioctl   = kvm_dev_ioctl,
        .llseek         = noop_llseek,
-@@ -3049,7 +3063,7 @@ static void hardware_enable_nolock(void *junk)
+@@ -3050,7 +3063,7 @@ static void hardware_enable_nolock(void *junk)
  
        if (r) {
                cpumask_clear_cpu(cpu, cpus_hardware_enabled);
@@ -182653,7 +182375,7 @@ index 7338e30..7b0dc7f 100644
                pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu);
        }
  }
-@@ -3104,10 +3118,10 @@ static int hardware_enable_all(void)
+@@ -3105,10 +3118,10 @@ static int hardware_enable_all(void)
  
        kvm_usage_count++;
        if (kvm_usage_count == 1) {
@@ -182666,7 +182388,7 @@ index 7338e30..7b0dc7f 100644
                        hardware_disable_all_nolock();
                        r = -EBUSY;
                }
-@@ -3571,7 +3585,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned 
vcpu_align,
+@@ -3572,7 +3585,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned 
vcpu_align,
        if (!vcpu_align)
                vcpu_align = __alignof__(struct kvm_vcpu);
        kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
@@ -182675,7 +182397,7 @@ index 7338e30..7b0dc7f 100644
        if (!kvm_vcpu_cache) {
                r = -ENOMEM;
                goto out_free_3;
-@@ -3581,9 +3595,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned 
vcpu_align,
+@@ -3582,9 +3595,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned 
vcpu_align,
        if (r)
                goto out_free;
  
@@ -182687,7 +182409,7 @@ index 7338e30..7b0dc7f 100644
  
        r = misc_register(&kvm_dev);
        if (r) {
-@@ -3593,9 +3609,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned 
vcpu_align,
+@@ -3594,9 +3609,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned 
vcpu_align,
  
        register_syscore_ops(&kvm_syscore_ops);
  

diff --git a/4.4.6/4425_grsec_remove_EI_PAX.patch 
b/4.4.7/4425_grsec_remove_EI_PAX.patch
similarity index 100%
rename from 4.4.6/4425_grsec_remove_EI_PAX.patch
rename to 4.4.7/4425_grsec_remove_EI_PAX.patch

diff --git a/4.4.6/4427_force_XATTR_PAX_tmpfs.patch 
b/4.4.7/4427_force_XATTR_PAX_tmpfs.patch
similarity index 100%
rename from 4.4.6/4427_force_XATTR_PAX_tmpfs.patch
rename to 4.4.7/4427_force_XATTR_PAX_tmpfs.patch

diff --git a/4.4.6/4430_grsec-remove-localversion-grsec.patch 
b/4.4.7/4430_grsec-remove-localversion-grsec.patch
similarity index 100%
rename from 4.4.6/4430_grsec-remove-localversion-grsec.patch
rename to 4.4.7/4430_grsec-remove-localversion-grsec.patch

diff --git a/4.4.6/4435_grsec-mute-warnings.patch 
b/4.4.7/4435_grsec-mute-warnings.patch
similarity index 100%
rename from 4.4.6/4435_grsec-mute-warnings.patch
rename to 4.4.7/4435_grsec-mute-warnings.patch

diff --git a/4.4.6/4440_grsec-remove-protected-paths.patch 
b/4.4.7/4440_grsec-remove-protected-paths.patch
similarity index 100%
rename from 4.4.6/4440_grsec-remove-protected-paths.patch
rename to 4.4.7/4440_grsec-remove-protected-paths.patch

diff --git a/4.4.6/4450_grsec-kconfig-default-gids.patch 
b/4.4.7/4450_grsec-kconfig-default-gids.patch
similarity index 100%
rename from 4.4.6/4450_grsec-kconfig-default-gids.patch
rename to 4.4.7/4450_grsec-kconfig-default-gids.patch

diff --git a/4.4.6/4465_selinux-avc_audit-log-curr_ip.patch 
b/4.4.7/4465_selinux-avc_audit-log-curr_ip.patch
similarity index 100%
rename from 4.4.6/4465_selinux-avc_audit-log-curr_ip.patch
rename to 4.4.7/4465_selinux-avc_audit-log-curr_ip.patch

diff --git a/4.4.6/4470_disable-compat_vdso.patch 
b/4.4.7/4470_disable-compat_vdso.patch
similarity index 100%
rename from 4.4.6/4470_disable-compat_vdso.patch
rename to 4.4.7/4470_disable-compat_vdso.patch

diff --git a/4.4.6/4475_emutramp_default_on.patch 
b/4.4.7/4475_emutramp_default_on.patch
similarity index 100%
rename from 4.4.6/4475_emutramp_default_on.patch
rename to 4.4.7/4475_emutramp_default_on.patch

Reply via email to