linux-yocto/drivers/edac
Qiuxu Zhuo 3ff2422442 EDAC/{skx_common,i10nm}: Fix the loss of saved RRL for HBM pseudo channel 0
[ Upstream commit eeed3e03f4261e5e381a72ae099ff00ccafbb437 ]

When enabling the retry_rd_err_log (RRL) feature during the loading of the
i10nm_edac driver with the module parameter retry_rd_err_log=2 (Linux RRL
control mode), the default values of the control bits of RRL are saved so
that they can be restored during the unloading of the driver.

In the current code, the RRL of pseudo channel 1 of HBM overwrites pseudo
channel 0 during the loading of the driver, resulting in the loss of saved
RRL for pseudo channel 0. This causes the RRL of pseudo channel 0 of HBM to
be wrongly restored with the values from pseudo channel 1 when unloading
the driver.

Fix this issue by creating two separate groups of RRL control registers
per channel to save default RRL settings of two {sub-,pseudo-}channels.

Fixes: acd4cf68fe ("EDAC/i10nm: Retrieve and print retry_rd_err_log registers for HBM")
Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Tested-by: Feng Xu <feng.f.xu@intel.com>
Link: https://lore.kernel.org/r/20250417150724.1170168-3-qiuxu.zhuo@intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-06-19 15:28:04 +02:00
..
al_mc_edac.c
altera_edac.c EDAC/altera: Set DDR and SDMMC interrupt mask before registration 2025-05-09 09:43:50 +02:00
altera_edac.h EDAC/altera: Set DDR and SDMMC interrupt mask before registration 2025-05-09 09:43:50 +02:00
amd64_edac.c EDAC/amd64: Simplify ECC check on unified memory controllers 2024-12-27 13:58:50 +01:00
amd64_edac.h - Add initial support for RAS hardware found on AMD server GPUs (MI200). 2023-06-26 15:09:18 -07:00
amd76x_edac.c
amd8111_edac.c EDAC/amd81[13]1: Remove trailing newline from MODULE_AUTHOR 2023-03-28 15:26:52 +02:00
amd8111_edac.h
amd8131_edac.c EDAC/amd81[13]1: Remove trailing newline from MODULE_AUTHOR 2023-03-28 15:26:52 +02:00
amd8131_edac.h
armada_xp_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
aspeed_edac.c
bluefield_edac.c EDAC/bluefield: Fix potential integer overflow 2024-12-09 10:31:47 +01:00
cell_edac.c
cpc925_edac.c
debugfs.c
dmc520_edac.c
e7xxx_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
e752x_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
edac_device_sysfs.c EDAC/sysfs: move to use bus_get_dev_root() 2023-03-22 09:25:49 +01:00
edac_device.c EDAC/device: Respect any driver-supplied workqueue polling value 2023-01-19 11:43:16 +01:00
edac_device.h
edac_mc_sysfs.c EDAC/mc_sysfs: Increase legacy channel support to 12 2022-10-31 11:03:34 +01:00
edac_mc.c EDAC/mc: Drop duplicated dimm->nr_pages debug printout 2022-09-01 08:52:18 +02:00
edac_mc.h
edac_module.c
edac_module.h EDAC/device: Fix period calculation in edac_device_reset_delay_period() 2022-12-30 15:51:41 +01:00
edac_pci_sysfs.c EDAC/sysfs: move to use bus_get_dev_root() 2023-03-22 09:25:49 +01:00
edac_pci.c
edac_pci.h
fsl_ddr_edac.c EDAC/fsl_ddr: Fix bad bit shift operations 2024-12-09 10:31:47 +01:00
fsl_ddr_edac.h
ghes_edac.c EDAC/ghes: Make ghes_edac a proper module 2022-10-21 21:59:19 +02:00
highbank_l2_edac.c EDAC: Explicitly include correct DT includes 2023-08-28 13:31:01 -05:00
highbank_mc_edac.c EDAC: Explicitly include correct DT includes 2023-08-28 13:31:01 -05:00
i7core_edac.c
i10nm_base.c EDAC/{skx_common,i10nm}: Fix the loss of saved RRL for HBM pseudo channel 0 2025-06-19 15:28:04 +02:00
i3000_edac.c
i3200_edac.c
i5000_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
i5100_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
i5400_edac.c EDAC/i5400: Fix typo in comment: vaious -> various 2022-11-25 19:29:02 +01:00
i7300_edac.c EDAC/i7300: Correct the i7300_exit() function name in comment 2022-09-23 23:07:17 +02:00
i82443bxgx_edac.c
i82860_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
i82875p_edac.c
i82975x_edac.c
ie31200_edac.c EDAC/ie31200: work around false positive build warning 2025-06-04 14:42:07 +02:00
igen6_edac.c EDAC/igen6: Avoid segmentation fault on module unload 2024-12-09 10:31:48 +01:00
Kconfig EDAC/npcm: Add NPCM memory controller driver 2023-06-12 15:14:10 +02:00
layerscape_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
Makefile EDAC, i10nm: make skx_common.o a separate module 2024-08-03 08:53:19 +02:00
mce_amd.c x86/MCE/AMD, EDAC/mce_amd: Decode UMC_V2 ECC errors 2023-06-05 12:27:11 +02:00
mce_amd.h
mpc85xx_edac.c EDAC: Explicitly include correct DT includes 2023-08-28 13:31:01 -05:00
mpc85xx_edac.h
npcm_edac.c EDAC: Explicitly include correct DT includes 2023-08-28 13:31:01 -05:00
octeon_edac-l2c.c
octeon_edac-lmc.c
octeon_edac-pc.c
octeon_edac-pci.c
pasemi_edac.c
pnd2_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
pnd2_edac.h
ppc4xx_edac.c EDAC/ppc_4xx: Reorder symbols to get rid of a few forward declarations 2022-09-18 19:35:22 +02:00
ppc4xx_edac.h
qcom_edac.c EDAC/qcom: Correct interrupt enable register configuration 2025-02-27 04:10:53 -08:00
r82600_edac.c EDAC: Sanitize MODULE_AUTHOR strings 2023-03-28 15:43:30 +02:00
sb_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
sifive_edac.c soc: sifive: ccache: Rename SiFive L2 cache to Composable cache. 2022-10-13 11:06:51 -07:00
skx_base.c EDAC/skx: Fix overflows on the DRAM row address mapping arrays 2023-03-13 10:42:00 -07:00
skx_common.c EDAC/skx_common: Fix general protection fault 2025-06-19 15:28:04 +02:00
skx_common.h EDAC/{skx_common,i10nm}: Fix the loss of saved RRL for HBM pseudo channel 0 2025-06-19 15:28:04 +02:00
synopsys_edac.c EDAC/synopsys: Fix error injection on Zynq UltraScale+ 2024-10-04 16:28:49 +02:00
thunderx_edac.c EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 15:35:12 -08:00
ti_edac.c
wq.c EDAC/wq: Remove unneeded flush_workqueue() 2022-08-25 10:50:35 +02:00
x38_edac.c
xgene_edac.c EDAC: Check for GHES preference in the chipset-specific EDAC drivers 2022-10-21 22:09:54 +02:00
zynqmp_edac.c EDAC/zynqmp: Add EDAC support for Xilinx ZynqMP OCM 2023-01-09 11:13:58 +01:00