Blame SOURCES/0052-rasdaemon-add-internal-errors-of-IA32_MC4_STATUS-for.patch

71e2cb
From a50a2ae341f8821d71a19d9a3c6ca345e1499e25 Mon Sep 17 00:00:00 2001
71e2cb
From: Seiichi Ikarashi <s.ikarashi@jp.fujitsu.com>
71e2cb
Date: Wed, 17 Jun 2015 07:56:57 -0300
71e2cb
Subject: [PATCH 5/5] rasdaemon: add internal errors of IA32_MC4_STATUS for
71e2cb
 Haswell
71e2cb
71e2cb
Now rasdaemon looks purposely omitting internal errors of
71e2cb
IA32_MC4_STATUS for Haswell-family processors, which are described in
71e2cb
Intel SDM vol3 Table 16-20. I think it's better to show these errors
71e2cb
because mcelog does show them.
71e2cb
71e2cb
Signed-off-by: Seiichi Ikarashi <s.ikarashi@jp.fujitsu.com>
71e2cb
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
71e2cb
---
71e2cb
 mce-intel-haswell.c | 11 +++++------
71e2cb
 1 file changed, 5 insertions(+), 6 deletions(-)
71e2cb
71e2cb
diff --git a/mce-intel-haswell.c b/mce-intel-haswell.c
71e2cb
index 0a817bf..b70e399 100644
71e2cb
--- a/mce-intel-haswell.c
71e2cb
+++ b/mce-intel-haswell.c
71e2cb
@@ -126,18 +126,17 @@ void hsw_decode_model(struct ras_events *ras, struct mce_event *e)
71e2cb
         case 4:
71e2cb
                 switch (EXTRACT(status, 0, 15) & ~(1ull << 12)) {
71e2cb
                 case 0x402: case 0x403:
71e2cb
-                        /* Internal errors */
71e2cb
+                        mce_snprintf(e->mcastatus_msg, "PCU Internal Errors");
71e2cb
                         break;
71e2cb
                 case 0x406:
71e2cb
-                        /* Intel TXT errors */
71e2cb
+                        mce_snprintf(e->mcastatus_msg, "Intel TXT Errors");
71e2cb
                         break;
71e2cb
                 case 0x407:
71e2cb
-                        /* Other UBOX Internal errors */
71e2cb
+                        mce_snprintf(e->mcastatus_msg, "Other UBOX Internal Errors");
71e2cb
                         break;
71e2cb
                 }
71e2cb
-                if (EXTRACT(status, 16, 19))
71e2cb
-                        /* PCU internal error */
71e2cb
-                        ;
71e2cb
+                if (EXTRACT(status, 16, 17) && !EXTRACT(status, 18, 19))
71e2cb
+                        mce_snprintf(e->error_msg, "PCU Internal error");
71e2cb
                 decode_bitfield(e, status, pcu_mc4);
71e2cb
                 break;
71e2cb
         case 5:
71e2cb
-- 
71e2cb
1.8.3.1
71e2cb