diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-12-18 00:19:27 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-12-20 21:57:29 -0500 |
commit | 3147093e1de59081e82fb1d815424c3e952caf3e (patch) | |
tree | 40f2a09247c0ec6279591f7ad35336032650c031 /arch/sh | |
parent | 2f7bb2dfed3b15b388c88250b66f590aabc438da (diff) |
sh: Restore bl bit toggling in idle loop.
This fixes up some crashes with IRQs racing the need_resched() test under
QEMU.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/idle.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sh/kernel/idle.c b/arch/sh/kernel/idle.c index aaff0037fcd7..8e47565dcfd1 100644 --- a/arch/sh/kernel/idle.c +++ b/arch/sh/kernel/idle.c | |||
@@ -92,6 +92,7 @@ void cpu_idle(void) | |||
92 | check_pgt_cache(); | 92 | check_pgt_cache(); |
93 | rmb(); | 93 | rmb(); |
94 | 94 | ||
95 | set_bl_bit(); | ||
95 | local_irq_disable(); | 96 | local_irq_disable(); |
96 | /* Don't trace irqs off for idle */ | 97 | /* Don't trace irqs off for idle */ |
97 | stop_critical_timings(); | 98 | stop_critical_timings(); |
@@ -102,6 +103,7 @@ void cpu_idle(void) | |||
102 | */ | 103 | */ |
103 | WARN_ON(irqs_disabled()); | 104 | WARN_ON(irqs_disabled()); |
104 | start_critical_timings(); | 105 | start_critical_timings(); |
106 | clear_bl_bit(); | ||
105 | } | 107 | } |
106 | 108 | ||
107 | tick_nohz_restart_sched_tick(); | 109 | tick_nohz_restart_sched_tick(); |