summaryrefslogtreecommitdiffstats
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
parent75fd24c1073adcd1e8ea43048d946bbfa34dfc64 (diff)
downloadkernel-crypto-f74c034d52d0f908d5b929423a680962a2586199.tar.gz
kernel-crypto-f74c034d52d0f908d5b929423a680962a2586199.tar.xz
kernel-crypto-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>
-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 908731c49af..e781540bd99 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