diff options
author | Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com> | 2014-11-04 12:41:08 -0500 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2014-11-04 12:49:20 -0500 |
commit | bc4febe93c2fd7d0e74dad773bad2ed0237780ee (patch) | |
tree | 5b61bff16d580d78944eb22970206ea0fa429619 /drivers/edac | |
parent | a597d2a5d9820dbbadd70583170c48c7290427df (diff) |
EDAC, MCE, AMD: Add decoding table for MC6 xec
Extended error code meanings are tabulated for other banks. Extend that
tradition for MC6 too.
Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
Link: http://lkml.kernel.org/r/1415122868-10969-1-git-send-email-aravind.gopalakrishnan@amd.com
Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/mce_amd.c | 41 |
1 files changed, 11 insertions, 30 deletions
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c index f78c1c54dbd5..5d4efae864e4 100644 --- a/drivers/edac/mce_amd.c +++ b/drivers/edac/mce_amd.c | |||
@@ -138,6 +138,15 @@ static const char * const mc5_mce_desc[] = { | |||
138 | "Retire status queue" | 138 | "Retire status queue" |
139 | }; | 139 | }; |
140 | 140 | ||
141 | static const char * const mc6_mce_desc[] = { | ||
142 | "Hardware Assertion", | ||
143 | "Free List", | ||
144 | "Physical Register File", | ||
145 | "Retire Queue", | ||
146 | "Scheduler table", | ||
147 | "Status Register File", | ||
148 | }; | ||
149 | |||
141 | static bool f12h_mc0_mce(u16 ec, u8 xec) | 150 | static bool f12h_mc0_mce(u16 ec, u8 xec) |
142 | { | 151 | { |
143 | bool ret = false; | 152 | bool ret = false; |
@@ -672,38 +681,10 @@ static void decode_mc6_mce(struct mce *m) | |||
672 | 681 | ||
673 | pr_emerg(HW_ERR "MC6 Error: "); | 682 | pr_emerg(HW_ERR "MC6 Error: "); |
674 | 683 | ||
675 | switch (xec) { | 684 | if (xec > 0x5) |
676 | case 0x0: | ||
677 | pr_cont("Hardware Assertion"); | ||
678 | break; | ||
679 | |||
680 | case 0x1: | ||
681 | pr_cont("Free List"); | ||
682 | break; | ||
683 | |||
684 | case 0x2: | ||
685 | pr_cont("Physical Register File"); | ||
686 | break; | ||
687 | |||
688 | case 0x3: | ||
689 | pr_cont("Retire Queue"); | ||
690 | break; | ||
691 | |||
692 | case 0x4: | ||
693 | pr_cont("Scheduler table"); | ||
694 | break; | ||
695 | |||
696 | case 0x5: | ||
697 | pr_cont("Status Register File"); | ||
698 | break; | ||
699 | |||
700 | default: | ||
701 | goto wrong_mc6_mce; | 685 | goto wrong_mc6_mce; |
702 | break; | ||
703 | } | ||
704 | |||
705 | pr_cont(" parity error.\n"); | ||
706 | 686 | ||
687 | pr_cont("%s parity error.\n", mc6_mce_desc[xec]); | ||
707 | return; | 688 | return; |
708 | 689 | ||
709 | wrong_mc6_mce: | 690 | wrong_mc6_mce: |