summaryrefslogtreecommitdiff
path: root/arch/sh/kernel/process_32.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-11-26 09:22:50 +0300
committerPaul Mundt <lethal@linux-sh.org>2008-12-22 12:43:49 +0300
commitf74c034d52d0f908d5b929423a680962a2586199 (patch)
tree0448aa785f65a89882edd2e9e4fc697de8388e68 /arch/sh/kernel/process_32.c
parent75fd24c1073adcd1e8ea43048d946bbfa34dfc64 (diff)
downloadlinux-f74c034d52d0f908d5b929423a680962a2586199.tar.xz
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