aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/process_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/process_32.c')
-rw-r--r--arch/x86/kernel/process_32.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index f8476dfbb60d..ee4ab461c50d 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -168,24 +168,19 @@ void cpu_idle(void)
168 while (1) { 168 while (1) {
169 tick_nohz_stop_sched_tick(); 169 tick_nohz_stop_sched_tick();
170 while (!need_resched()) { 170 while (!need_resched()) {
171 void (*idle)(void);
172 171
173 check_pgt_cache(); 172 check_pgt_cache();
174 rmb(); 173 rmb();
175 idle = pm_idle;
176 174
177 if (rcu_pending(cpu)) 175 if (rcu_pending(cpu))
178 rcu_check_callbacks(cpu, 0); 176 rcu_check_callbacks(cpu, 0);
179 177
180 if (!idle)
181 idle = default_idle;
182
183 if (cpu_is_offline(cpu)) 178 if (cpu_is_offline(cpu))
184 play_dead(); 179 play_dead();
185 180
186 local_irq_disable(); 181 local_irq_disable();
187 __get_cpu_var(irq_stat).idle_timestamp = jiffies; 182 __get_cpu_var(irq_stat).idle_timestamp = jiffies;
188 idle(); 183 pm_idle();
189 } 184 }
190 tick_nohz_restart_sched_tick(); 185 tick_nohz_restart_sched_tick();
191 preempt_enable_no_resched(); 186 preempt_enable_no_resched();