]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: light: gp2ap002: fix runtime PM leak on read error
authorBiren Pandya <birenpandya@gmail.com>
Sun, 14 Jun 2026 07:15:49 +0000 (12:45 +0530)
committerJonathan Cameron <jic23@kernel.org>
Mon, 29 Jun 2026 22:24:46 +0000 (23:24 +0100)
gp2ap002_read_raw() calls pm_runtime_get_sync() before reading the
lux value, but if gp2ap002_get_lux() fails, it returns directly. This
skips the pm_runtime_put_autosuspend() call at the "out" label,
permanently leaking a runtime PM reference and preventing the device
from autosuspending.

Replace the direct return with a "goto out" to ensure the reference
is properly dropped on the error path.

Fixes: f6dbf83c17cb ("iio: light: gp2ap002: Take runtime PM reference on light read")
Signed-off-by: Biren Pandya <birenpandya@gmail.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/light/gp2ap002.c

index c83f67ff2464a3ce2313c9a9017faf39f4e74be7..a8db514cca5ef500d30c30f82a2a6d342c1112f0 100644 (file)
@@ -258,7 +258,7 @@ static int gp2ap002_read_raw(struct iio_dev *indio_dev,
                case IIO_LIGHT:
                        ret = gp2ap002_get_lux(gp2ap002);
                        if (ret < 0)
-                               return ret;
+                               goto out;
                        *val = ret;
                        ret = IIO_VAL_INT;
                        goto out;