From: Axel Lin <axel.lin@gmail.com>
Date: Fri, 23 Jul 2010 05:53:47 +0000 (+0000)
Subject: ASoC: wm8711: fix a memory leak if another WM8711 is registered
X-Git-Tag: firefly_0821_release~3680^2~2691^2~1226^2~514
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2c2749de118bd36645b3a4a56f0d8ef6d4fd09cf;p=firefly-linux-kernel-4.4.55.git

ASoC: wm8711: fix a memory leak if another WM8711 is registered

wm8711 is allocated in either wm8711_spi_probe() or wm8711_i2c_probe() but is
not freed if wm8711_register() return -EINVAL(if another ad1836 is registered).

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

diff --git a/sound/soc/codecs/wm8711.c b/sound/soc/codecs/wm8711.c
index effb14eee7d4..e2dba07f0260 100644
--- a/sound/soc/codecs/wm8711.c
+++ b/sound/soc/codecs/wm8711.c
@@ -439,7 +439,8 @@ static int wm8711_register(struct wm8711_priv *wm8711,
 
 	if (wm8711_codec) {
 		dev_err(codec->dev, "Another WM8711 is registered\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err;
 	}
 
 	mutex_init(&codec->mutex);