x86: EDAC: MCE: Fix MCE decoding callback logic
[pandora-kernel.git] / drivers / edac / edac_mce_amd.c
index 0c21c37..83a01a1 100644 (file)
@@ -362,7 +362,7 @@ static inline void amd_decode_err_code(unsigned int ec)
                pr_warning("Huh? Unknown MCE error 0x%x\n", ec);
 }
 
-void decode_mce(struct mce *m)
+static void amd_decode_mce(struct mce *m)
 {
        struct err_regs regs;
        int node, ecc;
@@ -420,3 +420,16 @@ void decode_mce(struct mce *m)
 
        amd_decode_err_code(m->status & 0xffff);
 }
+
+static int __init mce_amd_init(void)
+{
+       /*
+        * We can decode MCEs for Opteron and later CPUs:
+        */
+       if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
+           (boot_cpu_data.x86 >= 0xf))
+               x86_mce_decode_callback = amd_decode_mce;
+
+       return 0;
+}
+early_initcall(mce_amd_init);