Re: [PATCH v7 0/3] staging: iio: adc: ad7816: Fix SPI operations race condition and DMA safety

From: Joshua Crofts

Date: Tue Sep 15 2026 - 09:51:35 EST


On Tue, 15 Sep 2026 10:59:36 +0300
Abdelnasser Hussein <abdelnasserhussein11@xxxxxxxxx> wrote:

> This series addresses separate issues in the ad7816 driver regarding
> race conditions and DMA safety across all SPI operations.
>
> Changes in v7:
>
> Patch 2: Moved the mutex to the top of the ad7816_chip_info struct
> (right after the pointers) to prevent struct padding/holes, as
> pointed out by Andy Shevchenko. Also expanded the mutex to serialize
> ad7816_spi_write() to prevent race conditions.
>
> Patch 3: Dropped the dedicated rx_buf. Switched all spi_write() and
> spi_read() calls to use spi_write_then_read(..., NULL, 0) to safely
> handle DMA using an internal bounce buffer, avoiding cacheline sharing,
> as guided by Jonathan Cameron.
>
> Changes in v6:
>
> Separated the alphabetical sorting of include headers into a dedicated
> precursor patch (Patch 1).
>
> Kept the mutex addition strictly focused on serializing the read
> operations without modifying the sizeof() argument (Patch 2).
>
> Moved the sizeof() argument fix to the DMA-safe buffer patch where
> it logically belongs (Patch 3).
>
> Changes in v5:
>
> Split the changes into separate patches for bisectability.
>
> Replaced stack buffer with a dedicated rx_buf aligned with
> IIO_DMA_MINALIGN.
>
> Abdelnasser Hussein (3):
> staging: iio: adc: ad7816: Sort headers alphabetically
> staging: iio: adc: ad7816: Serialize SPI operations
> staging: iio: adc: ad7816: Fix DMA safety issues in SPI transfers
>
> drivers/staging/iio/adc/ad7816.c | 29 ++++++++++++++++++++---------
> 1 file changed, 20 insertions(+), 9 deletions(-)
>

For the whole series:

Reviewed-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>

--
Kind regards,
Joshua Crofts