summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/process.c
diff options
context:
space:
mode:
authorKevin Hilman <khilman@mvista.com>2007-03-14 17:33:24 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-04-21 22:02:25 +0200
commit9e4559ddffc012a73ea0b54ed3b6a219c1483ae9 (patch)
tree7446212df749c28d85a32e29a9ce499385b16d83 /arch/arm/kernel/process.c
parent[ARM] 4257/2: Kconfig support for GENERIC_CLOCKEVENTS (diff)
downloadlinux-9e4559ddffc012a73ea0b54ed3b6a219c1483ae9.tar.xz
linux-9e4559ddffc012a73ea0b54ed3b6a219c1483ae9.zip
[ARM] 4258/2: Support for dynticks in idle loop
And, wrap timer_tick() and sysdev suspend/resume in !GENERIC_CLOCKEVENTS since clockevent layer takes care of these. Signed-off-by: Kevin Hilman <khilman@mvista.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/process.c')
-rw-r--r--arch/arm/kernel/process.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 8afd83d0cbdd..5d6e6523598b 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -27,6 +27,7 @@
#include <linux/cpu.h>
#include <linux/elfcore.h>
#include <linux/pm.h>
+#include <linux/tick.h>
#include <asm/leds.h>
#include <asm/processor.h>
@@ -159,9 +160,11 @@ void cpu_idle(void)
if (!idle)
idle = default_idle;
leds_event(led_idle_start);
+ tick_nohz_stop_sched_tick();
while (!need_resched())
idle();
leds_event(led_idle_end);
+ tick_nohz_restart_sched_tick();
preempt_enable_no_resched();
schedule();
preempt_disable();