Commit 265c82ea authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Jonathan Cameron

iio: tmag5273: Fix runtime PM leak on measurement error

The tmag5273 gets a runtime PM reference before reading a measurement and
releases it when done. But if the measurement fails the tmag5273_read_raw()
function exits before releasing the reference.

Make sure that this error path also releases the runtime PM reference.

Fixes: 866a1389 ("iio: magnetometer: add ti tmag5273 driver")
Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarGerald Loacker <gerald.loacker@wolfvision.net>
Reviewed-by: default avatarNuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20230414013752.498767-1-lars@metafoo.de
Cc: <Stable@vger.kernel.org>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 00ffdd6f
...@@ -296,12 +296,13 @@ static int tmag5273_read_raw(struct iio_dev *indio_dev, ...@@ -296,12 +296,13 @@ static int tmag5273_read_raw(struct iio_dev *indio_dev,
return ret; return ret;
ret = tmag5273_get_measure(data, &t, &x, &y, &z, &angle, &magnitude); ret = tmag5273_get_measure(data, &t, &x, &y, &z, &angle, &magnitude);
if (ret)
return ret;
pm_runtime_mark_last_busy(data->dev); pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev); pm_runtime_put_autosuspend(data->dev);
if (ret)
return ret;
switch (chan->address) { switch (chan->address) {
case TEMPERATURE: case TEMPERATURE:
*val = t; *val = t;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment