diff options
Diffstat (limited to 'drivers/idle/intel_idle.c')
-rw-r--r-- | drivers/idle/intel_idle.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index f80b700f821c..efec4055fd5e 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c | |||
@@ -375,16 +375,7 @@ static int intel_idle(struct cpuidle_device *dev, | |||
375 | if (!(lapic_timer_reliable_states & (1 << (cstate)))) | 375 | if (!(lapic_timer_reliable_states & (1 << (cstate)))) |
376 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu); | 376 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu); |
377 | 377 | ||
378 | if (!current_set_polling_and_test()) { | 378 | mwait_idle_with_hints(eax, ecx); |
379 | |||
380 | if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) | ||
381 | clflush((void *)¤t_thread_info()->flags); | ||
382 | |||
383 | __monitor((void *)¤t_thread_info()->flags, 0, 0); | ||
384 | smp_mb(); | ||
385 | if (!need_resched()) | ||
386 | __mwait(eax, ecx); | ||
387 | } | ||
388 | 379 | ||
389 | if (!(lapic_timer_reliable_states & (1 << (cstate)))) | 380 | if (!(lapic_timer_reliable_states & (1 << (cstate)))) |
390 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu); | 381 | clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu); |