mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
ASoC: core: Clean up DAPM before the card debugfs
Both the card and DAPM cleanups recursively delete their debugfs directories. Since the DAPM debugfs subdirectory for the card is located within the card debugfs this means we end up trying to double free the DAPM subdirectory. Reorder the cleanup to free the card debugfs after we've cleaned up DAPM and it has deleted its own subdirectory. Reported-by: Russell King - ARM Linux <linux@armlinux.org.uk> Tested-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
29b4817d40
commit
d1e8142882
@ -2083,14 +2083,13 @@ static int soc_cleanup_card_resources(struct snd_soc_card *card)
|
|||||||
/* remove auxiliary devices */
|
/* remove auxiliary devices */
|
||||||
soc_remove_aux_devices(card);
|
soc_remove_aux_devices(card);
|
||||||
|
|
||||||
|
snd_soc_dapm_free(&card->dapm);
|
||||||
soc_cleanup_card_debugfs(card);
|
soc_cleanup_card_debugfs(card);
|
||||||
|
|
||||||
/* remove the card */
|
/* remove the card */
|
||||||
if (card->remove)
|
if (card->remove)
|
||||||
card->remove(card);
|
card->remove(card);
|
||||||
|
|
||||||
snd_soc_dapm_free(&card->dapm);
|
|
||||||
|
|
||||||
snd_card_free(card->snd_card);
|
snd_card_free(card->snd_card);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user