]> err.no Git - linux-2.6/blobdiff - arch/um/kernel/process.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[linux-2.6] / arch / um / kernel / process.c
index 56d75afedbf7de3bd2d26c6f81b9500a4a099593..0eae00b3e58895054d69afd0876bedae0bd12631 100644 (file)
@@ -13,6 +13,7 @@
 #include "linux/ptrace.h"
 #include "linux/random.h"
 #include "linux/sched.h"
+#include "linux/tick.h"
 #include "linux/threads.h"
 #include "asm/pgtable.h"
 #include "asm/uaccess.h"
@@ -234,6 +235,8 @@ void initial_thread_cb(void (*proc)(void *), void *arg)
 
 void default_idle(void)
 {
+       unsigned long long nsecs;
+
        while(1) {
                /* endless idle loop with no priority at all */
 
@@ -244,9 +247,10 @@ void default_idle(void)
                if (need_resched())
                        schedule();
 
-               switch_timers(1);
-               idle_sleep(10);
-               switch_timers(0);
+               tick_nohz_stop_sched_tick();
+               nsecs = disable_timer();
+               idle_sleep(nsecs);
+               tick_nohz_restart_sched_tick();
        }
 }