[PATCH v2] counter: ftm-quaddec: use devm_mutex_init()
From: Stepan Ionichev
Date: Mon May 25 2026 - 11:14:11 EST
ftm_quaddec_probe() calls mutex_init() but neither the cleanup
action nor a remove callback issues a matching mutex_destroy(),
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: a3b9a99980d9 ("counter: add FlexTimer Module Quadrature decoder counter driver")
Signed-off-by: Stepan Ionichev <sozdayvek@xxxxxxxxx>
---
v2:
- Add Fixes tag and note that the leak only shows up under
CONFIG_DEBUG_MUTEXES (William, applied from the interrupt-cnt thread)
v1: https://lore.kernel.org/all/20260523184351.7567-1-sozdayvek@xxxxxxxxx/
drivers/counter/ftm-quaddec.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
index c47741292..8455f16d6 100644
--- a/drivers/counter/ftm-quaddec.c
+++ b/drivers/counter/ftm-quaddec.c
@@ -292,7 +292,9 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
counter->signals = ftm_quaddec_signals;
counter->num_signals = ARRAY_SIZE(ftm_quaddec_signals);
- mutex_init(&ftm->ftm_quaddec_mutex);
+ ret = devm_mutex_init(&pdev->dev, &ftm->ftm_quaddec_mutex);
+ if (ret)
+ return ret;
ftm_quaddec_init(ftm);
--
2.43.0