ALSA: hda - Fix memory leaks at module unload
authorTakashi Iwai <tiwai@suse.de>
Tue, 26 Jun 2012 13:00:20 +0000 (15:00 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 26 Jun 2012 13:00:20 +0000 (15:00 +0200)
Some caches aren't released properly at module unloading time.

Cc: <stable@vger.kernel.org> [v3.4+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_codec.c

index 7504e62188d604915a3847cab0375a94a98e7db6..854dd0c25f896f258c1e5870299e13f2cefd9833 100644 (file)
@@ -1184,6 +1184,7 @@ static void snd_hda_codec_free(struct hda_codec *codec)
 {
        if (!codec)
                return;
+       snd_hda_jack_tbl_clear(codec);
        restore_init_pincfgs(codec);
 #ifdef CONFIG_SND_HDA_POWER_SAVE
        cancel_delayed_work(&codec->power_work);
@@ -1192,6 +1193,7 @@ static void snd_hda_codec_free(struct hda_codec *codec)
        list_del(&codec->list);
        snd_array_free(&codec->mixers);
        snd_array_free(&codec->nids);
+       snd_array_free(&codec->cvt_setups);
        snd_array_free(&codec->conn_lists);
        snd_array_free(&codec->spdif_out);
        codec->bus->caddr_tbl[codec->addr] = NULL;