Commit 991528d7348667924176f3e29addea0675298944 introduced mwait_idle which is supposed to work for Intel CPUs starting with Core Duo.
AMD Fam10 processors won't enter C1 on mwait. This patch will enable default_idle for non-Intel CPUs even if mwait is supported. Signed-off-by: Andreas Herrmann <[EMAIL PROTECTED]> --- arch/i386/kernel/process.c | 4 +++- arch/x86_64/kernel/process.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c index 393a67d..e3067e4 100644 --- a/arch/i386/kernel/process.c +++ b/arch/i386/kernel/process.c @@ -259,7 +259,9 @@ static void mwait_idle(void) void __devinit select_idle_routine(const struct cpuinfo_x86 *c) { - if (cpu_has(c, X86_FEATURE_MWAIT)) { + if (cpu_has(c, X86_FEATURE_MWAIT) && + (c->x86_vendor == X86_VENDOR_INTEL)) { + printk("monitor/mwait feature present.\n"); /* * Skip, if setup has overridden idle. diff --git a/arch/x86_64/kernel/process.c b/arch/x86_64/kernel/process.c index d8d5ccc..fed830c 100644 --- a/arch/x86_64/kernel/process.c +++ b/arch/x86_64/kernel/process.c @@ -271,7 +271,8 @@ static void mwait_idle(void) void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c) { static int printed; - if (cpu_has(c, X86_FEATURE_MWAIT)) { + if (cpu_has(c, X86_FEATURE_MWAIT) && + (c->x86_vendor == X86_VENDOR_INTEL)) { /* * Skip, if setup has overridden idle. * One CPU supports mwait => All CPUs supports mwait -- 1.5.0.6 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/