These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / x86 / kernel / head_64.S
index 7e5da2c..ffdc0e8 100644 (file)
@@ -65,6 +65,9 @@ startup_64:
         * tables and then reload them.
         */
 
+       /* Sanitize CPU configuration */
+       call verify_cpu
+
        /*
         * Compute the delta between the address I am compiled to run at and the
         * address I am actually running at.
@@ -174,6 +177,9 @@ ENTRY(secondary_startup_64)
         * after the boot processor executes this code.
         */
 
+       /* Sanitize CPU configuration */
+       call verify_cpu
+
        movq    $(init_level4_pgt - __START_KERNEL_map), %rax
 1:
 
@@ -288,6 +294,8 @@ ENTRY(secondary_startup_64)
        pushq   %rax            # target address in negative space
        lretq
 
+#include "verify_cpu.S"
+
 #ifdef CONFIG_HOTPLUG_CPU
 /*
  * Boot CPU0 entry point. It's called from play_dead(). Everything has been set
@@ -346,7 +354,7 @@ early_idt_handler_common:
        cld
 
        cmpl $2,(%rsp)          # X86_TRAP_NMI
-       je is_nmi               # Ignore NMI
+       je .Lis_nmi             # Ignore NMI
 
        cmpl $2,early_recursion_flag(%rip)
        jz  1f
@@ -411,7 +419,7 @@ early_idt_handler_common:
        popq %rcx
        popq %rax
        decl early_recursion_flag(%rip)
-is_nmi:
+.Lis_nmi:
        addq $16,%rsp           # drop vector number and error code
        INTERRUPT_RETURN
 ENDPROC(early_idt_handler_common)