aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/smp.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-09-29 11:28:04 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-09-29 11:28:04 +0100
commitaddbb411fa2d7a0475286fa8b13480f0314b601d (patch)
treeaafac2affbb1df2396a3bf5c50ecb83ad7ea30c2 /xen/arch/x86/smp.c
parent6a6ea8c94e1622738ff05c9e4676a462b96192a3 (diff)
downloadxen-addbb411fa2d7a0475286fa8b13480f0314b601d.tar.gz
xen-addbb411fa2d7a0475286fa8b13480f0314b601d.tar.bz2
xen-addbb411fa2d7a0475286fa8b13480f0314b601d.zip
[HVM] Disable VMX/SVM on auxiliary processors when shutting down an SMP system.
With Intel VT, VMXOFF needs to be executed before halting the CPU. Without this fix Xen or Linux is unable to start up the CPU after a kexec reboot. Tested using x86_32 on a Pentium D 930. Signed-Off-By: Magnus Damm <magnus@valinux.co.jp>
Diffstat (limited to 'xen/arch/x86/smp.c')
-rw-r--r--xen/arch/x86/smp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 27dc4daf87..2d14240039 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -21,6 +21,7 @@
#include <asm/smpboot.h>
#include <asm/hardirq.h>
#include <asm/ipi.h>
+#include <asm/hvm/hvm.h>
#include <mach_apic.h>
/*
@@ -306,6 +307,7 @@ static void stop_this_cpu (void *dummy)
local_irq_disable();
disable_local_APIC();
+ hvm_disable();
for ( ; ; )
__asm__ __volatile__ ( "hlt" );