x86: correct the CPUID pattern for MSR_IA32_MISC_ENABLE availability
authorH. Peter Anvin <hpa@zytor.com>
Mon, 26 Jan 2009 17:40:58 +0000 (09:40 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 26 Jan 2009 17:40:58 +0000 (09:40 -0800)
Impact: re-enable CPUID unmasking on affected processors

As far as I am capable of discerning from the documentation,
MSR_IA32_MISC_ENABLE should be available for all family 0xf CPUs, as
well as family 6 for model >= 0xd (newer Pentium M).

The documentation on this isn't ideal, so we need to be on the lookout
for errors, still.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/kernel/cpu/intel.c

index 549f2ada55f584bd045e13fb1e0c65a029f317e1..430e5c38a5449a93c65e0877d780bbf2cac97884 100644 (file)
@@ -30,7 +30,7 @@
 static void __cpuinit early_init_intel(struct cpuinfo_x86 *c)
 {
        /* Unmask CPUID levels if masked: */
-       if (c->x86 == 6 && c->x86_model >= 15) {
+       if (c->x86 > 6 || (c->x86 == 6 && c->x86_model >= 0xd)) {
                u64 misc_enable;
 
                rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);