From: Stepan Ionichev <sozdayvek@gmail.com>
To: jic23@kernel.org
Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 4/4] iio: accel: bmi088-accel: use devm_pm_runtime_enable() to fix probe error path
Date: Fri, 29 May 2026 15:44:56 +0500 [thread overview]
Message-ID: <81bee2d03a2a915c0837f61e407856db80aa98b9.1780050609.git.sozdayvek@gmail.com> (raw)
In-Reply-To: <cover.1780050609.git.sozdayvek@gmail.com>
The probe path calls pm_runtime_enable() and then registers the IIO device with iio_device_register(). If registration fails, the function returns the error directly without calling pm_runtime_disable(), leaving the runtime PM enable_count unbalanced. On the next bind attempt the core warns with "Unbalanced pm_runtime_enable".
Switch to devm_pm_runtime_enable() so the enable is automatically undone when the device is unbound, regardless of whether the rest of probe (or the bus remove callback) succeeds. This makes the error path correct without adding a new goto label.
With the runtime PM teardown now handled by the devm action, the manual pm_runtime_disable() and pm_runtime_set_suspended() calls in bmi088_accel_core_remove() become redundant and are dropped. The hardware-level power_down() call is kept so the chip is placed in suspend mode before the regmap goes away.
Signed-off-by: Stepan Ionichev <sozdayvek@gmail.com>
---
drivers/iio/accel/bmi088-accel-core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/iio/accel/bmi088-accel-core.c b/drivers/iio/accel/bmi088-accel-core.c
index c7da90af0d2d..0fd840d85a15 100644
--- a/drivers/iio/accel/bmi088-accel-core.c
+++ b/drivers/iio/accel/bmi088-accel-core.c
@@ -573,7 +573,9 @@ int bmi088_accel_core_probe(struct device *dev, struct regmap *regmap,
/* Enable runtime PM */
pm_runtime_get_noresume(dev);
pm_runtime_set_suspended(dev);
- pm_runtime_enable(dev);
+ ret = devm_pm_runtime_enable(dev);
+ if (ret)
+ return ret;
/* We need ~6ms to startup, so set the delay to 6 seconds */
pm_runtime_set_autosuspend_delay(dev, 6000);
pm_runtime_use_autosuspend(dev);
@@ -595,8 +597,6 @@ void bmi088_accel_core_remove(struct device *dev)
iio_device_unregister(indio_dev);
- pm_runtime_disable(dev);
- pm_runtime_set_suspended(dev);
bmi088_accel_power_down(data);
}
EXPORT_SYMBOL_NS_GPL(bmi088_accel_core_remove, "IIO_BMI088");
--
2.43.0
next prev parent reply other threads:[~2026-05-29 10:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-29 10:44 [PATCH 0/4] iio: fix PM-enable leak on probe error path across 4 drivers Stepan Ionichev
2026-05-29 10:44 ` [PATCH 1/4] iio: light: isl29028: use devm_pm_runtime_enable() to fix probe error path Stepan Ionichev
2026-05-29 10:44 ` [PATCH 2/4] iio: light: tsl2583: " Stepan Ionichev
2026-05-29 10:44 ` [PATCH 3/4] iio: temperature: mlx90614: " Stepan Ionichev
2026-05-29 10:44 ` Stepan Ionichev [this message]
2026-05-29 11:11 ` [PATCH 0/4] iio: fix PM-enable leak on probe error path across 4 drivers Joshua Crofts
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=81bee2d03a2a915c0837f61e407856db80aa98b9.1780050609.git.sozdayvek@gmail.com \
--to=sozdayvek@gmail.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®