]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
x86, mce: don't set up mce sysdev devices with mce=off
authorAndi Kleen <andi@firstfloor.org>
Thu, 12 Feb 2009 12:39:30 +0000 (13:39 +0100)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 17 Feb 2009 23:32:50 +0000 (15:32 -0800)
Impact: bug fix, in this case the resume handler shouldn't run which
avoids incorrectly reenabling machine checks on resume

When MCEs are completely disabled on the command line don't set
up the sysdev devices for them either.

Includes a comment fix from Thomas Gleixner.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/kernel/cpu/mcheck/mce_64.c

index 3f0550d16f3c96e218d25effbe7c3ce5ffe85a21..4e2b1bc5131c6384b61fa5040f888f00bfb17f9e 100644 (file)
@@ -151,6 +151,8 @@ static void mce_panic(char *msg, struct mce *backup, unsigned long start)
 
 static int mce_available(struct cpuinfo_x86 *c)
 {
+       if (mce_dont_init)
+               return 0;
        return cpu_has(c, X86_FEATURE_MCE) && cpu_has(c, X86_FEATURE_MCA);
 }
 
@@ -532,8 +534,7 @@ void __cpuinit mcheck_init(struct cpuinfo_x86 *c)
 {
        mce_cpu_quirks(c);
 
-       if (mce_dont_init ||
-           !mce_available(c))
+       if (!mce_available(c))
                return;
 
        mce_init(NULL);
@@ -710,8 +711,7 @@ static int __init mcheck_disable(char *str)
        return 1;
 }
 
-/* mce=off disables machine check. Note you can re-enable it later
-   using sysfs.
+/* mce=off disables machine check.
    mce=TOLERANCELEVEL (number, see above)
    mce=bootlog Log MCEs from before booting. Disabled by default on AMD.
    mce=nobootlog Don't log MCEs from before booting. */