summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-generic-dmaengine-pcm.c
diff options
context:
space:
mode:
authorFabio Estevam2018-02-22 20:02:21 +0100
committerMark Brown2018-02-26 12:05:11 +0100
commitf91b1e73ccde71d4bc69ae10d475196df38844ab (patch)
tree6f4c7d71e95698c8406d2aea95c7d0bd7944e710 /sound/soc/soc-generic-dmaengine-pcm.c
parentMerge branch 'topic/component-platform' of https://git.kernel.org/pub/scm/lin... (diff)
downloadkernel-qcow2-linux-f91b1e73ccde71d4bc69ae10d475196df38844ab.tar.gz
kernel-qcow2-linux-f91b1e73ccde71d4bc69ae10d475196df38844ab.tar.xz
kernel-qcow2-linux-f91b1e73ccde71d4bc69ae10d475196df38844ab.zip
ASoC: soc-generic-dmaengine-pcm: Fix error handling
When dmaengine_pcm_request_chan_of() fails it should release the previously acquired resources, which in this case is to call kfree(pcm), so jump to the correct point in the error path. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-generic-dmaengine-pcm.c')
-rw-r--r--sound/soc/soc-generic-dmaengine-pcm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
index 768247fd92c5..32ea16d062b1 100644
--- a/sound/soc/soc-generic-dmaengine-pcm.c
+++ b/sound/soc/soc-generic-dmaengine-pcm.c
@@ -450,7 +450,7 @@ int snd_dmaengine_pcm_register(struct device *dev,
ret = dmaengine_pcm_request_chan_of(pcm, dev, config);
if (ret)
- goto err_free_dma;
+ goto err_free_pcm;
ret = snd_soc_add_component(dev, &pcm->component,
&dmaengine_pcm_component, NULL, 0);
@@ -461,6 +461,7 @@ int snd_dmaengine_pcm_register(struct device *dev,
err_free_dma:
dmaengine_pcm_release_chan(pcm);
+err_free_pcm:
kfree(pcm);
return ret;
}