krishnanadh / rpms / rasdaemon

Forked from rpms/rasdaemon a year ago
Clone

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

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