Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -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;