[alsa-devel] [PATCH] ASoC: core: Fail probe if we fail to add dai widgets

Signed-off-by: Nariman Poushin nariman@opensource.wolfsonmicro.com --- sound/soc/soc-core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index b322cf2..5cf7107 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1132,8 +1132,15 @@ static int soc_probe_codec(struct snd_soc_card *card, driver->num_dapm_widgets);
/* Create DAPM widgets for each DAI stream */ - list_for_each_entry(dai, &codec->component.dai_list, list) - snd_soc_dapm_new_dai_widgets(&codec->dapm, dai); + list_for_each_entry(dai, &codec->component.dai_list, list) { + ret = snd_soc_dapm_new_dai_widgets(&codec->dapm, dai); + + if (ret != 0) { + dev_err(codec->dev, + "Failed to create DAI widgets %d\n", ret); + goto err_probe; + } + }
codec->dapm.idle_bias_off = driver->idle_bias_off;

On Mon, Mar 31, 2014 at 03:47:12PM +0100, Nariman Poushin wrote:
Signed-off-by: Nariman Poushin nariman@opensource.wolfsonmicro.com
So, I've applied this on the basis that it'll at least print an error but...
...this doesn't actually do any cleanup of the widgets that were added if the failure isn't the first one in the loop (which is a prexisting bug with the handling of errors on probe()). We're also not checking the _new_controls() immediately before (but again, that's a prexisting bug).
participants (2)
-
Mark Brown
-
Nariman Poushin