From 5f1db31ade74792f81b4ee209b55530e6d8ae01a Mon Sep 17 00:00:00 2001
From: Aristeu Rozanski <aris@redhat.com>
Date: Thu, 4 May 2017 14:02:53 -0400
Subject: [PATCH] rasdaemon: add Knights Mill model

Knights Mill is similar to Knights Landing and can use the same code.

Signed-off-by: Aristeu Rozanski <aris@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 mce-intel.c       | 2 ++
 ras-mce-handler.c | 4 ++++
 ras-mce-handler.h | 1 +
 3 files changed, 7 insertions(+)

diff --git a/mce-intel.c b/mce-intel.c
index bf68d9b..f70c676 100644
--- a/mce-intel.c
+++ b/mce-intel.c
@@ -399,6 +399,7 @@ int parse_intel_event(struct ras_events *ras, struct mce_event *e)
 		hsw_decode_model(ras, e);
 		break;
 	case CPU_KNIGHTS_LANDING:
+	case CPU_KNIGHTS_MILL:
 		knl_decode_model(ras, e);
 		break;
 	case CPU_BROADWELL_DE:
@@ -471,6 +472,7 @@ int set_intel_imc_log(enum cputype cputype, unsigned ncpus)
 	case CPU_IVY_BRIDGE_EPEX:
 	case CPU_HASWELL_EPEX:
 	case CPU_KNIGHTS_LANDING:
+	case CPU_KNIGHTS_MILL:
 		msr = 0x17f;	/* MSR_ERROR_CONTROL */
 		bit = 0x2;	/* MemError Log Enable */
 		break;
diff --git a/ras-mce-handler.c b/ras-mce-handler.c
index b875512..2e520d3 100644
--- a/ras-mce-handler.c
+++ b/ras-mce-handler.c
@@ -53,6 +53,7 @@ static char *cputype_name[] = {
 	[CPU_BROADWELL_DE] = "Broadwell DE",
 	[CPU_BROADWELL_EPEX] = "Broadwell EP/EX",
 	[CPU_KNIGHTS_LANDING] = "Knights Landing",
+	[CPU_KNIGHTS_MILL] = "Knights Mill",
 };
 
 static enum cputype select_intel_cputype(struct ras_events *ras)
@@ -100,6 +101,8 @@ static enum cputype select_intel_cputype(struct ras_events *ras)
 			return CPU_BROADWELL;
 		else if (mce->model == 0x57)
 			return CPU_KNIGHTS_LANDING;
+		else if (mce->model == 0x85)
+			return CPU_KNIGHTS_MILL;
 
 		if (mce->model > 0x1a) {
 			log(ALL, LOG_INFO,
@@ -229,6 +232,7 @@ int register_mce_handler(struct ras_events *ras, unsigned ncpus)
 	case CPU_IVY_BRIDGE_EPEX:
 	case CPU_HASWELL_EPEX:
 	case CPU_KNIGHTS_LANDING:
+	case CPU_KNIGHTS_MILL:
 		set_intel_imc_log(mce->cputype, ncpus);
 	default:
 		break;
diff --git a/ras-mce-handler.h b/ras-mce-handler.h
index c5a3717..77effc9 100644
--- a/ras-mce-handler.h
+++ b/ras-mce-handler.h
@@ -48,6 +48,7 @@ enum cputype {
 	CPU_BROADWELL_DE,
 	CPU_BROADWELL_EPEX,
 	CPU_KNIGHTS_LANDING,
+	CPU_KNIGHTS_MILL,
 };
 
 struct mce_event {
-- 
2.9.4

