[PATCH v2] iio: adc: ti-ads7924: Use guard(mutex) in ADC read helper

Giorgi Tchankvetadze posted 1 patch 1 month, 3 weeks ago
drivers/iio/adc/ti-ads7924.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
[PATCH v2] iio: adc: ti-ads7924: Use guard(mutex) in ADC read helper
Posted by Giorgi Tchankvetadze 1 month, 3 weeks ago
Replace mutex_lock()/mutex_unlock() pair with guard(mutex)()
and move the lock into ads7924_get_adc_result(). Keeping the guard
in the helper makes the locking scope match the operation being protected.

Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Giorgi Tchankvetadze <giorgitchankvetadze1997@gmail.com>
---
Changes in v2:
 - Move guard(mutex)() into ads7924_get_adc_result().
 - Drop the extra scope from ads7924_read_raw().
 
 drivers/iio/adc/ti-ads7924.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/ti-ads7924.c b/drivers/iio/adc/ti-ads7924.c
index bbcc4fc22b6e..5f294595a415 100644
--- a/drivers/iio/adc/ti-ads7924.c
+++ b/drivers/iio/adc/ti-ads7924.c
@@ -12,6 +12,7 @@
  */
 
 #include <linux/bitfield.h>
+#include <linux/cleanup.h>
 #include <linux/delay.h>
 #include <linux/gpio/consumer.h>
 #include <linux/init.h>
@@ -198,6 +199,8 @@ static int ads7924_get_adc_result(struct ads7924_data *data,
 	if (chan->channel < 0 || chan->channel >= ADS7924_CHANNELS)
 		return -EINVAL;
 
+	guard(mutex)(&data->lock);
+
 	if (data->conv_invalid) {
 		int conv_time;
 
@@ -227,9 +230,7 @@ static int ads7924_read_raw(struct iio_dev *indio_dev,
 
 	switch (mask) {
 	case IIO_CHAN_INFO_RAW:
-		mutex_lock(&data->lock);
 		ret = ads7924_get_adc_result(data, chan, val);
-		mutex_unlock(&data->lock);
 		if (ret < 0)
 			return ret;
 
-- 
2.52.0
Re: [PATCH v2] iio: adc: ti-ads7924: Use guard(mutex) in ADC read helper
Posted by Jonathan Cameron 1 month, 3 weeks ago
On Mon, 20 Apr 2026 15:34:45 +0400
Giorgi Tchankvetadze <giorgitchankvetadze1997@gmail.com> wrote:

> Replace mutex_lock()/mutex_unlock() pair with guard(mutex)()
> and move the lock into ads7924_get_adc_result(). Keeping the guard
> in the helper makes the locking scope match the operation being protected.
> 
> Suggested-by: Jonathan Cameron <jic23@kernel.org>
> Signed-off-by: Giorgi Tchankvetadze <giorgitchankvetadze1997@gmail.com>
Applied.

Thanks,

Jonathan