diff options
author | Jan Beulich <jbeulich@suse.com> | 2012-03-27 15:20:23 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2012-03-27 15:20:23 +0200 |
commit | a5e1cb8704755905940c7242f62c5e9d85957d65 (patch) | |
tree | ef6acb5116ec3970c3cce65c682b62a0a02d310f /xen/arch/x86/smp.c | |
parent | 7db78449277c45354166ea31bf7c262daea3d8ee (diff) | |
download | xen-a5e1cb8704755905940c7242f62c5e9d85957d65.tar.gz xen-a5e1cb8704755905940c7242f62c5e9d85957d65.tar.bz2 xen-a5e1cb8704755905940c7242f62c5e9d85957d65.zip |
x86/hpet: disable before reboot or kexec
Linux up to now is not smart enough to properly clear the HPET when it
boots, which is particularly a problem when a kdump attempt from
running under Xen is being made. Linux itself added code to work around
this to its shutdown paths quite some time ago, so let's do something
similar in Xen: Save the configuration register settings during boot,
and restore them during shutdown. This should cover the majority of
cases where the secondary kernel might not come up because timer
interrupts don't work.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/smp.c')
-rw-r--r-- | xen/arch/x86/smp.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c index 77daca5ce2..fbab8d0340 100644 --- a/xen/arch/x86/smp.c +++ b/xen/arch/x86/smp.c @@ -19,6 +19,7 @@ #include <asm/mc146818rtc.h> #include <asm/flushtlb.h> #include <asm/hardirq.h> +#include <asm/hpet.h> #include <asm/hvm/support.h> #include <mach_apic.h> @@ -375,6 +376,7 @@ void smp_send_stop(void) local_irq_disable(); __stop_this_cpu(); disable_IO_APIC(); + hpet_disable(); local_irq_enable(); } |