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 3fb62a7d9a16..71553b664e2a 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c  | |||
| @@ -93,14 +93,13 @@ DECLARE_PER_CPU(int, cpu_state); | |||
| 93 | static inline void play_dead(void) | 93 | static inline void play_dead(void) | 
| 94 | { | 94 | { | 
| 95 | idle_task_exit(); | 95 | idle_task_exit(); | 
| 96 | wbinvd(); | ||
| 97 | mb(); | 96 | mb(); | 
| 98 | /* Ack it */ | 97 | /* Ack it */ | 
| 99 | __get_cpu_var(cpu_state) = CPU_DEAD; | 98 | __get_cpu_var(cpu_state) = CPU_DEAD; | 
| 100 | 99 | ||
| 101 | local_irq_disable(); | 100 | local_irq_disable(); | 
| 102 | while (1) | 101 | /* mask all interrupts, flush any and all caches, and halt */ | 
| 103 | halt(); | 102 | wbinvd_halt(); | 
| 104 | } | 103 | } | 
| 105 | #else | 104 | #else | 
| 106 | static inline void play_dead(void) | 105 | static inline void play_dead(void) | 
