patch-2.2.18 linux/arch/i386/kernel/bluesmoke.c

Next file: linux/arch/i386/kernel/cpuid.c
Previous file: linux/arch/i386/kernel/bios32.c
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/arch/i386/kernel/bluesmoke.c linux/arch/i386/kernel/bluesmoke.c
@@ -22,7 +22,7 @@
 	if(mcgstl&(1<<0))	/* Recoverable ? */
 		recover=0;
 
-	printk(KERN_EMERG "CPU %d: Machine Check Exception: %08x%08x", smp_processor_id(), mcgstl, mcgsth);
+	printk(KERN_EMERG "CPU %d: Machine Check Exception: %08x%08x\n", smp_processor_id(), mcgsth, mcgstl);
 	
 	for(i=0;i<banks;i++)
 	{
@@ -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))
@@ -46,7 +46,10 @@
 				printk(" at %08x%08x", 
 					high, low);
 			}
-			wrmsr(0x401+i*4, low, high);
+			/* Clear it */
+			wrmsr(0x401+i*4, 0UL, 0UL);
+			/* Serialize */
+			mb();
 		}
 	}
 	

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)