From 764e126884f483995fa51cb44e1d07b6aa69807a Mon Sep 17 00:00:00 2001 From: Borislav Petkov Date: Fri, 27 Aug 2010 17:03:34 +0200 Subject: [PATCH] --- yaml --- r: 212112 b: refs/heads/master c: ded506232865e8e932bc21c87f48170d50db4d97 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/edac/mce_amd.c | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index a893c6786b27..9a8957b9d7be 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dd53bce4e8987f6848840d42bbeead5221eff308 +refs/heads/master: ded506232865e8e932bc21c87f48170d50db4d97 diff --git a/trunk/drivers/edac/mce_amd.c b/trunk/drivers/edac/mce_amd.c index 60d5d9f4dfee..3c161672a84b 100644 --- a/trunk/drivers/edac/mce_amd.c +++ b/trunk/drivers/edac/mce_amd.c @@ -339,19 +339,27 @@ static void amd_decode_bu_mce(struct mce *m) static void amd_decode_ls_mce(struct mce *m) { - u32 ec = m->status & 0xffff; - u32 xec = (m->status >> 16) & 0xf; + u16 ec = m->status & 0xffff; + u8 xec = (m->status >> 16) & 0xf; + + if (boot_cpu_data.x86 == 0x14) { + pr_emerg("You shouldn't be seeing an LS MCE on this cpu family," + " please report on LKML.\n"); + return; + } pr_emerg(HW_ERR "Load Store Error"); if (xec == 0x0) { - u8 rrrr = (ec >> 4) & 0xf; + u8 r4 = (ec >> 4) & 0xf; - if (!BUS_ERROR(ec) || (rrrr != 0x3 && rrrr != 0x4)) + if (!BUS_ERROR(ec) || (r4 != R4_DRD && r4 != R4_DWR)) goto wrong_ls_mce; pr_cont(" during %s.\n", RRRR_MSG(ec)); - } + } else + goto wrong_ls_mce; + return; wrong_ls_mce: