diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 03553ceaf12e7ed7fbb48a1f547852fe774c5968..9db0d64fa22d3feecd0c0be872ff3c6c2addda01 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -3358,9 +3358,13 @@ static bool ecc_enabled(struct pci_dev *F3, u16 nid) if (boot_cpu_data.x86 >= 0x17) { u8 umc_en_mask = 0, ecc_en_mask = 0; + u32 base; for_each_umc(i) { - u32 base = get_umc_base(i); + if (hygon_f18h_m4h()) + base = get_umc_base_f18h_m4h(nid, i); + else + base = get_umc_base(i); /* Only check enabled UMCs. */ if (amd_smn_read(nid, base + UMCCH_SDP_CTRL, &value))