sh: Restore bl bit toggling in idle loop.
authorPaul Mundt <lethal@linux-sh.org>
Fri, 18 Dec 2009 05:19:27 +0000 (14:19 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 21 Dec 2009 02:57:29 +0000 (11:57 +0900)
This fixes up some crashes with IRQs racing the need_resched() test under
QEMU.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/idle.c

index aaff003..8e47565 100644 (file)
@@ -92,6 +92,7 @@ void cpu_idle(void)
                        check_pgt_cache();
                        rmb();
 
+                       set_bl_bit();
                        local_irq_disable();
                        /* Don't trace irqs off for idle */
                        stop_critical_timings();
@@ -102,6 +103,7 @@ void cpu_idle(void)
                         */
                        WARN_ON(irqs_disabled());
                        start_critical_timings();
+                       clear_bl_bit();
                }
 
                tick_nohz_restart_sched_tick();