Removing link components results in topology unloading. So, acquire the client_mutex before removing components in soc_remove_link_components. This will prevent the lockdep warning seen when dai links are removed during topology removal.
Signed-off-by: Ranjani Sridharan ranjani.sridharan@linux.intel.com --- sound/soc/soc-core.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index ce8c057bcd5b..bbb52fbd195e 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1010,12 +1010,14 @@ static void soc_remove_link_components(struct snd_soc_card *card, struct snd_soc_component *component; struct snd_soc_rtdcom_list *rtdcom;
+ mutex_lock(&client_mutex); for_each_rtdcom(rtd, rtdcom) { component = rtdcom->component;
if (component->driver->remove_order == order) soc_remove_component(component); } + mutex_unlock(&client_mutex); }
static void soc_remove_dai_links(struct snd_soc_card *card)