From: Axel Lin <axel.lin@gmail.com>
Date: Fri, 23 Jul 2010 05:53:44 +0000 (+0000)
Subject: ASoC: ak4642: fix a memory leak if failed to initialise AK4642
X-Git-Tag: v2.6.36-rc1~493^2~1^2~11
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7bcaad919bc7aaa084f5884aa15654fe1fa4c77f;p=users%2Fdwmw2%2Flinux.git

ASoC: ak4642: fix a memory leak if failed to initialise AK4642

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>
---

diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
index 60b83b4824671..3d7dc55305ec3 100644
--- a/sound/soc/codecs/ak4642.c
+++ b/sound/soc/codecs/ak4642.c
@@ -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;
 }