Commit 9be0bb10 authored by Borislav Petkov's avatar Borislav Petkov Committed by Borislav Petkov

EDAC, MCE: Add F12h DC MCE decoder

F12h DC MCE signatures are a subset of F10h's so reuse them.
Signed-off-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
parent f0157b3a
...@@ -74,16 +74,10 @@ static const char *f10h_nb_mce_desc[] = { ...@@ -74,16 +74,10 @@ static const char *f10h_nb_mce_desc[] = {
"ECC Error in the Probe Filter directory" "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; bool ret = false;
if (r4 == R4_GEN) {
pr_cont("during data scrub.\n");
return true;
}
if (MEM_ERROR(ec)) { if (MEM_ERROR(ec)) {
u8 ll = ec & 0x3; u8 ll = ec & 0x3;
ret = true; ret = true;
...@@ -98,6 +92,18 @@ static bool f10h_dc_mce(u16 ec) ...@@ -98,6 +92,18 @@ static bool f10h_dc_mce(u16 ec)
return ret; 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) static bool k8_dc_mce(u16 ec)
{ {
if (BUS_ERROR(ec)) { if (BUS_ERROR(ec)) {
...@@ -632,6 +638,10 @@ static int __init mce_amd_init(void) ...@@ -632,6 +638,10 @@ static int __init mce_amd_init(void)
fam_ops->nb_mce = f10h_nb_mce; fam_ops->nb_mce = f10h_nb_mce;
break; break;
case 0x12:
fam_ops->dc_mce = f12h_dc_mce;
break;
case 0x14: case 0x14:
nb_err_cpumask = 0x3; nb_err_cpumask = 0x3;
fam_ops->dc_mce = f14h_dc_mce; fam_ops->dc_mce = f14h_dc_mce;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment