From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> snd_soc_unregister_component() is now finding component manually, but we already have snd_soc_lookup_component() to find component; Let's use existing function. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> --- sound/soc/soc-core.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 7c0bb32..3e8ed4f 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -2823,8 +2823,10 @@ static void snd_soc_try_rebind_card(void) static void snd_soc_del_component(struct snd_soc_component *component) { + mutex_lock(&client_mutex); snd_soc_unregister_dais(component); snd_soc_component_del(component); + mutex_unlock(&client_mutex); } int snd_soc_add_component(struct device *dev, @@ -2887,29 +2889,16 @@ EXPORT_SYMBOL_GPL(snd_soc_register_component); * * @dev: The device to unregister */ -static int __snd_soc_unregister_component(struct device *dev) +void snd_soc_unregister_component(struct device *dev) { struct snd_soc_component *component; - int found = 0; - - mutex_lock(&client_mutex); - for_each_component(component) { - if (dev != component->dev) - continue; + while (1) { + component = snd_soc_lookup_component(dev, NULL); + if (!component) + break; snd_soc_del_component(component); - found = 1; - break; } - mutex_unlock(&client_mutex); - - return found; -} - -void snd_soc_unregister_component(struct device *dev) -{ - while (__snd_soc_unregister_component(dev)) - ; } EXPORT_SYMBOL_GPL(snd_soc_unregister_component); -- 2.7.4 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel