sh: Only use bl bit toggling for sleeping idle.
We don't actually require this in the cpu_relax() polling case, so just
cuddle these around the sleeping version.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
diff --git a/arch/sh/kernel/idle.c b/arch/sh/kernel/idle.c
index 8e47565..6b3d706 100644
--- a/arch/sh/kernel/idle.c
+++ b/arch/sh/kernel/idle.c
@@ -62,6 +62,7 @@
clear_thread_flag(TIF_POLLING_NRFLAG);
smp_mb__after_clear_bit();
+ set_bl_bit();
if (!need_resched()) {
local_irq_enable();
cpu_sleep();
@@ -69,6 +70,7 @@
local_irq_enable();
set_thread_flag(TIF_POLLING_NRFLAG);
+ clear_bl_bit();
} else
poll_idle();
}
@@ -92,7 +94,6 @@
check_pgt_cache();
rmb();
- set_bl_bit();
local_irq_disable();
/* Don't trace irqs off for idle */
stop_critical_timings();
@@ -103,7 +104,6 @@
*/
WARN_ON(irqs_disabled());
start_critical_timings();
- clear_bl_bit();
}
tick_nohz_restart_sched_tick();