[patch] typo in i386 machine check code

From: Pete Wyckoff (pw@osc.edu)
Date: Tue Jan 29 2002 - 13:25:32 EST


Our old PIII Xeons are dying, as shown by more frequent panics
due to bad hardware:

    kernel: CPU 3: Machine Check Exception: 0000000000000007
    kernel: Bank 0: b678600022000800 at 3678600022000800

The part after the "at" is supposed to be the memory address which
was being accessed when the fault was detected. Instead the code
prints out the status field again (with the high bit removed for
no apparent reason).

Patch is against 2.5.2.

                -- Pete

--- linux/arch/i386/kernel/bluesmoke.c.orig Tue Jan 29 12:04:46 2002
+++ linux/arch/i386/kernel/bluesmoke.c Tue Jan 29 12:04:48 2002
@@ -40,21 +40,21 @@ static void intel_machine_check(struct p
                         high&=~(1<<31);
                         if(high&(1<<27))
                         {
                                 rdmsr(MSR_IA32_MC0_MISC+i*4, alow, ahigh);
                                 printk("[%08x%08x]", alow, ahigh);
                         }
                         if(high&(1<<26))
                         {
                                 rdmsr(MSR_IA32_MC0_ADDR+i*4, alow, ahigh);
                                 printk(" at %08x%08x",
- high, low);
+ ahigh, alow);
                         }
                         printk("\n");
                         /* Clear it */
                         wrmsr(MSR_IA32_MC0_STATUS+i*4, 0UL, 0UL);
                         /* Serialize */
                         wmb();
                 }
         }
         
         if(recover&2)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jan 31 2002 - 21:01:05 EST