krishnanadh / rpms / rasdaemon

Forked from rpms/rasdaemon a year ago
Clone

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

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