EDAC/mce_amd: Use struct cpuinfo_x86.logical_die_id for Hygon NodeId
The cpuinfo_x86.cpu_die_id is get from CPUID or MSR in the commit
028c221ed1
("x86/CPU/AMD: Save AMD NodeId as cpu_die_id"). But the
value may not be continuous for Hygon model 4h~6h processors.
Use cpuinfo_x86.logical_die_id will always format continuous die
(or node) IDs, because it will convert the physical die ID to logical
die ID.
So use topology_logical_die_id() instead of topology_die_id() to
decode UMC ECC errors for Hygon processors.
Signed-off-by: Pu Wen <puwen@hygon.cn>
Signed-off-by: Jinliang Zheng <alexjlzheng@tencent.com>
Reviewed-by: Bin Lai <robinlai@tencent.com>
Signed-off-by: Jinliang Zheng <alexjlzheng@tencent.com>
Reviewed-by: caelli <caelli@tencent.com>
Signed-off-by: Jianping Liu <frankjpliu@tencent.com>
This commit is contained in:
parent
2c453f4b4e
commit
9680d833c1
|
@ -1184,8 +1184,13 @@ static void decode_smca_error(struct mce *m)
|
||||||
if (xec < smca_mce_descs[bank_type].num_descs)
|
if (xec < smca_mce_descs[bank_type].num_descs)
|
||||||
pr_cont(", %s.\n", smca_mce_descs[bank_type].descs[xec]);
|
pr_cont(", %s.\n", smca_mce_descs[bank_type].descs[xec]);
|
||||||
|
|
||||||
if (bank_type == SMCA_UMC && xec == 0 && decode_dram_ecc)
|
if (bank_type == SMCA_UMC && xec == 0 && decode_dram_ecc) {
|
||||||
decode_dram_ecc(topology_die_id(m->extcpu), m);
|
if (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON &&
|
||||||
|
boot_cpu_data.x86 == 0x18)
|
||||||
|
decode_dram_ecc(topology_logical_die_id(m->extcpu), m);
|
||||||
|
else
|
||||||
|
decode_dram_ecc(topology_die_id(m->extcpu), m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void amd_decode_err_code(u16 ec)
|
static inline void amd_decode_err_code(u16 ec)
|
||||||
|
|
Loading…
Reference in New Issue