mirror of https://gitee.com/openkylin/linux.git
ASoC: wm_adsp: Fix memory leak in wm_adsp_setup_algs
Signed-off-by: JS Park <aitdark.park@samsung.com> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
cdcd7f7287
commit
d6d521799f
|
@ -1053,8 +1053,10 @@ static int wm_adsp_setup_algs(struct wm_adsp *dsp)
|
||||||
be32_to_cpu(adsp1_alg[i].zm));
|
be32_to_cpu(adsp1_alg[i].zm));
|
||||||
|
|
||||||
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
||||||
if (!region)
|
if (!region) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
region->type = WMFW_ADSP1_DM;
|
region->type = WMFW_ADSP1_DM;
|
||||||
region->alg = be32_to_cpu(adsp1_alg[i].alg.id);
|
region->alg = be32_to_cpu(adsp1_alg[i].alg.id);
|
||||||
region->base = be32_to_cpu(adsp1_alg[i].dm);
|
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);
|
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
||||||
if (!region)
|
if (!region) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
region->type = WMFW_ADSP1_ZM;
|
region->type = WMFW_ADSP1_ZM;
|
||||||
region->alg = be32_to_cpu(adsp1_alg[i].alg.id);
|
region->alg = be32_to_cpu(adsp1_alg[i].alg.id);
|
||||||
region->base = be32_to_cpu(adsp1_alg[i].zm);
|
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));
|
be32_to_cpu(adsp2_alg[i].zm));
|
||||||
|
|
||||||
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
||||||
if (!region)
|
if (!region) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
region->type = WMFW_ADSP2_XM;
|
region->type = WMFW_ADSP2_XM;
|
||||||
region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
|
region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
|
||||||
region->base = be32_to_cpu(adsp2_alg[i].xm);
|
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);
|
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
||||||
if (!region)
|
if (!region) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
region->type = WMFW_ADSP2_YM;
|
region->type = WMFW_ADSP2_YM;
|
||||||
region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
|
region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
|
||||||
region->base = be32_to_cpu(adsp2_alg[i].ym);
|
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);
|
region = kzalloc(sizeof(*region), GFP_KERNEL);
|
||||||
if (!region)
|
if (!region) {
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
region->type = WMFW_ADSP2_ZM;
|
region->type = WMFW_ADSP2_ZM;
|
||||||
region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
|
region->alg = be32_to_cpu(adsp2_alg[i].alg.id);
|
||||||
region->base = be32_to_cpu(adsp2_alg[i].zm);
|
region->base = be32_to_cpu(adsp2_alg[i].zm);
|
||||||
|
|
Loading…
Reference in New Issue