]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
x86: move out tick_nohz_stop_sched_tick() call from the loop
authorHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Wed, 30 Jan 2008 12:33:00 +0000 (13:33 +0100)
committerChris Wright <chrisw@sous-sol.org>
Mon, 24 Mar 2008 18:47:32 +0000 (11:47 -0700)
[upstream commit: 3d97775a]

Move out tick_nohz_stop_sched_tick() call from the loop in cpu_idle
same as 32-bit version.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ed Tomlinson <edt@aei.ca>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/process_64.c

index ab79e1dfa02311bb75c81c44aa137ddd450c5922..d7f7132307a55aef315d99eded095e335259bf19 100644 (file)
@@ -212,14 +212,13 @@ void cpu_idle (void)
        current_thread_info()->status |= TS_POLLING;
        /* endless idle loop with no priority at all */
        while (1) {
+               tick_nohz_stop_sched_tick();
                while (!need_resched()) {
                        void (*idle)(void);
 
                        if (__get_cpu_var(cpu_idle_state))
                                __get_cpu_var(cpu_idle_state) = 0;
 
-                       tick_nohz_stop_sched_tick();
-
                        rmb();
                        idle = pm_idle;
                        if (!idle)