diff options
Diffstat (limited to 'arch/x86/kernel/process_64.c')
-rw-r--r-- | arch/x86/kernel/process_64.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 87d7dfdcf46c..00263c9e6500 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -94,14 +94,13 @@ DECLARE_PER_CPU(int, cpu_state); | |||
94 | static inline void play_dead(void) | 94 | static inline void play_dead(void) |
95 | { | 95 | { |
96 | idle_task_exit(); | 96 | idle_task_exit(); |
97 | wbinvd(); | ||
98 | mb(); | 97 | mb(); |
99 | /* Ack it */ | 98 | /* Ack it */ |
100 | __get_cpu_var(cpu_state) = CPU_DEAD; | 99 | __get_cpu_var(cpu_state) = CPU_DEAD; |
101 | 100 | ||
102 | local_irq_disable(); | 101 | local_irq_disable(); |
103 | while (1) | 102 | /* mask all interrupts, flush any and all caches, and halt */ |
104 | halt(); | 103 | wbinvd_halt(); |
105 | } | 104 | } |
106 | #else | 105 | #else |
107 | static inline void play_dead(void) | 106 | static inline void play_dead(void) |