machine check handler

From: Andrea Arcangeli (andrea@suse.de)
Date: Sat Sep 16 2000 - 12:34:39 EST


This patch fixes two little bugs in the IA32 machine check handler, it's against
2.2.17pre7.

The first bug is that the MC0_MISC is at address 403H, the second is that
wmb() as implemented in IA32 doesn't serialize, a lock on the bus as
given from mb() will serialize instead.

--- 2.2.18pre7/arch/i386/kernel/bluesmoke.c.~1~ Thu Sep 14 19:28:06 2000
+++ 2.2.18pre7/arch/i386/kernel/bluesmoke.c Sat Sep 16 17:59:02 2000
@@ -37,7 +37,7 @@
                         high&=~(1<<31);
                         if(high&(1<<27))
                         {
- rdmsr(0x402+i*4, alow, ahigh);
+ rdmsr(0x403+i*4, alow, ahigh);
                                 printk("[%08x%08x]", alow, ahigh);
                         }
                         if(high&(1<<26))
@@ -49,7 +49,7 @@
                         /* Clear it */
                         wrmsr(0x401+i*4, 0UL, 0UL);
                         /* Serialize */
- wmb();
+ mb();
                 }
         }
         

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 21:00:13 EST