diff options
Diffstat (limited to 'drivers/edac/amd64_edac.c')
-rw-r--r-- | drivers/edac/amd64_edac.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 17638d7cf5c2..5907c1718f8c 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
@@ -2174,14 +2174,20 @@ static void __log_bus_error(struct mem_ctl_info *mci, struct err_info *err, | |||
2174 | 2174 | ||
2175 | static inline void decode_bus_error(int node_id, struct mce *m) | 2175 | static inline void decode_bus_error(int node_id, struct mce *m) |
2176 | { | 2176 | { |
2177 | struct mem_ctl_info *mci = mcis[node_id]; | 2177 | struct mem_ctl_info *mci; |
2178 | struct amd64_pvt *pvt = mci->pvt_info; | 2178 | struct amd64_pvt *pvt; |
2179 | u8 ecc_type = (m->status >> 45) & 0x3; | 2179 | u8 ecc_type = (m->status >> 45) & 0x3; |
2180 | u8 xec = XEC(m->status, 0x1f); | 2180 | u8 xec = XEC(m->status, 0x1f); |
2181 | u16 ec = EC(m->status); | 2181 | u16 ec = EC(m->status); |
2182 | u64 sys_addr; | 2182 | u64 sys_addr; |
2183 | struct err_info err; | 2183 | struct err_info err; |
2184 | 2184 | ||
2185 | mci = edac_mc_find(node_id); | ||
2186 | if (!mci) | ||
2187 | return; | ||
2188 | |||
2189 | pvt = mci->pvt_info; | ||
2190 | |||
2185 | /* Bail out early if this was an 'observed' error */ | 2191 | /* Bail out early if this was an 'observed' error */ |
2186 | if (PP(ec) == NBSL_PP_OBS) | 2192 | if (PP(ec) == NBSL_PP_OBS) |
2187 | return; | 2193 | return; |