From: Amadeusz Sławiński <amadeuszx.slawin...@linux.intel.com> [ Upstream commit dd8e871d4e560eeb8d22af82dde91457ad835a63 ]
Function soc_tplg_dai_config can fail, check for and handle possible failure. Signed-off-by: Amadeusz Sławiński <amadeuszx.slawin...@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridha...@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.boss...@linux.intel.com> Link: https://lore.kernel.org/r/20200327204729.397-7-amadeuszx.slawin...@linux.intel.com Signed-off-by: Mark Brown <broo...@kernel.org> Signed-off-by: Sasha Levin <sas...@kernel.org> --- sound/soc/soc-topology.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c index ca0ac5372b293..e6a17ab433eea 100644 --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c @@ -2524,7 +2524,7 @@ static int soc_tplg_dai_elems_load(struct soc_tplg *tplg, { struct snd_soc_tplg_dai *dai; int count; - int i; + int i, ret; count = le32_to_cpu(hdr->count); @@ -2539,7 +2539,12 @@ static int soc_tplg_dai_elems_load(struct soc_tplg *tplg, return -EINVAL; } - soc_tplg_dai_config(tplg, dai); + ret = soc_tplg_dai_config(tplg, dai); + if (ret < 0) { + dev_err(tplg->dev, "ASoC: failed to configure DAI\n"); + return ret; + } + tplg->pos += (sizeof(*dai) + le32_to_cpu(dai->priv.size)); } -- 2.20.1