|
@@ -2174,14 +2174,20 @@ static void __log_bus_error(struct mem_ctl_info *mci, struct err_info *err,
|
|
|
|
|
|
static inline void decode_bus_error(int node_id, struct mce *m)
|
|
|
{
|
|
|
- struct mem_ctl_info *mci = mcis[node_id];
|
|
|
- struct amd64_pvt *pvt = mci->pvt_info;
|
|
|
+ struct mem_ctl_info *mci;
|
|
|
+ struct amd64_pvt *pvt;
|
|
|
u8 ecc_type = (m->status >> 45) & 0x3;
|
|
|
u8 xec = XEC(m->status, 0x1f);
|
|
|
u16 ec = EC(m->status);
|
|
|
u64 sys_addr;
|
|
|
struct err_info err;
|
|
|
|
|
|
+ mci = edac_mc_find(node_id);
|
|
|
+ if (!mci)
|
|
|
+ return;
|
|
|
+
|
|
|
+ pvt = mci->pvt_info;
|
|
|
+
|
|
|
/* Bail out early if this was an 'observed' error */
|
|
|
if (PP(ec) == NBSL_PP_OBS)
|
|
|
return;
|