All of lore.kernel.org
 help / color / mirror / Atom feed
From: Axel Lin <axel.lin@gmail.com>
To: linux-kernel <linux-kernel@vger.kernel.org>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.de>,
	Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
	Phil Edworthy <Phil.Edworthy@renesas.com>,
	Tejun Heo <tj@kernel.org>,
	alsa-devel@alsa-project.org
Subject: [PATCH 3/12] da7210: fix a memory leak if failed to initialise da7210 audio codec
Date: Thu, 15 Jul 2010 10:53:49 +0800	[thread overview]
Message-ID: <1279162429.29294.9.camel@mola> (raw)
In-Reply-To: <1279162147.29294.2.camel@mola>

da7210 should be kfreed if da7210_init() return error.
This patch also fixes the error handing in the case of snd_soc_register_dai()
fail by adding snd_soc_unregister_codec() in error path.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 sound/soc/codecs/da7210.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sound/soc/codecs/da7210.c b/sound/soc/codecs/da7210.c
index 75af2d6..3b9a6cc 100644
--- a/sound/soc/codecs/da7210.c
+++ b/sound/soc/codecs/da7210.c
@@ -488,7 +488,7 @@ static int da7210_init(struct da7210_priv *da7210)
 	ret = snd_soc_register_dai(&da7210_dai);
 	if (ret) {
 		dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
-		goto init_err;
+		goto codec_err;
 	}
 
 	/* FIXME
@@ -574,6 +574,8 @@ static int da7210_init(struct da7210_priv *da7210)
 
 	return ret;
 
+codec_err:
+	snd_soc_unregister_codec(codec);
 init_err:
 	kfree(codec->reg_cache);
 	codec->reg_cache = NULL;
@@ -601,8 +603,10 @@ static int __devinit da7210_i2c_probe(struct i2c_client *i2c,
 	codec->control_data = i2c;
 
 	ret = da7210_init(da7210);
-	if (ret < 0)
+	if (ret < 0) {
 		pr_err("Failed to initialise da7210 audio codec\n");
+		kfree(da7210);
+	}
 
 	return ret;
 }
-- 
1.5.4.3

  parent reply	other threads:[~2010-07-15  2:53 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-15  2:49 [PATCH 0/12] sound/alsa/soc/codec: fix memory leak and resource relaim in error path Axel Lin
2010-07-15  2:50 ` [PATCH 1/12] ad1836: fix a memory leak if another ad1836 is registered Axel Lin
2010-07-20 10:31   ` Barry Song
2010-07-20 10:31     ` Barry Song
2010-07-15  2:52 ` [PATCH 2/12] ak4642: fix a memory leak if failed to initialise AK4642 Axel Lin
2010-07-15  5:53   ` Kuninori Morimoto
2010-07-15  5:53     ` Kuninori Morimoto
2010-07-15  6:19     ` Axel Lin
2010-07-15  6:19       ` Axel Lin
2010-07-15  6:29       ` Kuninori Morimoto
2010-07-15  6:29         ` Kuninori Morimoto
2010-07-15  2:53 ` Axel Lin [this message]
2010-07-15  2:56 ` [PATCH 4/12] wm8523: fix resource reclaim in wm8523_register error path Axel Lin
2010-07-15  2:57 ` [PATCH 5/12] wm8711: fix a memory leak if another WM8711 is registered Axel Lin
2010-07-15  2:59 ` [PATCH 6/12] wm8904: fix resource reclaim in wm8904_register error path Axel Lin
2010-07-15  3:01 ` [PATCH 7/12] wm8940: fix resource reclaim in wm8940_register " Axel Lin
2010-07-15  7:04   ` Guennadi Liakhovetski
2010-07-15  7:04     ` Guennadi Liakhovetski
2010-07-15  7:42     ` Axel Lin
2010-07-15  7:42       ` Axel Lin
2010-07-15  7:59       ` Guennadi Liakhovetski
2010-07-15  7:59         ` Guennadi Liakhovetski
2010-07-15  8:54       ` Liam Girdwood
2010-07-15  8:54         ` Liam Girdwood
2010-07-15  7:48   ` [PATCH v2 7/12] wm8940: fix a memory leak if wm8940_register return error Axel Lin
2010-07-15  3:03 ` [PATCH 8/12] wm8955: fix resource reclaim in wm8955_register error path Axel Lin
2010-07-15  3:06 ` [PATCH 9/12] wm8961: fix resource reclaim in wm8961_register " Axel Lin
2010-07-15  3:07 ` [PATCH 10/12] wm8974: fix a memory leak if another WM8974 is registered Axel Lin
2010-07-15  3:08 ` [PATCH 11/12] wm8978: fix a memory leak if another WM8978 " Axel Lin
2010-07-15  8:37   ` [PATCH v2 " Axel Lin
2010-07-15  8:53     ` Guennadi Liakhovetski
2010-07-15  8:53       ` Guennadi Liakhovetski
2010-07-15  3:11 ` [PATCH 12/12] wm9081: fix resource reclaim in wm9081_register error path Axel Lin
2010-07-15  8:59 ` [PATCH 0/12] sound/alsa/soc/codec: fix memory leak and resource relaim in " Mark Brown
2010-07-15  8:59   ` Mark Brown
2010-07-19  1:41   ` Axel Lin
2010-07-19  1:41     ` Axel Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1279162429.29294.9.camel@mola \
    --to=axel.lin@gmail.com \
    --cc=Phil.Edworthy@renesas.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=kuninori.morimoto.gx@renesas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lrg@slimlogic.co.uk \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.de \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.