mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 18:56:24 +00:00
ASoC: core: use list_del_init and move it back to soc_cleanup_component
commit a0a4bf57a977 ("ASoC: core: delete component->card_list in soc_remove_component only") was trying to fix a kernel oops when list_del was called twice without re-init the list. Use list_del_init() can solve it, too. Besides, it will be more readable if we cleanup all component related resource at soc_cleanup_component(). Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Bard liao <yung-chuan.liao@linux.intel.com> Link: https://lore.kernel.org/r/20190918133131.15045-1-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
947ec14c73
commit
7a5d9815cc
@ -978,6 +978,7 @@ static void soc_cleanup_component(struct snd_soc_component *component)
|
||||
/* For framework level robustness */
|
||||
snd_soc_component_set_jack(component, NULL, NULL);
|
||||
|
||||
list_del_init(&component->card_list);
|
||||
snd_soc_dapm_free(snd_soc_component_get_dapm(component));
|
||||
soc_cleanup_component_debugfs(component);
|
||||
component->card = NULL;
|
||||
@ -990,7 +991,7 @@ static void soc_remove_component(struct snd_soc_component *component)
|
||||
return;
|
||||
|
||||
snd_soc_component_remove(component);
|
||||
list_del(&component->card_list);
|
||||
|
||||
soc_cleanup_component(component);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user