From: Liam Girdwood <lrg@slimlogic.co.uk>
To: Graham Gower <graham.gower@gmail.com>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH] ASoC: Fix passing platform_data to ac97 bus users and fix a leak.
Date: Wed, 24 Mar 2010 09:23:38 +0000 [thread overview]
Message-ID: <1269422618.3798.7.camel@odin> (raw)
In-Reply-To: <4BA99514.8020708@gmail.com>
On Wed, 2010-03-24 at 14:59 +1030, Graham Gower wrote:
> snd_soc_new_ac97_codec() allocates for codec->ac97, snd_soc_new_pcms()
> then sets the platform_data. However, snd_ac97_mixer() overwrites
> codec->ac97 with its own allocated struct snd_ac97.
>
> Signed-off-by: Graham Gower <graham.gower@gmail.com>
> ---
> sound/soc/codecs/ac97.c | 12 ++++++++++++
> 1 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/sound/soc/codecs/ac97.c b/sound/soc/codecs/ac97.c
> index a1bbe16..64ec797 100644
> --- a/sound/soc/codecs/ac97.c
> +++ b/sound/soc/codecs/ac97.c
> @@ -80,9 +80,11 @@ static int ac97_write(struct snd_soc_codec *codec, unsigned int reg,
> static int ac97_soc_probe(struct platform_device *pdev)
> {
> struct snd_soc_device *socdev = platform_get_drvdata(pdev);
> + struct snd_soc_card *card = socdev->card;
> struct snd_soc_codec *codec;
> struct snd_ac97_bus *ac97_bus;
> struct snd_ac97_template ac97_template;
> + int i;
> int ret = 0;
>
> printk(KERN_INFO "AC97 SoC Audio Codec %s\n", AC97_VERSION);
> @@ -118,11 +120,21 @@ static int ac97_soc_probe(struct platform_device *pdev)
> if (ret < 0)
> goto bus_err;
>
> + /* free the ac97 here so that we don't leak it in snd_ac97_mixer */
> + snd_soc_free_ac97_codec(codec);
> +
Can you try removing the call to snd_soc_new_ac97_codec() instead. I've
just had a quick look and the codec->ac97 is not used by any calls upto
this point except for snd_soc_new_pcms() adding the AC97 pdata (please
also add a check for valid codec->ac97 in snd_soc_new_pcms() before
setting pdata).
Sorry, I don't have any working AC97 hardware to test this myself today.
Thanks
Liam
--
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk
next prev parent reply other threads:[~2010-03-24 9:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-24 4:29 [PATCH] ASoC: Fix passing platform_data to ac97 bus users and fix a leak Graham Gower
2010-03-24 9:23 ` Liam Girdwood [this message]
2010-03-24 13:06 ` Mark Brown
2010-03-25 0:22 ` Graham Gower
2010-03-25 8:55 ` Liam Girdwood
2010-03-25 16:09 ` Mark Brown
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=1269422618.3798.7.camel@odin \
--to=lrg@slimlogic.co.uk \
--cc=alsa-devel@alsa-project.org \
--cc=graham.gower@gmail.com \
/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.