On Tue, Feb 4, 2025 at 12:03 PM Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > This complex cleanup.h use case of conditional guards has proved > to be more trouble that it is worth in terms of false positive compiler > warnings and hard to read code. > > Move directly to the new claim/release_direct() that allow sparse > to check for unbalanced context > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Cc: Gwendal Grignou <gwendal@xxxxxxxxxxxx> Reviewed-by: Gwendal Grignou <gwendal@xxxxxxxxxxxx> > --- > drivers/iio/proximity/sx9324.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/drivers/iio/proximity/sx9324.c b/drivers/iio/proximity/sx9324.c > index f7819dd2775c..73d972416c01 100644 > --- a/drivers/iio/proximity/sx9324.c > +++ b/drivers/iio/proximity/sx9324.c > @@ -429,16 +429,23 @@ static int sx9324_read_raw(struct iio_dev *indio_dev, > int *val, int *val2, long mask) > { > struct sx_common_data *data = iio_priv(indio_dev); > + int ret; > > switch (mask) { > case IIO_CHAN_INFO_RAW: > - iio_device_claim_direct_scoped(return -EBUSY, indio_dev) > - return sx_common_read_proximity(data, chan, val); > - unreachable(); > + if (!iio_device_claim_direct(indio_dev)) > + return -EBUSY; > + > + ret = sx_common_read_proximity(data, chan, val); > + iio_device_release_direct(indio_dev); > + return ret; > case IIO_CHAN_INFO_HARDWAREGAIN: > - iio_device_claim_direct_scoped(return -EBUSY, indio_dev) > - return sx9324_read_gain(data, chan, val); > - unreachable(); > + if (!iio_device_claim_direct(indio_dev)) > + return -EBUSY; > + > + ret = sx9324_read_gain(data, chan, val); > + iio_device_release_direct(indio_dev); > + return ret; > case IIO_CHAN_INFO_SAMP_FREQ: > return sx9324_read_samp_freq(data, val, val2); > default: > -- > 2.48.1 >