diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 8d9f4100628733f7902d6771a56299099d086739..eeb8de51605ccf527bbbb987c7924dab56bc6800 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -2778,8 +2778,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;