Commit 14abca3d authored by Axel Lin's avatar Axel Lin Committed by Mark Brown

ASoC: simone: fix resource leak in simone_init error path

Fix the error path to properly free allocated resources.
Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Acked-by: default avatarMika Westerberg <mika.westerberg@iki.fi>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent c7a734e5
...@@ -54,24 +54,26 @@ static int __init simone_init(void) ...@@ -54,24 +54,26 @@ static int __init simone_init(void)
ret = platform_device_add(simone_snd_ac97_device); ret = platform_device_add(simone_snd_ac97_device);
if (ret) if (ret)
goto fail; goto fail1;
simone_snd_device = platform_device_alloc("soc-audio", -1); simone_snd_device = platform_device_alloc("soc-audio", -1);
if (!simone_snd_device) { if (!simone_snd_device) {
ret = -ENOMEM; ret = -ENOMEM;
goto fail; goto fail2;
} }
platform_set_drvdata(simone_snd_device, &snd_soc_simone); platform_set_drvdata(simone_snd_device, &snd_soc_simone);
ret = platform_device_add(simone_snd_device); ret = platform_device_add(simone_snd_device);
if (ret) { if (ret)
platform_device_put(simone_snd_device); goto fail3;
goto fail;
}
return ret; return 0;
fail: fail3:
platform_device_put(simone_snd_device);
fail2:
platform_device_del(simone_snd_ac97_device);
fail1:
platform_device_put(simone_snd_ac97_device); platform_device_put(simone_snd_ac97_device);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment