summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/process_32.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-11-26 15:22:50 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-12-22 18:43:49 +0900
commitf74c034d52d0f908d5b929423a680962a2586199 (patch)
tree0448aa785f65a89882edd2e9e4fc697de8388e68 /arch/sh/kernel/process_32.c
parent75fd24c1073adcd1e8ea43048d946bbfa34dfc64 (diff)
downloadblackbird-op-linux-f74c034d52d0f908d5b929423a680962a2586199.tar.gz
blackbird-op-linux-f74c034d52d0f908d5b929423a680962a2586199.zip
sh: do not latency trace idle.
Description snipped from Steven Rostedt's PPC patch: When idle is called, interrupts are blocked, but the idle function will still wake up on an interrupt. The problem is that the interrupt disabled latency tracer will take this call to idle as a latency. This patch disables the latency tracing when going into idle. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/process_32.c')
-rw-r--r--arch/sh/kernel/process_32.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c
index 908731c49afb..e781540bd991 100644
--- a/arch/sh/kernel/process_32.c
+++ b/arch/sh/kernel/process_32.c
@@ -59,8 +59,12 @@ static void default_idle(void)
clear_thread_flag(TIF_POLLING_NRFLAG);
smp_mb__after_clear_bit();
set_bl_bit();
+ stop_critical_timings();
+
while (!need_resched())
cpu_sleep();
+
+ start_critical_timings();
clear_bl_bit();
set_thread_flag(TIF_POLLING_NRFLAG);
} else
OpenPOWER on IntegriCloud