[PATCH v4 0/3] iio: accel: bmc150: fix event-enable race, then use guard(mutex)

From: Gabriel Rondon

Date: Sun Aug 16 2026 - 19:42:51 EST


This series addresses what came out of the v3 review of the
guard(mutex) conversion [1]: the pre-existing bugs had to be fixed
before the conversion could go in.

The unaligned-timestamp / DMA-safety problem in the trigger path is
no longer part of this series: it is fixed by Yash Suthar's
"iio: accel: bmc150: DMA-safe buffers and use
iio_push_to_buffers_with_ts()" v2 series [2], which this series is
rebased on top of.

Patch 1 sorts the header inclusions (suggested by Andy in the v3
thread) so the cleanup.h include added later lands in order. Patch 2
fixes the event-enable race in write_event_config(), where
ev_enable_state was checked outside the lock. Patch 3 is the
guard(mutex)/scoped_guard() conversion itself, now applying on top of
the fixes.

[1] https://lore.kernel.org/linux-iio/20260525110130.61284-1-grondon@xxxxxxxxx/
[2] https://lore.kernel.org/linux-iio/20260815175728.99541-1-yashsuthar983@xxxxxxxxx/

Changes in v4:
- Turned into a series: prep and fix first, conversion last
(Jonathan, v3 review)
- Sorted header inclusions (Andy)
- Fixed the ev_enable_state race under the lock, with Fixes: tag and
Cc: stable
- The unaligned-timestamp problem raised in the v3 review is fixed by
[2] rather than by a patch here; the series is rebased on top of [2]

Gabriel Rondon (3):
iio: accel: bmc150: sort header inclusions alphabetically
iio: accel: bmc150: take the lock before checking ev_enable_state
iio: accel: bmc150: use guard(mutex) for mutex handling

drivers/iio/accel/bmc150-accel-core.c | 92 ++++++++++-----------------
1 file changed, 33 insertions(+), 59 deletions(-)

--
2.50.1 (Apple Git-155)