Re: [PATCH v3] iio: imu: kmx61: Use guard(mutex)() family over manual locking

From: Maxwell Doose

Date: Tue May 05 2026 - 09:32:07 EST


On Tue, May 5, 2026 at 8:08 AM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxx> wrote:
>
> On Tue, May 05, 2026 at 07:47:06AM -0500, Maxwell Doose wrote:
> > Include linux/cleanup.h to take advantage of new macros.
> >
> > Replace manual mutex_lock() and mutex_unlock() calls across the file
> > with guard(mutex)() and scoped_guard() where appropriate. This will help
> > modernize the driver with up-to-date functions/macros.
> >
> > Remove now redundant gotos and ret variables, as the new RAII macros
> > make them unneeded.
>
> Did you compile this version?
>
> ...
>
> > - case IIO_CHAN_INFO_SAMP_FREQ:
> > + case IIO_CHAN_INFO_SAMP_FREQ: {
> > if (chan->type != IIO_ACCEL && chan->type != IIO_MAGN)
> > return -EINVAL;
> >
> > - mutex_lock(&data->lock);
> > - ret = kmx61_get_odr(data, val, val2, chan->address);
> > - mutex_unlock(&data->lock);
> > + scoped_guard(mutex, &data->lock)
> > + ret = kmx61_get_odr(data, val, val2, chan->address);
> > if (ret)
> > return -EINVAL;
> > return IIO_VAL_INT_PLUS_MICRO;
> > }
> > + }
>
> This looks suspicious.
>
> ...
>
> Please, slow down and check the patches you sent.
>
> Also, use, if not yet, --histogram when preparing patches, it might make them
> more readable.
>

Thanks for the tip.

>
[snip]
>
> Since guard()() is not like lock/unlock, the blank line is better for
> readability. lock/unlock scenarios look&feel as special scope, that's why
> the blank lines there are optional.
>


Sorry, I was in a rush this morning and I wanted to keep to my promise
of getting it out this morning. I can make a v4 but I currently don't
have time unfortunately, so it'll have to wait.

best regards,
max