summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-06-26 15:00:20 +0200
committerTakashi Iwai <tiwai@suse.de>2012-06-26 15:00:20 +0200
commit59cad16bc6deb85bd2a464da92bbaae289f0286f (patch)
tree543a57c1852ec9800f80e418da5c1e739891f12a /sound
parentee48df57c920ab876dd8cf0dcfe5b8893b98e934 (diff)
downloadlinux-59cad16bc6deb85bd2a464da92bbaae289f0286f.tar.gz
linux-59cad16bc6deb85bd2a464da92bbaae289f0286f.tar.bz2
linux-59cad16bc6deb85bd2a464da92bbaae289f0286f.zip
ALSA: hda - Fix memory leaks at module unload
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>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_codec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 7504e62188d6..854dd0c25f89 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -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;