diff options
| author | Qiuxu Zhuo <qiuxu.zhuo@intel.com> | 2026-07-30 10:42:30 +0800 |
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2026-07-30 11:30:08 -0700 |
| commit | f4008169bd320eedb9ddf2b39eeb21370ddac278 (patch) | |
| tree | c4510341403dad57d03e41da3ab6fc25f88925d9 | |
| parent | 141556543c9917d7c3d527f7eca6e288ec6bb58b (diff) | |
EDAC/igen6: Fix interleave boundary condition
The address translation logic splits the memory space into interleaved
and non-interleaved regions using a boundary at 2 * s_size.
The current check uses '>' and incorrectly classifies the boundary
address (2 * s_size) as part of the interleaved region. This leads to
incorrect channel/sub-channel selection at the region boundary.
Fix the classification by using '>=' so that the boundary address is
handled in the non-interleaved region, matching the hardware layout.
Fixes: 10590a9d4f23 ("EDAC/igen6: Add EDAC driver for Intel client SoCs using IBECC")
Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Link: https://patch.msgid.link/20260730024238.4096623-3-qiuxu.zhuo@intel.com
| -rw-r--r-- | drivers/edac/igen6_edac.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/edac/igen6_edac.c b/drivers/edac/igen6_edac.c index f1fc20d4ebf6..43b56a2eb547 100644 --- a/drivers/edac/igen6_edac.c +++ b/drivers/edac/igen6_edac.c @@ -1035,7 +1035,7 @@ static void decode_addr(u64 addr, u32 hash, u64 s_size, int l_map, { int intlv_bit = CHANNEL_HASH_LSB_MASK_BIT(hash) + 6; - if (addr > 2 * s_size) { + if (addr >= 2 * s_size) { *sub_addr = addr - s_size; *idx = l_map; return; |
