24 Mar
2010
24 Mar
'10
3:06 p.m.
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.