aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-12-18 00:19:27 -0500
committerPaul Mundt <lethal@linux-sh.org>2009-12-20 21:57:29 -0500
commit3147093e1de59081e82fb1d815424c3e952caf3e (patch)
tree40f2a09247c0ec6279591f7ad35336032650c031 /arch/sh
parent2f7bb2dfed3b15b388c88250b66f590aabc438da (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.c2
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();