[alsa-devel] [PATCH] ASoC: Fix passing platform_data to ac97 bus users and fix a leak.
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