x86/xen: no need to explicitly register an NMI callback
authorDavid Vrabel <david.vrabel@citrix.com>
Mon, 16 Jun 2014 11:07:00 +0000 (13:07 +0200)
committerDavid Vrabel <david.vrabel@citrix.com>
Wed, 18 Jun 2014 09:57:41 +0000 (10:57 +0100)
Remove xen_enable_nmi() to fix a 64-bit guest crash when registering
the NMI callback on Xen 3.1 and earlier.

It's not needed since the NMI callback is set by a set_trap_table
hypercall (in xen_load_idt() or xen_write_idt_entry()).

It's also broken since it only set the current VCPU's callback.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reported-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Tested-by: Vitaly Kuznetsov <vkuznets@redhat.com>
arch/x86/xen/setup.c

index bdd22ece586f87602e618b631a498ba497b1779f..e366b98553761b040c556ef026e4a800dffc09d7 100644 (file)
@@ -594,13 +594,7 @@ void xen_enable_syscall(void)
        }
 #endif /* CONFIG_X86_64 */
 }
-void xen_enable_nmi(void)
-{
-#ifdef CONFIG_X86_64
-       if (register_callback(CALLBACKTYPE_nmi, (char *)nmi))
-               BUG();
-#endif
-}
+
 void __init xen_pvmmu_arch_setup(void)
 {
        HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments);
@@ -615,7 +609,6 @@ void __init xen_pvmmu_arch_setup(void)
 
        xen_enable_sysenter();
        xen_enable_syscall();
-       xen_enable_nmi();
 }
 
 /* This function is not called for HVM domains */