Commit 60884c27 authored by Dan Carpenter's avatar Dan Carpenter Committed by Mark Brown

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: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 7203a625
......@@ -2131,7 +2131,7 @@ static int snd_soc_dapm_add_route(struct snd_soc_dapm_context *dapm,
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++) {
......@@ -2139,13 +2139,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);
......@@ -2849,6 +2849,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++) {
......@@ -2857,12 +2858,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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment