diff options
Diffstat (limited to 'arch/microblaze/kernel/process.c')
| -rw-r--r-- | arch/microblaze/kernel/process.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/microblaze/kernel/process.c b/arch/microblaze/kernel/process.c index 09bed44dfcd3..ba7c4b16ed35 100644 --- a/arch/microblaze/kernel/process.c +++ b/arch/microblaze/kernel/process.c | |||
| @@ -76,8 +76,11 @@ __setup("hlt", hlt_setup); | |||
| 76 | void default_idle(void) | 76 | void default_idle(void) |
| 77 | { | 77 | { |
| 78 | if (likely(hlt_counter)) { | 78 | if (likely(hlt_counter)) { |
| 79 | while (!need_resched()) | 79 | local_irq_disable(); |
| 80 | cpu_relax(); | 80 | stop_critical_timings(); |
| 81 | cpu_relax(); | ||
| 82 | start_critical_timings(); | ||
| 83 | local_irq_enable(); | ||
| 81 | } else { | 84 | } else { |
| 82 | clear_thread_flag(TIF_POLLING_NRFLAG); | 85 | clear_thread_flag(TIF_POLLING_NRFLAG); |
| 83 | smp_mb__after_clear_bit(); | 86 | smp_mb__after_clear_bit(); |
