Re: [PATCH 6/7] spi: spidev_test: add option to split message into multiple transfers

From: Mark Brown

Date: Mon Sep 14 2026 - 14:15:52 EST


On Mon, Sep 14, 2026 at 04:50:45PM +0200, Jonas Rebmann wrote:

> SPI_IOC_MESSAGE() submits a single SPI message containing one or more
> transfers. Introduce an option to allow splitting the message into
> multiple transfers.

> + size_t bytes_per_word = DIV_ROUND_UP(bits, 8);
> + int effective_transfers = min_t(int, transfers, DIV_ROUND_UP(len, bytes_per_word));

We divide by this and nothing stops us triggering a divide by 0.

> + struct spi_ioc_transfer tr[effective_transfers];

This could easily get very big if someone decides to test lots of small
transfers, it's probably worth moving off the stack at this point.

> + size_t len_per_transfer = ALIGN(DIV_ROUND_UP(len, effective_transfers), bytes_per_word);

The kernel's ALIGN() macro only works for powers of two.

Attachment: signature.asc
Description: PGP signature