From: Qiuxu Zhuo Date: Wed, 14 Aug 2024 06:10:11 +0000 (+0800) Subject: EDAC/igen6: Fix conversion of system address to physical memory address X-Git-Tag: v6.12-rc1~229^2^3~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ad875f442e95d69a1145a38aabac2fd29984fe3;p=thirdparty%2Flinux.git EDAC/igen6: Fix conversion of system address to physical memory address The conversion of system address to physical memory address (as viewed by the memory controller) by igen6_edac is incorrect when the system address is above the TOM (Total amount Of populated physical Memory) for Elkhart Lake and Ice Lake (Neural Network Processor). Fix this conversion. Fixes: 10590a9d4f23 ("EDAC/igen6: Add EDAC driver for Intel client SoCs using IBECC") Signed-off-by: Qiuxu Zhuo Signed-off-by: Tony Luck Cc: stable@vger.kernel.org Link: https://lore.kernel.org/stable/20240814061011.43545-1-qiuxu.zhuo%40intel.com --- diff --git a/drivers/edac/igen6_edac.c b/drivers/edac/igen6_edac.c index 0fe75eed8973b..189a2fc29e74f 100644 --- a/drivers/edac/igen6_edac.c +++ b/drivers/edac/igen6_edac.c @@ -316,7 +316,7 @@ static u64 ehl_err_addr_to_imc_addr(u64 eaddr, int mc) if (igen6_tom <= _4GB) return eaddr + igen6_tolud - _4GB; - if (eaddr < _4GB) + if (eaddr >= igen6_tom) return eaddr + igen6_tolud - igen6_tom; return eaddr;