Am 14.04.2023 um 07:57 schrieb Nuno Sá: > On Thu, 2023-04-13 at 18:37 -0700, Lars-Peter Clausen wrote: >> 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: 866a1389174b ("iio: magnetometer: add ti tmag5273 driver") >> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> >> --- > > Reviewed-by: Nuno Sa <nuno.sa@xxxxxxxxxx> > Acked-by: Gerald Loacker <gerald.loacker@xxxxxxxxxxxxxx> >> drivers/iio/magnetometer/tmag5273.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/iio/magnetometer/tmag5273.c >> b/drivers/iio/magnetometer/tmag5273.c >> index 28bb7efe8df8..e155a75b3cd2 100644 >> --- a/drivers/iio/magnetometer/tmag5273.c >> +++ b/drivers/iio/magnetometer/tmag5273.c >> @@ -296,12 +296,13 @@ static int tmag5273_read_raw(struct iio_dev >> *indio_dev, >> return ret; >> >> ret = tmag5273_get_measure(data, &t, &x, &y, &z, >> &angle, &magnitude); >> - if (ret) >> - return ret; >> >> pm_runtime_mark_last_busy(data->dev); >> pm_runtime_put_autosuspend(data->dev); >> >> + if (ret) >> + return ret; >> + >> switch (chan->address) { >> case TEMPERATURE: >> *val = t; >