Эх сурвалжийг харах

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>
Borislav Petkov 14 жил өмнө
parent
commit
9be0bb1072

+ 17 - 7
drivers/edac/mce_amd.c

@@ -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;