diff -r e2f5e4f3481c xen/arch/x86/cpu/mcheck/k7.c --- a/xen/arch/x86/cpu/mcheck/k7.c Tue Jun 22 16:22:30 2010 +0100 +++ b/xen/arch/x86/cpu/mcheck/k7.c Wed Jun 23 13:11:59 2010 +0200 @@ -19,51 +19,53 @@ /* Machine Check Handler For AMD Athlon/Duron */ static fastcall void k7_machine_check(struct cpu_user_regs * regs, long error_code) { - int recover=1; - u32 alow, ahigh, high, low; - u32 mcgstl, mcgsth; + int recover = 1; + uint64_t msr_content, mcgst; int i; - rdmsr (MSR_IA32_MCG_STATUS, mcgstl, mcgsth); - if (mcgstl & (1<<0)) /* Recoverable ? */ - recover=0; + rdmsrl(MSR_IA32_MCG_STATUS, mcgst); + if (mcgst & MCG_STATUS_RIPV) /* Recoverable ? */ + recover = 0; - printk (KERN_EMERG "CPU %d: Machine Check Exception: %08x%08x\n", - smp_processor_id(), mcgsth, mcgstl); + printk(KERN_EMERG "CPU %d: Machine Check Exception: 0x%016"PRIx64"\n", + smp_processor_id(), mcgst); - for (i=1; i