]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: ad_sigma_delta: Add error checking for ad_sigma_delta_set_channel()
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Mon, 3 Mar 2025 11:47:04 +0000 (12:47 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 11 Mar 2025 19:09:16 +0000 (19:09 +0000)
All other calls to ad_sigma_delta_set_channel() in ad_sigma_delta.c
check the return value afterwards. Do it for all calls.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/20250303114659.1672695-16-u.kleine-koenig@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad_sigma_delta.c

index d91a3ba127e3ab59a5bd664dcb85ce426666c283..6c37f8e21120b8927a9588f9db77a03957d171d9 100644 (file)
@@ -390,7 +390,9 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev,
        if (!iio_device_claim_direct(indio_dev))
                return -EBUSY;
 
-       ad_sigma_delta_set_channel(sigma_delta, chan->address);
+       ret = ad_sigma_delta_set_channel(sigma_delta, chan->address);
+       if (ret)
+               goto out_release;
 
        spi_bus_lock(sigma_delta->spi->controller);
        sigma_delta->bus_locked = true;
@@ -431,6 +433,7 @@ out_unlock:
        sigma_delta->keep_cs_asserted = false;
        sigma_delta->bus_locked = false;
        spi_bus_unlock(sigma_delta->spi->controller);
+out_release:
        iio_device_release_direct(indio_dev);
 
        if (ret)