From 9be0bb1072e3544934e0ac20f184e50805aecf9c Mon Sep 17 00:00:00 2001 From: Borislav Petkov Date: Thu, 16 Sep 2010 15:08:14 +0200 Subject: EDAC, MCE: Add F12h DC MCE decoder F12h DC MCE signatures are a subset of F10h's so reuse them. Signed-off-by: Borislav Petkov --- drivers/edac/mce_amd.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'drivers/edac') diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c index 9fa61ee2d74..1f895dfb756 100644 --- a/drivers/edac/mce_amd.c +++ b/drivers/edac/mce_amd.c @@ -74,16 +74,10 @@ static const char *f10h_nb_mce_desc[] = { "ECC Error in the Probe Filter directory" }; -static bool f10h_dc_mce(u16 ec) +static bool f12h_dc_mce(u16 ec) { - u8 r4 = (ec >> 4) & 0xf; bool ret = false; - if (r4 == R4_GEN) { - pr_cont("during data scrub.\n"); - return true; - } - if (MEM_ERROR(ec)) { u8 ll = ec & 0x3; ret = true; @@ -98,6 +92,18 @@ static bool f10h_dc_mce(u16 ec) return ret; } +static bool f10h_dc_mce(u16 ec) +{ + u8 r4 = (ec >> 4) & 0xf; + u8 ll = ec & 0x3; + + if (r4 == R4_GEN && ll == LL_L1) { + pr_cont("during data scrub.\n"); + return true; + } + return f12h_dc_mce(ec); +} + static bool k8_dc_mce(u16 ec) { if (BUS_ERROR(ec)) { @@ -632,6 +638,10 @@ static int __init mce_amd_init(void) fam_ops->nb_mce = f10h_nb_mce; break; + case 0x12: + fam_ops->dc_mce = f12h_dc_mce; + break; + case 0x14: nb_err_cpumask = 0x3; fam_ops->dc_mce = f14h_dc_mce; -- cgit v1.2.3