]> err.no Git - linux-2.6/commitdiff
avr32: Call tick_nohz_{stop,restart}_sched_tick() in idle loop
authorHaavard Skinnemoen <hskinnemoen@atmel.com>
Fri, 15 Feb 2008 13:38:40 +0000 (14:38 +0100)
committerHaavard Skinnemoen <hskinnemoen@atmel.com>
Fri, 15 Feb 2008 13:55:10 +0000 (14:55 +0100)
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>
arch/avr32/kernel/process.c

index eaaa69bbdc38d5546b395311f29896a6a2c357db..faf8d0e7680148e5a0afb61c12e44cd53ea16e6e 100644 (file)
@@ -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();