x86: mce: Don't touch THERMAL_APIC_VECTOR if no active APIC present
authorCyrill Gorcunov <gorcunov@gmail.com>
Mon, 15 Jun 2009 18:26:33 +0000 (22:26 +0400)
committerIngo Molnar <mingo@elte.hu>
Wed, 17 Jun 2009 15:10:22 +0000 (17:10 +0200)
If APIC was disabled (for some reason) and as result
it's not even mapped we should not try to enable thermal
interrupts at all.

Reported-by: Simon Holm Thøgersen <odie@cs.aau.dk>
Tested-by: Simon Holm Thøgersen <odie@cs.aau.dk>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
LKML-Reference: <20090615182633.GA7606@lenovo>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/mcheck/mce_intel.c

index 2b011d2d857921f58672a04f4c8d1ff7afbd1b1c..61e32881f41b58e4fe0194243c2a4e3d53f5ab0c 100644 (file)
@@ -21,9 +21,15 @@ void intel_init_thermal(struct cpuinfo_x86 *c)
        int tm2 = 0;
        u32 l, h;
 
-       /* Thermal monitoring depends on ACPI and clock modulation*/
-       if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC))
+       /*
+        * Thermal monitoring depends on ACPI, clock modulation
+        * and APIC as well
+        */
+       if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC) ||
+               !cpu_has(c, X86_FEATURE_APIC)) {
+               pr_debug("Thermal monitoring disabled\n");
                return;
+       }
 
        /*
         * First check if its enabled already, in which case there might