mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] EDAC/i5000: Fix the slot loop and re-enable the driver
@ 2026-11-11 23:25 Andrew Luebke
  2026-11-11 23:25 ` [PATCH 1/2] i5000_edac: fix slot number passed to determine_mtr() Andrew Luebke
  2026-11-11 23:25 ` [PATCH 2/2] Revert "EDAC/i5000: Mark as BROKEN" Andrew Luebke
  0 siblings, 2 replies; 3+ messages in thread
From: Andrew Luebke @ 2026-11-11 23:25 UTC (permalink / raw)
  To: Borislav Petkov, Tony Luck
  Cc: Aristeu Rozanski, Mauro Carvalho Chehab, linux-edac,
	linux-kernel, Andrew Luebke

In 2022 i5000_edac was marked BROKEN instead of taking Aristeu's fix for
an out-of-bounds read in i5000_init_csrows(). Nobody had the hardware to
check that the driver handles both single- and dual-ranked DIMMs [1].

I tested on an HP xw8400 (5000X, four channels) with v7.4-rc2, KASAN,
UBSAN bounds and EDAC debug. Without patch 1, UBSAN reports at driver
load:

  UBSAN: array-index-out-of-bounds in drivers/edac/i5000_edac.c:959:20
  index 4 is out of range for type 'u16 [4]'

and the same at line 961. With it there are no reports, and all eight
slots (4 x 2 GB 2Rx4 in slot 0, 4 x 512 MB 1Rx8 in slot 1, both branches)
show up at the right branch/channel/slot with the right size and rank,
10240 MB in total. On 7.2.14 the same holds, also with 4 x 1 GB 2Rx8 in
slot 1 (12288 MB). A two-pass memtester run with the driver polling (two
DIMMs) saw no errors.

Not tested: two-channel boards (5000V/5000Z) and error reporting, as no
memory errors occurred.

Patch 1 is Aristeu's patch as posted, plus my tags. Patch 2 reverts the
BROKEN marking.

6.1, 5.15 and 5.10 do not have the BROKEN marking, so the out-of-bounds
read is live there. Patch 1 applies to them as is.

Analysis and test kernels were prepared with LLM help; the tests ran on my
hardware.

[1] https://lore.kernel.org/all/YyxpbRkuLPIcW1Om@zn.tnic/

Andrew Luebke (1):
  Revert "EDAC/i5000: Mark as BROKEN"

Aristeu Rozanski (1):
  i5000_edac: fix slot number passed to determine_mtr()

 drivers/edac/Kconfig      | 1 -
 drivers/edac/i5000_edac.c | 4 +---
 2 files changed, 1 insertion(+), 4 deletions(-)


base-commit: 7475ea8b58616b33c04afb976cf0fbaad9dd63fb
-- 
2.47.3


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-11 23:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-11 23:25 [PATCH 0/2] EDAC/i5000: Fix the slot loop and re-enable the driver Andrew Luebke
2026-11-11 23:25 ` [PATCH 1/2] i5000_edac: fix slot number passed to determine_mtr() Andrew Luebke
2026-11-11 23:25 ` [PATCH 2/2] Revert "EDAC/i5000: Mark as BROKEN" Andrew Luebke

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®