mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-11-05 17:13:47 +01:00
The sysfs store functions modify driver state that is critical during
SPI transactions. ad7816_store_mode toggles hardware GPIO pins, while
ad7816_store_channel updates the internal software state
(chip->channel_id).
If these are modified concurrently by userspace while an SPI transfer
is in progress, it could corrupt the hardware transaction or cause the
driver to communicate with the wrong channel.
Add the existing chip->lock guard to these functions to serialize
access and prevent these race conditions.
Fixes: 7924425db0 ("staging: iio: adc: new driver for AD7816 devices")
Suggested-by: Joshua Crofts <[email protected]>
Reviewed-by: Joshua Crofts <[email protected]>
Signed-off-by: Abdelnasser Hussein <[email protected]>
Signed-off-by: Jonathan Cameron <[email protected]>