Re: [PATCH v2] counter: ftm-quaddec: use devm_mutex_init()
From: Joshua Crofts
Date: Tue May 26 2026 - 06:30:41 EST
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
> 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>
--
Kind regards
CJD