summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-12-18 14:19:27 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-12-21 11:57:29 +0900
commit3147093e1de59081e82fb1d815424c3e952caf3e (patch)
tree40f2a09247c0ec6279591f7ad35336032650c031
parent2f7bb2dfed3b15b388c88250b66f590aabc438da (diff)
downloadlinux-3.10-3147093e1de59081e82fb1d815424c3e952caf3e.tar.gz
linux-3.10-3147093e1de59081e82fb1d815424c3e952caf3e.tar.bz2
linux-3.10-3147093e1de59081e82fb1d815424c3e952caf3e.zip
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>
-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 aaff0037fcd..8e47565dcfd 100644
--- a/arch/sh/kernel/idle.c
+++ b/arch/sh/kernel/idle.c
@@ -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();