diff options
Diffstat (limited to 'arch/x86/kernel/acpi/cstate.c')
| -rw-r--r-- | arch/x86/kernel/acpi/cstate.c | 27 | 
1 files changed, 3 insertions, 24 deletions
diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c index d2b7f27781b..4b28159e042 100644 --- a/arch/x86/kernel/acpi/cstate.c +++ b/arch/x86/kernel/acpi/cstate.c @@ -87,7 +87,9 @@ static long acpi_processor_ffh_cstate_probe_cpu(void *_cx)  	num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK;  	retval = 0; -	if (num_cstate_subtype < (cx->address & MWAIT_SUBSTATE_MASK)) { +	/* If the HW does not support any sub-states in this C-state */ +	if (num_cstate_subtype == 0) { +		pr_warn(FW_BUG "ACPI MWAIT C-state 0x%x not supported by HW (0x%x)\n", cx->address, edx_part);  		retval = -1;  		goto out;  	} @@ -150,29 +152,6 @@ int acpi_processor_ffh_cstate_probe(unsigned int cpu,  }  EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe); -/* - * This uses new MONITOR/MWAIT instructions on P4 processors with PNI, - * which can obviate IPI to trigger checking of need_resched. - * We execute MONITOR against need_resched and enter optimized wait state - * through MWAIT. Whenever someone changes need_resched, we would be woken - * up from MWAIT (without an IPI). - * - * New with Core Duo processors, MWAIT can take some hints based on CPU - * capability. - */ -void mwait_idle_with_hints(unsigned long ax, unsigned long cx) -{ -	if (!need_resched()) { -		if (this_cpu_has(X86_FEATURE_CLFLUSH_MONITOR)) -			clflush((void *)¤t_thread_info()->flags); - -		__monitor((void *)¤t_thread_info()->flags, 0, 0); -		smp_mb(); -		if (!need_resched()) -			__mwait(ax, cx); -	} -} -  void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx)  {  	unsigned int cpu = smp_processor_id();  | 
