diff options
| author | David Vrabel <david.vrabel@citrix.com> | 2014-06-16 07:07:00 -0400 |
|---|---|---|
| committer | David Vrabel <david.vrabel@citrix.com> | 2014-06-18 05:57:41 -0400 |
| commit | ea9f9274bf4337ba7cbab241c780487651642d63 (patch) | |
| tree | 2084ba64995bc9df7615eaff0906c44aa42b9a71 | |
| parent | 562658f3dc7c95c4a918841731e3e91c9fced4d3 (diff) | |
x86/xen: no need to explicitly register an NMI callback
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>
| -rw-r--r-- | arch/x86/xen/setup.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index bdd22ece586f..e366b9855376 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
| @@ -594,13 +594,7 @@ void xen_enable_syscall(void) | |||
| 594 | } | 594 | } |
| 595 | #endif /* CONFIG_X86_64 */ | 595 | #endif /* CONFIG_X86_64 */ |
| 596 | } | 596 | } |
| 597 | void xen_enable_nmi(void) | 597 | |
| 598 | { | ||
| 599 | #ifdef CONFIG_X86_64 | ||
| 600 | if (register_callback(CALLBACKTYPE_nmi, (char *)nmi)) | ||
| 601 | BUG(); | ||
| 602 | #endif | ||
| 603 | } | ||
| 604 | void __init xen_pvmmu_arch_setup(void) | 598 | void __init xen_pvmmu_arch_setup(void) |
| 605 | { | 599 | { |
| 606 | HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments); | 600 | HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments); |
| @@ -615,7 +609,6 @@ void __init xen_pvmmu_arch_setup(void) | |||
| 615 | 609 | ||
| 616 | xen_enable_sysenter(); | 610 | xen_enable_sysenter(); |
| 617 | xen_enable_syscall(); | 611 | xen_enable_syscall(); |
| 618 | xen_enable_nmi(); | ||
| 619 | } | 612 | } |
| 620 | 613 | ||
| 621 | /* This function is not called for HVM domains */ | 614 | /* This function is not called for HVM domains */ |
