All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] counter: interrupt-cnt: use devm_mutex_init()
@ 2026-05-25 15:11 Stepan Ionichev
  2026-05-27  6:56 ` William Breathitt Gray
  0 siblings, 1 reply; 3+ messages in thread
From: Stepan Ionichev @ 2026-05-25 15:11 UTC (permalink / raw)
  To: wbg
  Cc: o.rempel, kernel, joshua.crofts1, linux-iio, linux-kernel, andy,
	sozdayvek

interrupt_cnt_probe() calls mutex_init() but neither this driver
nor the counter core issues a matching mutex_destroy() on unbind,
which leaks the lock debug state when CONFIG_DEBUG_MUTEXES is
enabled.

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

Fixes: a55ebd47f21f ("counter: add IRQ or GPIO based counter")
Reviewed-by: Joshua Crofts <joshua.crofts1@gmail.com>
Signed-off-by: Stepan Ionichev <sozdayvek@gmail.com>
---
v2:
- Add Fixes tag and clarify the leak is only visible under
  CONFIG_DEBUG_MUTEXES (William, Joshua)
- Add Reviewed-by from Joshua

v1: https://lore.kernel.org/all/20260523184418.7586-1-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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-05-27 16:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-25 15:11 [PATCH v2] counter: interrupt-cnt: use devm_mutex_init() Stepan Ionichev
2026-05-27  6:56 ` William Breathitt Gray
2026-05-27 16:55   ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.