summaryrefslogtreecommitdiff
path: root/arch/sh/kernel
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-12-18 08:19:27 +0300
committerPaul Mundt <lethal@linux-sh.org>2009-12-21 05:57:29 +0300
commit3147093e1de59081e82fb1d815424c3e952caf3e (patch)
tree40f2a09247c0ec6279591f7ad35336032650c031 /arch/sh/kernel
parent2f7bb2dfed3b15b388c88250b66f590aabc438da (diff)
downloadlinux-3147093e1de59081e82fb1d815424c3e952caf3e.tar.xz
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/kernel')
-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)
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();