[PATCH 15/15] counter: rz-mtu3-cnt: use pm_runtime_resume_and_get()
From: Cosmin Tanislav
Date: Mon Sep 14 2026 - 16:41:09 EST
pm_runtime_get_sync() may increment the runtime PM usage count even if
the resume fails, which requires an explicit pm_runtime_put_noidle() to
balance it.
This driver ignores the return value of pm_runtime_get_sync(), risking
accessing device registers even if resume failed.
Replace it with pm_runtime_resume_and_get() and handle errors properly.
Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@xxxxxxxxxxx>
---
drivers/counter/rz-mtu3-cnt.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/counter/rz-mtu3-cnt.c b/drivers/counter/rz-mtu3-cnt.c
index f3e8fe5cb818..c6877f988b8b 100644
--- a/drivers/counter/rz-mtu3-cnt.c
+++ b/drivers/counter/rz-mtu3-cnt.c
@@ -430,7 +430,10 @@ static int rz_mtu3_count_enable_write(struct counter_device *counter,
return 0;
if (enable) {
- pm_runtime_get_sync(counter->parent);
+ ret = pm_runtime_resume_and_get(counter->parent);
+ if (ret)
+ return ret;
+
ret = rz_mtu3_initialize_counter(counter, count->id);
if (ret) {
pm_runtime_put(counter->parent);
--
2.55.0