]> err.no Git - linux-2.6/blobdiff - arch/x86/kernel/cpu/mcheck/mce_64.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg...
[linux-2.6] / arch / x86 / kernel / cpu / mcheck / mce_64.c
index 9a699ed035982ddeac48c4800478d5c8d4a0a5c4..e07e8c068ae00c464cdbf828cfbc8c67aaf76202 100644 (file)
@@ -49,7 +49,7 @@ static int banks;
 static unsigned long bank[NR_BANKS] = { [0 ... NR_BANKS-1] = ~0UL };
 static unsigned long notify_user;
 static int rip_msr;
-static int mce_bootlog = 1;
+static int mce_bootlog = -1;
 static atomic_t mce_events;
 
 static char trigger[128];
@@ -471,13 +471,15 @@ static void mce_init(void *dummy)
 static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c)
 {
        /* This should be disabled by the BIOS, but isn't always */
-       if (c->x86_vendor == X86_VENDOR_AMD && c->x86 == 15) {
-               /* disable GART TBL walk error reporting, which trips off
-                  incorrectly with the IOMMU & 3ware & Cerberus. */
-               clear_bit(10, &bank[4]);
-               /* Lots of broken BIOS around that don't clear them
-                  by default and leave crap in there. Don't log. */
-               mce_bootlog = 0;
+       if (c->x86_vendor == X86_VENDOR_AMD) {
+               if(c->x86 == 15)
+                       /* disable GART TBL walk error reporting, which trips off
+                          incorrectly with the IOMMU & 3ware & Cerberus. */
+                       clear_bit(10, &bank[4]);
+               if(c->x86 <= 17 && mce_bootlog < 0)
+                       /* Lots of broken BIOS around that don't clear them
+                          by default and leave crap in there. Don't log. */
+                       mce_bootlog = 0;
        }
 
 }