Re: [PATCH 06/27] iio: proximity: sx9324: Stop using iio_device_claim_direct_scoped()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux