mirror of https://github.com/torvalds/linux.git
- Make sure amd64_edac loads successfully on certain Zen4 memory
configurations -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmdeyFMACgkQEsHwGGHe VUreqBAAikT17Pe4mCX67bDbNyM394/2COS4U8NnXB4gVEFfsKjQt0QYYwQis6h4 NNJEx8O8M3K3gDZ1/j0SK01IAuYGPpt3j8YFssiVRfgaHduU0UK2kU0CQtAtLCtE IkMhLHx+xFWySdCIScRuxnaxP4i3lULd0DFrGmx94x6/Xr+U0PWtHks+OK5alRef WAoauHG2EkkII8xlSCBKQnGG7Lb8oy9yBNF6YLCyc5Dr0839zMhBUpdxl0qmUwI+ S2yAj5ZvSoUqnjOvfx/q79nuzzUNLvrpR6HA+i4JcjtPerq9wvihOemceBYExhyq 9neyL26vK7VmlJ8hy1fV5DWo3zZPYMJXaG9y4G4eT7TW/HHWX1n5CzoiEfMPNwvc 4Ok0zMv29Sl8ZH5gK30BBgu7bH7/crM1RfzrmrqfLoG7/yMFVMHVOpFq8FYTMRGn INc+KwDBVQk00nr4KGH3EOPlRpWQxf8DiP6zj6VzHv7XdtTYZkVPsA01kOQ+qvNE XVkBCqkVxKZvEy5eA269lia410jSFtzcV145sH+AfhkIxq8DR/W4rOiKcDr+LM84 4YrlxvSly9jFEM9md3EYQdrzgKe4ag5D9z4/aWi8s4ZRr8m3HdtwuxHYNH2POJkn 7un4OaSk3dz8E0PuohoFp8OFOS0+Sf1ZmhTgYRhm4FxJ+HMzYwk= =Cv0Q -----END PGP SIGNATURE----- Merge tag 'edac_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras Pull EDAC fix from Borislav Petkov: - Make sure amd64_edac loads successfully on certain Zen4 memory configurations * tag 'edac_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: EDAC/amd64: Simplify ECC check on unified memory controllers
This commit is contained in:
commit
dccbe2047a
|
|
@ -3362,36 +3362,24 @@ static bool dct_ecc_enabled(struct amd64_pvt *pvt)
|
|||
|
||||
static bool umc_ecc_enabled(struct amd64_pvt *pvt)
|
||||
{
|
||||
u8 umc_en_mask = 0, ecc_en_mask = 0;
|
||||
u16 nid = pvt->mc_node_id;
|
||||
struct amd64_umc *umc;
|
||||
u8 ecc_en = 0, i;
|
||||
bool ecc_en = false;
|
||||
int i;
|
||||
|
||||
/* Check whether at least one UMC is enabled: */
|
||||
for_each_umc(i) {
|
||||
umc = &pvt->umc[i];
|
||||
|
||||
/* Only check enabled UMCs. */
|
||||
if (!(umc->sdp_ctrl & UMC_SDP_INIT))
|
||||
continue;
|
||||
|
||||
umc_en_mask |= BIT(i);
|
||||
|
||||
if (umc->umc_cap_hi & UMC_ECC_ENABLED)
|
||||
ecc_en_mask |= BIT(i);
|
||||
if (umc->sdp_ctrl & UMC_SDP_INIT &&
|
||||
umc->umc_cap_hi & UMC_ECC_ENABLED) {
|
||||
ecc_en = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check whether at least one UMC is enabled: */
|
||||
if (umc_en_mask)
|
||||
ecc_en = umc_en_mask == ecc_en_mask;
|
||||
else
|
||||
edac_dbg(0, "Node %d: No enabled UMCs.\n", nid);
|
||||
edac_dbg(3, "Node %d: DRAM ECC %s.\n", pvt->mc_node_id, (ecc_en ? "enabled" : "disabled"));
|
||||
|
||||
edac_dbg(3, "Node %d: DRAM ECC %s.\n", nid, (ecc_en ? "enabled" : "disabled"));
|
||||
|
||||
if (!ecc_en)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
return ecc_en;
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
|
|
|||
Loading…
Reference in New Issue