Re: [PATCH 0/4] iio: PM-enable leak on probe error path (goto-variant drivers)

From: Jonathan Cameron

Date: Fri May 29 2026 - 09:10:25 EST


On Fri, 29 May 2026 15:45:40 +0500
Stepan Ionichev <sozdayvek@xxxxxxxxx> wrote:

> This is the goto-variant follow-up to the standalone ti-ads1015 patch and
> the 4-patch series for the simple drivers. In these four drivers probe
> calls pm_runtime_enable() but the existing register-failure path jumps to
> a manual cleanup label (out_err / buffer_cleanup / error_power_down)
> rather than returning directly. None of those cleanup labels call
> pm_runtime_disable(), so the runtime PM enable_count leaks on probe
> failure and on subsequent rebind.
>
> The conversion is the same as in the rest of the class: replace
> pm_runtime_enable() with devm_pm_runtime_enable() and drop the
> pm_runtime_disable() / pm_runtime_set_suspended() calls in .remove().
> On the new error path from devm_pm_runtime_enable() each patch jumps to
> the same existing cleanup label that iio_device_register() uses, so the
> manual unwind for the non-devm resources held earlier in probe still
> runs. In apds9960 nothing is powered or registered at that point so a
> plain return is used.
This is v2. Make sure you increment version numbers even for the sort
of commit message reformat you made here. Sending as the same version
confuses readers and potentially scripts.

Note this is a clarification not a request that you resend now as v2!
J
>
> Standalone precedent already on the list:
> iio: adc: ti-ads1015 -
> https://lore.kernel.org/all/20260529101011.3030-1-sozdayvek@xxxxxxxxx/
>
> Companion 4-patch series for the simple-return drivers (isl29028,
> tsl2583, mlx90614, bmi088-accel) was posted alongside this one.
>
> Stepan Ionichev (4):
> iio: light: pa12203001: use devm_pm_runtime_enable() to fix probe
> error path
> iio: light: us5182d: use devm_pm_runtime_enable() to fix probe error
> path
> iio: light: apds9960: use devm_pm_runtime_enable() to fix probe error
> path
> iio: accel: mma8452: use devm_pm_runtime_enable() to fix probe error
> path
>
> drivers/iio/accel/mma8452.c | 7 +++----
> drivers/iio/light/apds9960.c | 6 +++---
> drivers/iio/light/pa12203001.c | 7 +++----
> drivers/iio/light/us5182d.c | 7 +++----
> 4 files changed, 12 insertions(+), 15 deletions(-)
>
>
> base-commit: 7cb1c5b32a2bfde961fff8d5204526b609bcb30a