Commit 92343ad2 authored by Pu Wen's avatar Pu Wen
Browse files

EDAC/mce_amd: Use struct cpuinfo_x86.logical_die_id for Hygon NodeId

hygon inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I8U3K8


CVE: NA

---------------------------

The cpuinfo_x86.cpu_die_id is get from CPUID or MSR in the commit
028c221e ("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: default avatarPu Wen <puwen@hygon.cn>
parent 845ff731
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1187,9 +1187,14 @@ static void decode_smca_error(struct mce *m)
		pr_cont(", %s.\n", smca_mce_descs[bank_type].descs[xec]);

	if ((bank_type == SMCA_UMC || bank_type == SMCA_UMC_V2) &&
	    xec == 0 && decode_dram_ecc)
	    xec == 0 && decode_dram_ecc) {
		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)
{