ASoC: dapm: release lock on error paths
Subsystems (3)
PATCH 1/1 ASoC: dapm: release lock on error paths
We added locking here but there were a couple error paths where we forgot to drop the lock before returning.
Signed-off-by Dan Carpenter <[email protected]>
sound/soc/soc-dapm.c +7 -5
@@ -2133,7 +2133,7 @@ err:int snd_soc_dapm_add_routes (struct snd_soc_dapm_context *dapm,const struct snd_soc_dapm_route *route,int num) { -int i, ret; +int i, ret =0 ;mutex_lock_nested (&dapm->card->dapm_mutex,SND_SOC_DAPM_CLASS_INIT );for (i =0 ; i < num; i++) {
@@ -2141,13 +2141,13 @@ int snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm,if (ret <0 ) {dev_err (dapm->dev,"Failed to add route %s->%s\n" , route->source, route->sink); -return ret; +break ; } route++; }mutex_unlock (&dapm->card->dapm_mutex); -return 0 ; +return ret; }EXPORT_SYMBOL_GPL (snd_soc_dapm_add_routes);
@@ -2851,6 +2851,7 @@ int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, {struct snd_soc_dapm_widget *w;int i; +int ret =0 ;mutex_lock_nested (&dapm->card->dapm_mutex,SND_SOC_DAPM_CLASS_INIT );for (i =0 ; i < num; i++) {
@@ -2859,12 +2860,13 @@ int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm,dev_err (dapm->dev,"ASoC: Failed to create DAPM control %s\n" , widget->name); -return -ENOMEM ; + ret = -ENOMEM ; +break ; } widget++; }mutex_unlock (&dapm->card->dapm_mutex); -return 0 ; +return ret; }EXPORT_SYMBOL_GPL (snd_soc_dapm_new_controls);
Mark Brown
AppliedQuoted 2 lines · Dan Carpenter
We added locking here but there were a couple error paths where we forgot to drop the lock before returning.
Applied, thanks.