ASoC: sam9g20_wm8731: fix resource leak in at91sam9g20ek_init error path
authorAxel Lin <axel.lin@gmail.com>
Thu, 25 Nov 2010 07:11:03 +0000 (15:11 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 25 Nov 2010 11:09:19 +0000 (11:09 +0000)
Fix the error path to properly free allocated resources.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/atmel/sam9g20_wm8731.c

index 032e17dd8fdb8ff09badb929dc73aa11ae744325..e521ada80542512e124822ef11db5bfbd5bddb3a 100644 (file)
@@ -240,6 +240,7 @@ static int __init at91sam9g20ek_init(void)
        if (!at91sam9g20ek_snd_device) {
                printk(KERN_ERR "ASoC: Platform device allocation failed\n");
                ret = -ENOMEM;
+               goto err_mclk;
        }
 
        platform_set_drvdata(at91sam9g20ek_snd_device,
@@ -248,11 +249,13 @@ static int __init at91sam9g20ek_init(void)
        ret = platform_device_add(at91sam9g20ek_snd_device);
        if (ret) {
                printk(KERN_ERR "ASoC: Platform device allocation failed\n");
-               platform_device_put(at91sam9g20ek_snd_device);
+               goto err_device_add;
        }
 
        return ret;
 
+err_device_add:
+       platform_device_put(at91sam9g20ek_snd_device);
 err_mclk:
        clk_put(mclk);
        mclk = NULL;