From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vitaly Kuznetsov Subject: Re: [PATCH] x86/xen: no need to explicitly register an NMI callback Date: Tue, 17 Jun 2014 11:08:34 +0200 Message-ID: <8738f3c38t.fsf@vitty.brq.redhat.com> References: <1402938558-14542-1-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WwpNh-0002GY-N5 for xen-devel@lists.xenproject.org; Tue, 17 Jun 2014 09:08:41 +0000 In-Reply-To: <1402938558-14542-1-git-send-email-david.vrabel@citrix.com> (David Vrabel's message of "Mon, 16 Jun 2014 18:09:18 +0100") List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: David Vrabel Cc: xen-devel@lists.xenproject.org, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org David Vrabel writes: > 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 > Reported-by: Vitaly Kuznetsov Smoke tested with RHEL5 Xen and x86_64 PV guest + Xen-4.3.2 and x86_64 PV guest. Tested-by: Vitaly Kuznetsov > --- > arch/x86/xen/setup.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c > index 821a11a..3f96911 100644 > --- a/arch/x86/xen/setup.c > +++ b/arch/x86/xen/setup.c > @@ -590,13 +590,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); > @@ -611,7 +605,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 */ -- Vitaly