/* 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)
/* 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)
{
	trace_power_start(POWER_CSTATE, (ax>>4)+1);
	if (!need_resched()) {
		if (cpu_has(&current_cpu_data, X86_FEATURE_CLFLUSH_MONITOR))
			clflush((void *)&current_thread_info()->flags);
		__monitor((void *)&current_thread_info()->flags, 0, 0);
		smp_mb();
		if (!need_resched())
			__mwait(ax, cx);
	}
}