aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2008-02-15 14:38:40 +0100
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2008-02-15 14:55:10 +0100
commitd45ad06273f797f6239b97fd9962ecd81eec847f (patch)
treead601f9ef094dd43fc5fd06a163e79df90dc8f4a
parentf059267e7fa9e3efa1498eb963ba18ec25665c42 (diff)
avr32: Call tick_nohz_{stop,restart}_sched_tick() in idle loop
This fixes a hang on boot with nohz enabled. nohz is not actually supported in mainline yet, but patches that add support for it are currently under review. When nohz is compiled out, the functions are no-ops, so this patch results in no functional change, but it arguably makes the code more correct. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
-rw-r--r--arch/avr32/kernel/process.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c
index eaaa69bbdc3..faf8d0e7680 100644
--- a/arch/avr32/kernel/process.c
+++ b/arch/avr32/kernel/process.c
@@ -11,6 +11,7 @@
#include <linux/fs.h>
#include <linux/ptrace.h>
#include <linux/reboot.h>
+#include <linux/tick.h>
#include <linux/uaccess.h>
#include <linux/unistd.h>
@@ -30,8 +31,10 @@ void cpu_idle(void)
{
/* endless idle loop with no priority at all */
while (1) {
+ tick_nohz_stop_sched_tick();
while (!need_resched())
cpu_idle_sleep();
+ tick_nohz_restart_sched_tick();
preempt_enable_no_resched();
schedule();
preempt_disable();