summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
authorBard Liao <yung-chuan.liao@linux.intel.com>2019-09-17 05:03:53 +0800
committerMark Brown <broonie@kernel.org>2019-09-17 16:56:38 +0100
commita0a4bf57a977ed37bcbdfc8027a44485fe086a3d (patch)
treec503b8d04cc0bbcc65975c3e6e7178d36f018f51 /sound/soc/soc-core.c
parente75f4940e8ad0dd76527302a10c06b58bf7eb590 (diff)
downloadlinux-a0a4bf57a977ed37bcbdfc8027a44485fe086a3d.tar.bz2
ASoC: core: delete component->card_list in soc_remove_component only
We add component->card_list in the end of soc_probe_component(). In other words, component->card_list will not be added if there is an error in the soc_probe_component() function. So we can't delete component->card_list in the error handling of soc_probe_component(). Fixes: 22d1423187e5 ("ASoC: soc-core: add soc_cleanup_component()") Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20190916210353.6318-1-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r--sound/soc/soc-core.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 35f48e9c5ead..aff4b4bf4d07 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -978,7 +978,6 @@ static void soc_cleanup_component(struct snd_soc_component *component)
/* For framework level robustness */
snd_soc_component_set_jack(component, NULL, NULL);
- list_del(&component->card_list);
snd_soc_dapm_free(snd_soc_component_get_dapm(component));
soc_cleanup_component_debugfs(component);
component->card = NULL;
@@ -991,7 +990,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);
}