diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-10-01 12:25:36 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-10-01 12:25:36 +0100 |
commit | bf8898e67641402fa1eb8386c5f3cb7272107ca3 (patch) | |
tree | 19e19ddc4e02e0afc1a26649ed7f456621e42b34 /xen/arch/x86/crash.c | |
parent | 956bf143e8a8e41ae56f128ed7812541aa50d7d6 (diff) | |
download | xen-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.c | 4 |
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(); |