From: Abdelnasser Hussein <abdelnasserhussein11@gmail.com>
To: jic23@kernel.org, gregkh@linuxfoundation.org, nuno.sa@analog.com,
Michael.Hennerich@analog.com
Cc: dlechner@baylibre.com, andy@kernel.org, linux@analog.com,
linux-iio@vger.kernel.org, linux-staging@lists.linux.dev,
linux-kernel@vger.kernel.org, joshua.crofts1@gmail.com,
Abdelnasser Hussein <abdelnasserhussein11@gmail.com>
Subject: [PATCH v7 0/3] staging: iio: adc: ad7816: Fix SPI operations race condition and DMA safety
Date: Tue, 15 Sep 2026 10:59:36 +0300 [thread overview]
Message-ID: <20260915075939.18180-1-abdelnasserhussein11@gmail.com> (raw)
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(-)
--
2.54.0
next reply other threads:[~2026-09-15 8:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-15 7:59 Abdelnasser Hussein [this message]
2026-09-15 7:59 ` [PATCH v7 1/3] staging: iio: adc: ad7816: Sort headers alphabetically Abdelnasser Hussein
2026-09-15 7:59 ` [PATCH v7 2/3] staging: iio: adc: ad7816: Serialize SPI operations Abdelnasser Hussein
2026-09-15 11:39 ` Maxwell Doose
2026-09-15 11:46 ` Joshua Crofts
2026-09-15 13:16 ` Joshua Crofts
2026-09-15 13:50 ` nasser
2026-09-15 7:59 ` [PATCH v7 3/3] staging: iio: adc: ad7816: Fix DMA safety issues in SPI transfers Abdelnasser Hussein
2026-09-17 3:22 ` Jonathan Cameron
2026-09-19 8:20 ` nasser
2026-09-15 13:17 ` [PATCH v7 0/3] staging: iio: adc: ad7816: Fix SPI operations race condition and DMA safety Joshua Crofts
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260915075939.18180-1-abdelnasserhussein11@gmail.com \
--to=abdelnasserhussein11@gmail.com \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=gregkh@linuxfoundation.org \
--cc=jic23@kernel.org \
--cc=joshua.crofts1@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux@analog.com \
--cc=nuno.sa@analog.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox