[alsa-devel] [PATCH] ASoC: Fix passing platform_data to ac97 bus users and fix a leak.

Mark Brown broonie at opensource.wolfsonmicro.com
Wed Mar 24 14:06:12 CET 2010

On Wed, Mar 24, 2010 at 02:59:08PM +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.

Please remember to CC maintainers on patches, this helps avoid patches
getting lost in mailing lists - the procedure in SubmittingPatches
should generally be followed.

> @@ -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);
> +

Like Liam says this seems wrong - why would we have allocated this early
on in the probe() only to free it later?

Note also that this code needs to work with both ASoC-native AC97
drivers and the ac97.c bodge.

More information about the Alsa-devel mailing list