[PATCH 0/4] iio: PM-enable leak on probe error path (goto-variant drivers)
From: Stepan Ionichev
Date: Fri May 29 2026 - 06:48:46 EST
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.
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
--
2.43.0