Re: [PATCH v3 3/3] iio: accel: adxl372: convert to guard(mutex)
From: Jonathan Cameron
Date: Sat Mar 07 2026 - 05:42:01 EST
On Sat, 7 Mar 2026 15:47:58 +0530
Rajveer Chaudhari <rajveer.chaudhari.linux@xxxxxxxxx> wrote:
> Replace manual mutex_lock/mutex_unlock pair with guard(mutex) in
> adxl372_write_threshold_value(). Remove goto label and return
> directly on error path.
>
> v3: Return directly from error path without goto.
> v2: Split into separate patch per driver.
As in previous, this needs to move down.
Otherwise this patch is fine.
Thanks,
Jonathan
>
> Signed-off-by: Rajveer Chaudhari <rajveer.chaudhari.linux@xxxxxxxxx>
> ---
> drivers/iio/accel/adxl372.c | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
> index 28a8793a53b6..340433782cf2 100644
> --- a/drivers/iio/accel/adxl372.c
> +++ b/drivers/iio/accel/adxl372.c
> @@ -7,6 +7,7 @@
>
> #include <linux/bitfield.h>
> #include <linux/bitops.h>
> +#include <linux/cleanup.h>
> #include <linux/interrupt.h>
> #include <linux/irq.h>
> #include <linux/module.h>
> @@ -334,20 +335,15 @@ static ssize_t adxl372_write_threshold_value(struct iio_dev *indio_dev, unsigned
> u16 threshold)
> {
> struct adxl372_state *st = iio_priv(indio_dev);
> - int ret;
>
> - mutex_lock(&st->threshold_m);
> - ret = regmap_write(st->regmap, addr, ADXL372_THRESH_VAL_H_SEL(threshold));
> + guard(mutex)(&st->threshold_m);
> +
> + int ret = regmap_write(st->regmap, addr, ADXL372_THRESH_VAL_H_SEL(threshold));
> if (ret < 0)
> - goto unlock;
> + return ret;
>
> - ret = regmap_update_bits(st->regmap, addr + 1, GENMASK(7, 5),
> + return regmap_update_bits(st->regmap, addr + 1, GENMASK(7, 5),
> ADXL372_THRESH_VAL_L_SEL(threshold) << 5);
> -
> -unlock:
> - mutex_unlock(&st->threshold_m);
> -
> - return ret;
> }
>
> static int adxl372_read_axis(struct adxl372_state *st, u8 addr)