ASoC: wm_adsp: Fix memory leak in wm_adsp_setup_algs
Subsystems (3)
PATCH 1/1 ASoC: wm_adsp: Fix memory leak in wm_adsp_setup_algs
From: JS Park <[email protected]>
Signed-off-by JS Park <[email protected]>
Signed-off-by Charles Keepax <[email protected]>
--- sound/soc/codecs/wm_adsp.c | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-)
sound/soc/codecs/wm_adsp.c +20 -10
@@ -1053,8 +1053,10 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) be32_to_cpu(adsp1_alg[i].zm)); region =kzalloc (sizeof (*region),GFP_KERNEL ); -if (!region) -return -ENOMEM ; +if (!region) { + ret = -ENOMEM ; + goto out; + } region->type =WMFW_ADSP1_DM ; region->alg =be32_to_cpu (adsp1_alg[i].alg.id); region->base =be32_to_cpu (adsp1_alg[i].dm);
@@ -1071,8 +1073,10 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) } region =kzalloc (sizeof (*region),GFP_KERNEL ); -if (!region) -return -ENOMEM ; +if (!region) { + ret = -ENOMEM ; + goto out; + } region->type =WMFW_ADSP1_ZM ; region->alg =be32_to_cpu (adsp1_alg[i].alg.id); region->base =be32_to_cpu (adsp1_alg[i].zm);
@@ -1101,8 +1105,10 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) be32_to_cpu(adsp2_alg[i].zm)); region =kzalloc (sizeof (*region),GFP_KERNEL ); -if (!region) -return -ENOMEM ; +if (!region) { + ret = -ENOMEM ; + goto out; + } region->type =WMFW_ADSP2_XM ; region->alg =be32_to_cpu (adsp2_alg[i].alg.id); region->base =be32_to_cpu (adsp2_alg[i].xm);
@@ -1119,8 +1125,10 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) } region =kzalloc (sizeof (*region),GFP_KERNEL ); -if (!region) -return -ENOMEM ; +if (!region) { + ret = -ENOMEM ; + goto out; + } region->type =WMFW_ADSP2_YM ; region->alg =be32_to_cpu (adsp2_alg[i].alg.id); region->base =be32_to_cpu (adsp2_alg[i].ym);
@@ -1137,8 +1145,10 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp) } region =kzalloc (sizeof (*region),GFP_KERNEL ); -if (!region) -return -ENOMEM ; +if (!region) { + ret = -ENOMEM ; + goto out; + } region->type =WMFW_ADSP2_ZM ; region->alg =be32_to_cpu (adsp2_alg[i].alg.id); region->base =be32_to_cpu (adsp2_alg[i].zm);
Signature · 1 line
1.7.2.5
Mark Brown
maintainerQuoted 4 lines · Charles Keepax
From: JS Park <[email protected]>
Signed-off-by JS Park <[email protected]>Signed-off-by Charles Keepax <[email protected]>
Please provide more of a changelog, for example in this case it's important to know that this isn't so urgent since it's fixing the error handling if we're out of memory which for all practical purposes isn't such a big deal.