ASoC: ak4642: fix a memory leak if failed to initialise AK4642
Axel Lin [Fri, 23 Jul 2010 05:53:44 +0000 (05:53 +0000)]
ak4642 should be kfreed if ak4642_init() return error.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Reviewed-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

sound/soc/codecs/ak4642.c

index 60b83b4..3d7dc55 100644 (file)
@@ -498,8 +498,10 @@ static int ak4642_i2c_probe(struct i2c_client *i2c,
        codec->control_data = i2c;
 
        ret = ak4642_init(ak4642);
-       if (ret < 0)
+       if (ret < 0) {
                printk(KERN_ERR "failed to initialise AK4642\n");
+               kfree(ak4642);
+       }
 
        return ret;
 }