[alsa-devel] [PATCH] ASoC: remove a card from the list, if instantiation failed
Guennadi Liakhovetski
g.liakhovetski at gmx.de
Wed Mar 17 22:06:02 CET 2010
If instantiation of a card failed, we have to remove it from the card
list. This fixes an Oops on Migo-R, triggering, when after a failed
firmware load attempt the driver modules are removed and re-inserted
again.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski at gmx.de>
---
Should also be good for stable.
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index c8b0556..307eea0 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2361,6 +2361,8 @@ static int snd_soc_register_card(struct snd_soc_card *card)
mutex_lock(&client_mutex);
list_add(&card->list, &card_list);
snd_soc_instantiate_cards();
+ if (!card->instantiated)
+ list_del(&card->list);
mutex_unlock(&client_mutex);
dev_dbg(card->dev, "Registered card '%s'\n", card->name);
More information about the Alsa-devel
mailing list