Browse Source

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>
Axel Lin 15 years ago
parent
commit
2c2749de11
1 changed files with 2 additions and 1 deletions
  1. 2 1
      sound/soc/codecs/wm8711.c

+ 2 - 1
sound/soc/codecs/wm8711.c

@@ -439,7 +439,8 @@ static int wm8711_register(struct wm8711_priv *wm8711,
 
 
 	if (wm8711_codec) {
 	if (wm8711_codec) {
 		dev_err(codec->dev, "Another WM8711 is registered\n");
 		dev_err(codec->dev, "Another WM8711 is registered\n");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err;
 	}
 	}
 
 
 	mutex_init(&codec->mutex);
 	mutex_init(&codec->mutex);