diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2006-12-07 14:03:54 +0000 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2006-12-07 14:03:54 +0000 |
commit | bd52f01c26803f7346e636b5cc599811050af116 (patch) | |
tree | d3184d5eb780698ae6dc6a5f43d28b4da7916a03 /xen/arch/x86/crash.c | |
parent | e150713e686a554fedfc97102cdc0d920d1c5bbb (diff) | |
download | xen-bd52f01c26803f7346e636b5cc599811050af116.tar.gz xen-bd52f01c26803f7346e636b5cc599811050af116.tar.bz2 xen-bd52f01c26803f7346e636b5cc599811050af116.zip |
[XEN] Early page fault handler to deal with spurious page faults.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/crash.c')
-rw-r--r-- | xen/arch/x86/crash.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/xen/arch/x86/crash.c b/xen/arch/x86/crash.c index 3389174a7a..a5b0aeedf1 100644 --- a/xen/arch/x86/crash.c +++ b/xen/arch/x86/crash.c @@ -27,7 +27,6 @@ #include <public/xen.h> #include <asm/hvm/hvm.h> -#ifdef CONFIG_SMP static atomic_t waiting_for_crash_ipi; static int crash_nmi_callback(struct cpu_user_regs *regs, int cpu) @@ -71,9 +70,7 @@ static void nmi_shootdown_cpus(void) atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1); /* Would it be better to replace the trap vector here? */ set_nmi_callback(crash_nmi_callback); - /* Ensure the new callback function is set before sending - * out the NMI - */ + /* Ensure the new callback function is set before sending out the NMI. */ wmb(); smp_send_nmi_allbutself(); @@ -88,7 +85,6 @@ static void nmi_shootdown_cpus(void) /* Leave the nmi callback set */ disable_local_APIC(); } -#endif static void crash_save_xen_notes(void) { @@ -102,16 +98,12 @@ static void crash_save_xen_notes(void) void machine_crash_shutdown(void) { - printk("machine_crash_shutdown: %d\n", smp_processor_id()); local_irq_disable(); -#ifdef CONFIG_SMP nmi_shootdown_cpus(); -#endif -#ifdef CONFIG_X86_IO_APIC disable_IO_APIC(); -#endif + hvm_disable(); crash_save_xen_notes(); |