Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Dec 2017 01:47:29 +0000 (17:47 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Dec 2017 01:47:29 +0000 (17:47 -0800)
Pull misc x86 fixes from Ingo Molnar:

 - make CR4 handling irq-safe, which bug vmware guests ran into

 - don't crash on early IRQs in Xen guests

 - don't crash secondary CPU bringup if #UD assisted WARN()ings are
   triggered

 - make X86_BUG_FXSAVE_LEAK optional on newer AMD CPUs that have the fix

 - fix AMD Fam17h microcode loading

 - fix broadcom_postcore_init() if ACPI is disabled

 - fix resume regression in __restore_processor_context()

 - fix Sparse warnings

 - fix a GCC-8 warning

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/vdso: Change time() prototype to match __vdso_time()
  x86: Fix Sparse warnings about non-static functions
  x86/power: Fix some ordering bugs in __restore_processor_context()
  x86/PCI: Make broadcom_postcore_init() check acpi_disabled
  x86/microcode/AMD: Add support for fam17h microcode loading
  x86/cpufeatures: Make X86_BUG_FXSAVE_LEAK detectable in CPUID on AMD
  x86/idt: Load idt early in start_secondary
  x86/xen: Support early interrupts in xen pv guests
  x86/tlb: Disable interrupts when changing CR4
  x86/tlb: Refactor CR4 setting and shadow write

1  2 
arch/x86/mm/extable.c

diff --combined arch/x86/mm/extable.c
@@@ -1,6 -1,7 +1,7 @@@
  #include <linux/extable.h>
  #include <linux/uaccess.h>
  #include <linux/sched/debug.h>
+ #include <xen/xen.h>
  
  #include <asm/fpu/internal.h>
  #include <asm/traps.h>
@@@ -82,7 -83,7 +83,7 @@@ bool ex_handler_refcount(const struct e
  
        return true;
  }
 -EXPORT_SYMBOL_GPL(ex_handler_refcount);
 +EXPORT_SYMBOL(ex_handler_refcount);
  
  /*
   * Handler for when we fail to restore a task's FPU state.  We should never get
@@@ -212,8 -213,9 +213,9 @@@ void __init early_fixup_exception(struc
         * Old CPUs leave the high bits of CS on the stack
         * undefined.  I'm not sure which CPUs do this, but at least
         * the 486 DX works this way.
+        * Xen pv domains are not using the default __KERNEL_CS.
         */
-       if (regs->cs != __KERNEL_CS)
+       if (!xen_pv_domain() && regs->cs != __KERNEL_CS)
                goto fail;
  
        /*