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 <borislav.petkov@amd.com>
This commit is contained in:
parent
f0157b3afd
commit
9be0bb1072
|
@ -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)
|
||||||
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)
|
||||||
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;
|
||||||
|
|
Loading…
Reference in New Issue