[PATCH] counter: interrupt-cnt: use devm_mutex_init()

Stepan Ionichev posted 1 patch 23 hours ago
drivers/counter/interrupt-cnt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] counter: interrupt-cnt: use devm_mutex_init()
Posted by Stepan Ionichev 23 hours ago
interrupt_cnt_probe() calls mutex_init() but neither this driver
nor the counter core issues a matching mutex_destroy() on unbind,
so the lock debug state is leaked.

Switch to devm_mutex_init() so the mutex is torn down in the same
devm scope it was set up in.

Signed-off-by: Stepan Ionichev <sozdayvek@gmail.com>
---
 drivers/counter/interrupt-cnt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/counter/interrupt-cnt.c b/drivers/counter/interrupt-cnt.c
index e6100b5fb..cd475382a 100644
--- a/drivers/counter/interrupt-cnt.c
+++ b/drivers/counter/interrupt-cnt.c
@@ -233,7 +233,9 @@ static int interrupt_cnt_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	mutex_init(&priv->lock);
+	ret = devm_mutex_init(dev, &priv->lock);
+	if (ret)
+		return ret;
 
 	ret = devm_counter_add(dev, counter);
 	if (ret < 0)
-- 
2.43.0
Re: [PATCH] counter: interrupt-cnt: use devm_mutex_init()
Posted by William Breathitt Gray 18 hours ago
On Sat, May 23, 2026 at 11:44:18PM +0500, Stepan Ionichev wrote:
> interrupt_cnt_probe() calls mutex_init() but neither this driver
> nor the counter core issues a matching mutex_destroy() on unbind,
> so the lock debug state is leaked.
> 
> Switch to devm_mutex_init() so the mutex is torn down in the same
> devm scope it was set up in.
> 
> Signed-off-by: Stepan Ionichev <sozdayvek@gmail.com>

This sounds like a bug fix (albeit applicable only under
CONFIG_DEBUG_MUTEXES) so we should have a Fixes tag here, correct?

If this issue applies to counter-core and counter-chrdev, would you
submit patches for them as well?

William Breathitt Gray
Re: [PATCH] counter: interrupt-cnt: use devm_mutex_init()
Posted by Joshua Crofts 20 hours ago
On Sat, 23 May 2026 at 20:44, Stepan Ionichev <sozdayvek@gmail.com> wrote:
>
> interrupt_cnt_probe() calls mutex_init() but neither this driver
> nor the counter core issues a matching mutex_destroy() on unbind,
> so the lock debug state is leaked.

A little bit of a misconception, however unless you compile the kernel
with CONFIG_DEBUG_MUTEXES enabled, mutex_destroy() will translate
into a nop, so there won't be any leaks. Nevertheless, the devm_
counterpart makes debugging easier, therefore

Reviewed-by: Joshua Crofts <joshua.crofts1@gmail.com>

-- 
Kind regards

CJD