diff options
author | Takashi Iwai <tiwai@suse.de> | 2017-06-06 20:03:46 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2017-06-06 20:03:46 +0200 |
commit | dd8038ec56c18680ddddf948247f53d427054f45 (patch) | |
tree | 9552d8cd5578bf82e028dd4205b799736f877476 /sound/soc/soc-core.c | |
parent | 4eab0ea196f569ed2085a0fa3729f60eb8edaad1 (diff) | |
parent | 7327a946a3b921d60d48924d34ac99eae2fae57d (diff) |
Merge tag 'asoc-fix-v4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v4.12
This is the usual collection of device specific fixes, all accumilated
since the merge window, plus one fix from Takashi for a nasty use after
free bug that bit some things with deferred probe and an update to the
maintainer address for the former Wolfson parts.
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index aae099c0e502..754e3ef8d7ae 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -2286,6 +2286,9 @@ static int soc_cleanup_card_resources(struct snd_soc_card *card) list_for_each_entry(rtd, &card->rtd_list, list) flush_delayed_work(&rtd->delayed_work); + /* free the ALSA card at first; this syncs with pending operations */ + snd_card_free(card->snd_card); + /* remove and free each DAI */ soc_remove_dai_links(card); soc_remove_pcm_runtimes(card); @@ -2300,9 +2303,7 @@ static int soc_cleanup_card_resources(struct snd_soc_card *card) if (card->remove) card->remove(card); - snd_card_free(card->snd_card); return 0; - } /* removes a socdev */ |