summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-10-10 08:53:06 +0200
committerTakashi Iwai <tiwai@suse.de>2012-10-10 09:24:08 +0200
commitb2cbf3b30e6d1237f8864c4c9123f2a68cdfedf6 (patch)
tree8fe1d7bf1cd26e8bb103c7af753ed9139ea48f75 /sound
parentALSA: hda - Fix memory leaks at error path in patch_cirrus.c (diff)
downloadlinux-b2cbf3b30e6d1237f8864c4c9123f2a68cdfedf6.tar.xz
linux-b2cbf3b30e6d1237f8864c4c9123f2a68cdfedf6.zip
ALSA: hda/cirrus - Add missing init/free of hda_gen_spec
In the transition to the generic fixup code, the call of snd_hda_gen_init() and snd_hda_gen_free() was missing. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_cirrus.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
index f441f53f0306..61a71131711c 100644
--- a/sound/pci/hda/patch_cirrus.c
+++ b/sound/pci/hda/patch_cirrus.c
@@ -1243,6 +1243,7 @@ static void cs_free(struct hda_codec *codec)
struct cs_spec *spec = codec->spec;
kfree(spec->capture_bind[0]);
kfree(spec->capture_bind[1]);
+ snd_hda_gen_free(&spec->gen);
kfree(codec->spec);
}
@@ -1426,6 +1427,7 @@ static int patch_cs420x(struct hda_codec *codec)
if (!spec)
return -ENOMEM;
codec->spec = spec;
+ snd_hda_gen_init(&spec->gen);
spec->vendor_nid = CS420X_VENDOR_NID;
@@ -1964,6 +1966,7 @@ static int patch_cs4210(struct hda_codec *codec)
if (!spec)
return -ENOMEM;
codec->spec = spec;
+ snd_hda_gen_init(&spec->gen);
spec->vendor_nid = CS4210_VENDOR_NID;
@@ -2003,6 +2006,7 @@ static int patch_cs4213(struct hda_codec *codec)
if (!spec)
return -ENOMEM;
codec->spec = spec;
+ snd_hda_gen_init(&spec->gen);
spec->vendor_nid = CS4213_VENDOR_NID;