diff options
| author | James Morris <jmorris@namei.org> | 2009-03-24 10:52:46 +1100 |
|---|---|---|
| committer | James Morris <jmorris@namei.org> | 2009-03-24 10:52:46 +1100 |
| commit | 703a3cd72817e99201cef84a8a7aecc60b2b3581 (patch) | |
| tree | 3e943755178ff410694722bb031f523136fbc432 /arch/x86/kernel/process.c | |
| parent | SELinux: inode_doinit_with_dentry drop no dentry printk (diff) | |
| parent | Linux 2.6.29 (diff) | |
| download | linux-703a3cd72817e99201cef84a8a7aecc60b2b3581.tar.gz linux-703a3cd72817e99201cef84a8a7aecc60b2b3581.zip | |
Merge branch 'master' into next
Diffstat (limited to 'arch/x86/kernel/process.c')
| -rw-r--r-- | arch/x86/kernel/process.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index e68bb9e30864..6d12f7e37f8c 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -180,6 +180,9 @@ void mwait_idle_with_hints(unsigned long ax, unsigned long cx) trace_power_start(&it, POWER_CSTATE, (ax>>4)+1); if (!need_resched()) { + if (cpu_has(¤t_cpu_data, X86_FEATURE_CLFLUSH_MONITOR)) + clflush((void *)¤t_thread_info()->flags); + __monitor((void *)¤t_thread_info()->flags, 0, 0); smp_mb(); if (!need_resched()) @@ -194,6 +197,9 @@ static void mwait_idle(void) struct power_trace it; if (!need_resched()) { trace_power_start(&it, POWER_CSTATE, 1); + if (cpu_has(¤t_cpu_data, X86_FEATURE_CLFLUSH_MONITOR)) + clflush((void *)¤t_thread_info()->flags); + __monitor((void *)¤t_thread_info()->flags, 0, 0); smp_mb(); if (!need_resched()) |
