aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2012-01-03 14:48:04 -0500
committerTony Luck <tony.luck@intel.com>2012-01-03 15:07:07 -0500
commit5f7b88d51e89771f64c15903b96b5933dd0bc6d8 (patch)
treeb6ee73357d24d1ea194babf152878f8a7f609c8f /arch/x86/kernel
parenta8c321fbf9aeced45519248e5901af8cbc240510 (diff)
x86/mce: Recognise machine check bank signature for data path error
Action required data path signature is defined in table 15-19 of SDM: +-----------------------------------------------------------------------------+ | SRAR Error | Valid | OVER | UC | EN | MISCV | ADDRV | PCC | S | AR | MCACOD | | Data Load | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0x134 | +-----------------------------------------------------------------------------+ Recognise this, and pass MCE_AR_SEVERITY code back to do_machine_check() if we have the action handler configured (CONFIG_MEMORY_FAILURE=y) Acked-by: Borislav Petkov <bp@amd64.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce-severity.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce-severity.c b/arch/x86/kernel/cpu/mcheck/mce-severity.c
index 7395d5f4272d..f6c92f99efa0 100644
--- a/arch/x86/kernel/cpu/mcheck/mce-severity.c
+++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c
@@ -54,6 +54,7 @@ static struct severity {
54#define MASK(x, y) .mask = x, .result = y 54#define MASK(x, y) .mask = x, .result = y
55#define MCI_UC_S (MCI_STATUS_UC|MCI_STATUS_S) 55#define MCI_UC_S (MCI_STATUS_UC|MCI_STATUS_S)
56#define MCI_UC_SAR (MCI_STATUS_UC|MCI_STATUS_S|MCI_STATUS_AR) 56#define MCI_UC_SAR (MCI_STATUS_UC|MCI_STATUS_S|MCI_STATUS_AR)
57#define MCI_ADDR (MCI_STATUS_ADDRV|MCI_STATUS_MISCV)
57#define MCACOD 0xffff 58#define MCACOD 0xffff
58 59
59 MCESEV( 60 MCESEV(
@@ -102,11 +103,24 @@ static struct severity {
102 SER, BITCLR(MCI_STATUS_S) 103 SER, BITCLR(MCI_STATUS_S)
103 ), 104 ),
104 105
105 /* AR add known MCACODs here */
106 MCESEV( 106 MCESEV(
107 PANIC, "Action required with lost events", 107 PANIC, "Action required with lost events",
108 SER, BITSET(MCI_STATUS_OVER|MCI_UC_SAR) 108 SER, BITSET(MCI_STATUS_OVER|MCI_UC_SAR)
109 ), 109 ),
110
111 /* known AR MCACODs: */
112#ifdef CONFIG_MEMORY_FAILURE
113 MCESEV(
114 KEEP, "HT thread notices Action required: data load error",
115 SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR|MCI_ADDR|MCACOD, MCI_UC_SAR|MCI_ADDR|0x0134),
116 MCGMASK(MCG_STATUS_EIPV, 0)
117 ),
118 MCESEV(
119 AR, "Action required: data load error",
120 SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR|MCI_ADDR|MCACOD, MCI_UC_SAR|MCI_ADDR|0x0134),
121 USER
122 ),
123#endif
110 MCESEV( 124 MCESEV(
111 PANIC, "Action required: unknown MCACOD", 125 PANIC, "Action required: unknown MCACOD",
112 SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_SAR) 126 SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_SAR)