diff options
Diffstat (limited to 'arch/x86/kernel/process.c')
| -rw-r--r-- | arch/x86/kernel/process.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index dc8ca8ea78c..8040b752ee4 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -582,9 +582,17 @@ int mwait_usable(const struct cpuinfo_x86 *c)  {  	u32 eax, ebx, ecx, edx; +	/* Use mwait if idle=mwait boot option is given */  	if (boot_option_idle_override == IDLE_FORCE_MWAIT)  		return 1; +	/* +	 * Any idle= boot option other than idle=mwait means that we must not +	 * use mwait. Eg: idle=halt or idle=poll or idle=nomwait +	 */ +	if (boot_option_idle_override != IDLE_NO_OVERRIDE) +		return 0; +  	if (c->cpuid_level < MWAIT_INFO)  		return 0;  |