aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/crash.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-10-01 12:25:36 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-10-01 12:25:36 +0100
commitbf8898e67641402fa1eb8386c5f3cb7272107ca3 (patch)
tree19e19ddc4e02e0afc1a26649ed7f456621e42b34 /xen/arch/x86/crash.c
parent956bf143e8a8e41ae56f128ed7812541aa50d7d6 (diff)
downloadxen-bf8898e67641402fa1eb8386c5f3cb7272107ca3.tar.gz
xen-bf8898e67641402fa1eb8386c5f3cb7272107ca3.tar.bz2
xen-bf8898e67641402fa1eb8386c5f3cb7272107ca3.zip
Disable HPET broadcast mode on kexec.
Without this the new kernel cannot receive timer interrupts from the legacy sources. Hangs are observed in the second kernel's "check_timer()" routing or at "Checking 'hlt' instruction." Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'xen/arch/x86/crash.c')
-rw-r--r--xen/arch/x86/crash.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/xen/arch/x86/crash.c b/xen/arch/x86/crash.c
index 009ae9ab7e..1c90b6eca2 100644
--- a/xen/arch/x86/crash.c
+++ b/xen/arch/x86/crash.c
@@ -25,6 +25,7 @@
#include <public/xen.h>
#include <asm/shared.h>
#include <asm/hvm/support.h>
+#include <asm/hpet.h>
static atomic_t waiting_for_crash_ipi;
static unsigned int crashing_cpu;
@@ -83,6 +84,9 @@ void machine_crash_shutdown(void)
nmi_shootdown_cpus();
+ if ( hpet_broadcast_is_available() )
+ hpet_disable_legacy_broadcast();
+
disable_IO_APIC();
hvm_cpu_down();