Hi Sameer

>             +static bool soc_component_is_pcm(struct 
> snd_soc_dai_link_component *dlc)
>             +{
>             +     struct snd_soc_dai *dai = snd_soc_find_dai(dlc);
>             +
>             +     if (dai && (dai->component->driver->pcm_construct ||
>             +                 dai->driver->pcm_new))
>             +             return true;
>             +
>             +     return false;
>             +}
(snip)
> I tried testing this with LOCKDEP config enabled at my end.
> It seems I don't see warning originated from above function.
> Are you suggesting that, in general, snd_soc_find_dai()
> should be called with client_mutex held?

Hmm ? strange...

snd_soc_find_dai() is using lockdep_assert_held()

        struct snd_soc_dai *snd_soc_find_dai(...)
        {
                ...
=>              lockdep_assert_held(&client_mutex);
                ...
        }

and lockdep_assert_held() will indicate WARN_ON()

        -- lockdep.h --
        ...
        #ifdef CONFIG_LOCKDEP
        ...
        #define lockdep_assert_held(l)  do {                            \
=>                      WARN_ON(debug_locks && !lockdep_is_held(l));    \
                } while (0)

> May be snd_soc_dai_link_set_capabilities() requires similar fix?

Yes, I'm posting fixup patch.

        https://patchwork.kernel.org/patch/11719919/

Thank you for your help !!

Best regards
---
Kuninori Morimoto

Reply via email to