Re: [PATCH] iio: srf04: fix pm_runtime handling on probe error path
Jonathan Cameron <[email protected]> Sat, 1 Aug 2026 03:55:33 +0100
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260801035533.1a854a57@jic23-huawei> |
On Mon, 27 Jul 2026 22:51:15 +0700 Cong Nguyen <[email protected]> wrote: > When pm_runtime_set_active() fails during probe, the driver logs the > error and unregisters the IIO device, but then falls through and still > calls pm_runtime_enable() before returning the error. > > Since probe returns an error, srf04_remove() is never called, so > runtime PM is left enabled without a matching pm_runtime_disable(). > This leaks the enable and triggers an "Unbalanced pm_runtime_enable!" > warning on a subsequent bind of the device. > > Return the error right after unregistering the IIO device so that > runtime PM is not enabled on the failure path. > > Fixes: 2251157b335b ("iio: srf04: add power management feature") > Cc: [email protected] > Signed-off-by: Cong Nguyen <[email protected]> Applied to the fixes-togreg branch of iio.git. Thanks, Jonathan > --- > drivers/iio/proximity/srf04.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/iio/proximity/srf04.c b/drivers/iio/proximity/srf04.c > index e97f9a20ac7a..337938657449 100644 > --- a/drivers/iio/proximity/srf04.c > +++ b/drivers/iio/proximity/srf04.c > @@ -331,6 +331,7 @@ static int srf04_probe(struct platform_device *pdev) > if (ret) { > dev_err(data->dev, "pm_runtime_set_active: %d\n", ret); > iio_device_unregister(indio_dev); > + return ret; > } > > pm_runtime_enable(data->dev);