Skip to content

iio: fix PM-enable leak on probe error path across 4 drivers

Stepan Ionichev linux-iio lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest4 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4iio: light: isl29028: use devm_pm_runtime_enable() to fix probe error pathdrivers/iio/light/isl29028.c+3 -40 replies
2/4iio: light: tsl2583: use devm_pm_runtime_enable() to fix probe error pathdrivers/iio/light/tsl2583.c+3 -30 replies
3/4iio: temperature: mlx90614: use devm_pm_runtime_enable() to fix probe error pathdrivers/iio/temperature/mlx90614.c+3 -30 replies
4/4iio: accel: bmi088-accel: use devm_pm_runtime_enable() to fix probe error pathdrivers/iio/accel/bmi088-accel-core.c+3 -30 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/4] iio: fix PM-enable leak on probe error path across 4 drivers

This series fixes a class of runtime PM enable_count leaks on probe error paths across drivers/iio/.

Each affected driver calls pm_runtime_enable() in probe and then a non-devm registration function (typically iio_device_register()). When the registration fails the probe returns directly without calling pm_runtime_disable(); on subsequent probe/rebind the runtime PM tracking complains about an unbalanced enable.

The fix is the same in each driver: replace pm_runtime_enable() with devm_pm_runtime_enable() and drop the now-redundant pm_runtime_disable() and pm_runtime_set_suspended() calls in the .remove() callback. The devm action runs after .remove() and handles the teardown.

drivers/iio/adc/ti-ads1015.c was posted as a standalone patch earlier:
https://lore.kernel.org/all/[email protected]/

A separate follow-up will cover four more drivers (apds9960, mma8452, pa12203001, us5182d) where the same leak exists but the probe error path needs a goto to the existing manual cleanup label rather than a plain return.

Stepan Ionichev (4):
iio: light: isl29028: use devm_pm_runtime_enable() to fix probe error
path
iio: light: tsl2583: use devm_pm_runtime_enable() to fix probe error
path
iio: temperature: mlx90614: use devm_pm_runtime_enable() to fix probe
error path
iio: accel: bmi088-accel: use devm_pm_runtime_enable() to fix probe
error path

 drivers/iio/accel/bmi088-accel-core.c | 6 +++---
 drivers/iio/light/isl29028.c          | 7 +++----
 drivers/iio/light/tsl2583.c           | 6 +++---
 drivers/iio/temperature/mlx90614.c    | 6 +++---
 4 files changed, 12 insertions(+), 13 deletions(-)

base-commit: 7cb1c5b32a2bfde961fff8d5204526b609bcb30a

Signature · 1 line
2.43.0