x86: When failing smp_callin() properly clean up before halting.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 19 May 2010 21:49:28 +0000 (22:49 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 19 May 2010 21:49:28 +0000 (22:49 +0100)
In particular we must clear_local_APIC() else LAPIC NMI watchdog will
continue to fire and use a stack which no longer exists.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/smpboot.c

index e548375049f2646b5e5d4efa961271ebec68501f..45e5c3d797e98be75e895747a94025aa84e35b19 100644 (file)
@@ -164,6 +164,8 @@ void smp_callin(void)
         extern void (*dead_idle) (void);
         printk("CPU%d: Failed to initialise HVM. Not coming online.\n", cpu);
         cpu_error = rc;
+        clear_local_APIC();
+        spin_debug_enable();
         cpu_exit_clear(cpu);
         (*dead_idle)();
     }