summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_eld.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-11-21 09:11:50 +0100
committerTakashi Iwai <tiwai@suse.de>2008-11-21 09:17:30 +0100
commitf208dba97f2f3ff2fbcbe771195061e2a0dac870 (patch)
tree0c9bf38427af8c3c44e6c8e47cbc0ecf7e11f009 /sound/pci/hda/hda_eld.c
parentALSA: hda - Fix double free of jack instances (diff)
downloadlinux-f208dba97f2f3ff2fbcbe771195061e2a0dac870.tar.xz
linux-f208dba97f2f3ff2fbcbe771195061e2a0dac870.zip
ALSA: hda - Release ELD proc file
Release ELD proc file when reconfigured so that no leak occurs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_eld.c')
-rw-r--r--sound/pci/hda/hda_eld.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
index d2b7ccca3bb3..8740e7be8b24 100644
--- a/sound/pci/hda/hda_eld.c
+++ b/sound/pci/hda/hda_eld.c
@@ -567,8 +567,17 @@ int snd_hda_eld_proc_new(struct hda_codec *codec, struct hdmi_eld *eld)
snd_info_set_text_ops(entry, eld, hdmi_print_eld_info);
entry->c.text.write = hdmi_write_eld_item;
entry->mode |= S_IWUSR;
+ eld->proc_entry = entry;
return 0;
}
-#endif
+void snd_hda_eld_proc_free(struct hda_codec *codec, struct hdmi_eld *eld)
+{
+ if (!codec->bus->shutdown && eld->proc_entry) {
+ snd_device_free(codec->bus->card, eld->proc_entry);
+ eld->proc_entry = NULL;
+ }
+}
+
+#endif /* CONFIG_PROC_FS */