Re: [PATCH v2] counter: ftm-quaddec: use devm_mutex_init()
From: Jonathan Cameron
Date: Wed May 27 2026 - 13:02:11 EST
On Tue, 26 May 2026 12:24:25 +0200
Joshua Crofts <joshua.crofts1@xxxxxxxxx> wrote:
> On Mon, 25 May 2026 at 17:14, Stepan Ionichev <sozdayvek@xxxxxxxxx> wrote:
> >
> > 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
It's not a leak as such. All that happens is the 'magic' pointer embedded
in the lock is not set NULL. No memory or counters or anything like that leaked
in current mainline where the implementation with CONFIG_DEBUG_MUTEXES is
void mutex_destroy(struct mutex *lock)
{
DEBUG_LOCKS_WARN_ON(mutex_is_locked(lock));
lock->magic = NULL;
}
> > 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
> >
> >
>
> Reviewed-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
>