aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/process_64.c
diff options
context:
space:
mode:
authorHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>2008-01-30 07:33:00 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:33:00 -0500
commit3d97775a80a03013abe1fd681620925f884ad18a (patch)
tree5af4133b00ec87c3e4313b98cc53ccf81cbba7ac /arch/x86/kernel/process_64.c
parentd50efc6c40620b2e11648cac64ebf4a824e40382 (diff)
x86: move out tick_nohz_stop_sched_tick() call from the loop
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>
Diffstat (limited to 'arch/x86/kernel/process_64.c')
-rw-r--r--arch/x86/kernel/process_64.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 78d80067b7f9..a0130eb2fa50 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -170,14 +170,13 @@ void cpu_idle(void)
170 current_thread_info()->status |= TS_POLLING; 170 current_thread_info()->status |= TS_POLLING;
171 /* endless idle loop with no priority at all */ 171 /* endless idle loop with no priority at all */
172 while (1) { 172 while (1) {
173 tick_nohz_stop_sched_tick();
173 while (!need_resched()) { 174 while (!need_resched()) {
174 void (*idle)(void); 175 void (*idle)(void);
175 176
176 if (__get_cpu_var(cpu_idle_state)) 177 if (__get_cpu_var(cpu_idle_state))
177 __get_cpu_var(cpu_idle_state) = 0; 178 __get_cpu_var(cpu_idle_state) = 0;
178 179
179 tick_nohz_stop_sched_tick();
180
181 rmb(); 180 rmb();
182 idle = pm_idle; 181 idle = pm_idle;
183 if (!idle) 182 if (!idle)