Commit 61754cf8 authored by Pu Wen's avatar Pu Wen
Browse files

EDAC/amd64: Fix intlv_num_chan for Hygon family 18h model 4h

hygon inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I92NKS


CVE: NA

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

Make the modification in commit f2f10bd1 to intlv_num_chan only
for Hygon family 18h model 4h.

Fixes: f2f10bd1 ("EDAC/amd64: Adjust address translation for Hygon family 18h model 4h")
Signed-off-by: default avatarPu Wen <puwen@hygon.cn>
parent 7f9decc5
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -809,10 +809,6 @@ static int umc_normaddr_to_sysaddr(u64 norm_addr, u16 nid, u8 umc, u64 *sys_addr
	switch (intlv_num_chan) {
	case 0:	intlv_num_chan = 0; break;
	case 1: intlv_num_chan = 1; break;
	case 2:
		if (hygon_f18h_m4h())
			intlv_num_chan = 2;
		break;
	case 3: intlv_num_chan = 2; break;
	case 5:	intlv_num_chan = 3; break;
	case 7:	intlv_num_chan = 4; break;
@@ -821,6 +817,9 @@ static int umc_normaddr_to_sysaddr(u64 norm_addr, u16 nid, u8 umc, u64 *sys_addr
		hash_enabled = true;
		break;
	default:
		if (hygon_f18h_m4h() && boot_cpu_data.x86_model == 0x4 &&
		    intlv_num_chan == 2)
			break;
		pr_err("%s: Invalid number of interleaved channels %d.\n",
			__func__, intlv_num_chan);
		goto out_err;