diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 03553ceaf12e7ed7fbb48a1f547852fe774c5968..4903a0a5a0a36d47f0d305ce6e818928a3765574 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -2758,8 +2758,9 @@ static void decode_umc_error(int node_id, struct mce *m) err.csrow = m->synd & 0x7; - if (hygon_f18h_m4h() && boot_cpu_data.x86_model == 0x6) - umc = err.channel << 1; + if ((hygon_f18h_m4h() && boot_cpu_data.x86_model >= 0x6) || + hygon_f18h_m10h()) + umc = (err.channel << 1) + ((m->ipid & BIT(13)) >> 13); else umc = err.channel;