mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/5] spi: fix division by zero with a zero transfer speed
@ 2026-11-06 15:47 shao.mingyin
  2026-11-06 15:47 ` [PATCH 1/5] spi: sifive: fix division by zero in clock divisor calculation shao.mingyin
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: shao.mingyin @ 2026-11-06 15:47 UTC (permalink / raw)
  To: broonie, linux-spi
  Cc: linux-kernel, linux-riscv, pjw, samuel.holland, william.zhang,
	kursad.oney, jonas.gorski, bcm-kernel-feedback-list, anand.gore,
	florian.fainelli, rafal, linux-arm-kernel, sven, j, neal, asahi,
	ryan.wanner, nicolas.ferre, alexandre.belloni, claudiu.beznea

Five SPI controller drivers compute a clock divider from the transfer
speed without checking that it is non-zero.  A SPI device whose
max_speed_hz is zero (a DT node without spi-max-frequency, or a device
created through the spidev sysfs new_device interface without a speed)
therefore reaches the division with speed_hz == 0.  The SPI core clamps
such a device to the controller limit only when host->max_speed_hz is
set, and none of these five drivers sets it.

The series is organized by driver and is independent patch-by-patch;
each patch can be applied and reviewed on its own, and taking a subset
is fine:

  1/5 spi: sifive: fix division by zero in clock divisor calculation
  2/5 spi: bcm63xx-hsspi: fix division by zero for devices without a max speed
  3/5 spi: bcmbca-hsspi: fix division by zero for devices without a max speed
  4/5 spi: apple: fix division by zero in clock divisor calculation
  5/5 spi: atmel: fix division by zero when transfer speed is zero

All five clamp the divisor to 1 Hz, the same approach as the recent
spi-jcore fix.  The division does not trap on the SoCs these drivers run
on: depending on the architecture it produces a bogus divider, a zero
quotient or an undefined value, so the patches remove undefined
arithmetic rather than a crash.

Shao Mingyin (5):
  spi: sifive: fix division by zero in clock divisor calculation
  spi: bcm63xx-hsspi: fix division by zero for devices without a max speed
  spi: bcmbca-hsspi: fix division by zero for devices without a max speed
  spi: apple: fix division by zero in clock divisor calculation
  spi: atmel: fix division by zero when transfer speed is zero

 drivers/spi/spi-apple.c         | 6 +++++-
 drivers/spi/spi-atmel.c         | 3 ++-
 drivers/spi/spi-bcm63xx-hsspi.c | 3 +++
 drivers/spi/spi-bcmbca-hsspi.c  | 3 +++
 drivers/spi/spi-sifive.c        | 6 +++++-
 5 files changed, 18 insertions(+), 3 deletions(-)

---
base-commit: 7649ba73f9e7e1e04d0b46213e39c79ae09dd55c

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

end of thread, other threads:[~2026-11-06 15:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-06 15:47 [PATCH 0/5] spi: fix division by zero with a zero transfer speed shao.mingyin
2026-11-06 15:47 ` [PATCH 1/5] spi: sifive: fix division by zero in clock divisor calculation shao.mingyin
2026-11-06 15:47 ` [PATCH 2/5] spi: bcm63xx-hsspi: fix division by zero for devices without a max speed shao.mingyin
2026-11-06 15:48 ` [PATCH 3/5] spi: bcmbca-hsspi: " shao.mingyin
2026-11-06 15:48 ` [PATCH 4/5] spi: apple: fix division by zero in clock divisor calculation shao.mingyin
2026-11-06 15:48 ` [PATCH 5/5] spi: atmel: fix division by zero when transfer speed is zero shao.mingyin

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®