diff options
author | Yazen Ghannam <Yazen.Ghannam@amd.com> | 2016-09-12 03:59:38 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-13 09:23:13 -0400 |
commit | 4b711f92c9b21878794597997ecda1428acc334c (patch) | |
tree | e66235e4b2d909072edc8c2f002f21fdcec2122b | |
parent | 5828c46f2c07b97d758da6dc6afd5c374768d44d (diff) |
x86/mce, EDAC/mce_amd: Print MCA_SYND and MCA_IPID during MCE on SMCA systems
The MCA_SYND and MCA_IPID registers contain valuable information and
should be included in MCE output. The MCA_SYND register contains
syndrome and other error information, and the MCA_IPID register will
uniquely identify the MCA bank's type without having to rely on system
software.
Signed-off-by: Yazen Ghannam <Yazen.Ghannam@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1472680624-34221-2-git-send-email-Yazen.Ghannam@amd.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/mce.c | 7 | ||||
-rw-r--r-- | drivers/edac/mce_amd.c | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 17e9ff011c0e..7d905e3d58a2 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c | |||
@@ -293,6 +293,13 @@ static void print_mce(struct mce *m) | |||
293 | if (m->misc) | 293 | if (m->misc) |
294 | pr_cont("MISC %llx ", m->misc); | 294 | pr_cont("MISC %llx ", m->misc); |
295 | 295 | ||
296 | if (mce_flags.smca) { | ||
297 | if (m->synd) | ||
298 | pr_cont("SYND %llx ", m->synd); | ||
299 | if (m->ipid) | ||
300 | pr_cont("IPID %llx ", m->ipid); | ||
301 | } | ||
302 | |||
296 | pr_cont("\n"); | 303 | pr_cont("\n"); |
297 | /* | 304 | /* |
298 | * Note this output is parsed by external tools and old fields | 305 | * Note this output is parsed by external tools and old fields |
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c index 99b3bf3f4182..e8855a4f92d9 100644 --- a/drivers/edac/mce_amd.c +++ b/drivers/edac/mce_amd.c | |||
@@ -984,6 +984,8 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data) | |||
984 | if (m->status & MCI_STATUS_SYNDV) | 984 | if (m->status & MCI_STATUS_SYNDV) |
985 | pr_cont(", Syndrome: 0x%016llx", m->synd); | 985 | pr_cont(", Syndrome: 0x%016llx", m->synd); |
986 | 986 | ||
987 | pr_cont(", IPID: 0x%016llx", m->ipid); | ||
988 | |||
987 | pr_cont("\n"); | 989 | pr_cont("\n"); |
988 | 990 | ||
989 | decode_smca_errors(m); | 991 | decode_smca_errors(m); |