]> err.no Git - linux-2.6/blobdiff - arch/x86_64/kernel/process.c
[PATCH] cpu hotplug/x86_64: disable interrupt in play_dead
[linux-2.6] / arch / x86_64 / kernel / process.c
index 7519fc520eb3f2d157d1da41cb4c3c1d5b40bc82..3060ed97b755f836f076c54bee60740ebc41e1be 100644 (file)
@@ -157,7 +157,7 @@ EXPORT_SYMBOL_GPL(cpu_idle_wait);
 DECLARE_PER_CPU(int, cpu_state);
 
 #include <asm/nmi.h>
-/* We don't actually take CPU down, just spin without interrupts. */
+/* We halt the CPU with physical CPU hotplug */
 static inline void play_dead(void)
 {
        idle_task_exit();
@@ -166,8 +166,9 @@ static inline void play_dead(void)
        /* Ack it */
        __get_cpu_var(cpu_state) = CPU_DEAD;
 
+       local_irq_disable();
        while (1)
-               safe_halt();
+               halt();
 }
 #else
 static inline void play_dead(void)