aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-10-10 02:41:42 -0400
committerTakashi Iwai <tiwai@suse.de>2012-10-10 03:23:10 -0400
commit7819d1c70eb6a57e43554d86e10b39d1e106ed65 (patch)
treea07423d7b477f21957360877de9d929138c4bf4a /sound/pci
parent8d032a8f653a71e309fc4be28f526a0d2a5bf8f4 (diff)
ALSA: hda - Add missing hda_gen_spec to struct via_spec
The commit [4b527b65 ALSA: hda - limit internal mic boost for Asus X202E] introduced the use of auto-parser code, but it forgot to add struct hda_gen_spec at the head of codec->spec which the auto-parser assumes silently. Without this record, it may result in memory corruption. This patch adds the missing piece. Cc: <stable@vger.kernel.org> [v3.5+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_via.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index eae466a6a987..72a2f60b087c 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -118,6 +118,8 @@ enum {
118}; 118};
119 119
120struct via_spec { 120struct via_spec {
121 struct hda_gen_spec gen;
122
121 /* codec parameterization */ 123 /* codec parameterization */
122 const struct snd_kcontrol_new *mixers[6]; 124 const struct snd_kcontrol_new *mixers[6];
123 unsigned int num_mixers; 125 unsigned int num_mixers;
@@ -246,6 +248,7 @@ static struct via_spec * via_new_spec(struct hda_codec *codec)
246 /* VT1708BCE & VT1708S are almost same */ 248 /* VT1708BCE & VT1708S are almost same */
247 if (spec->codec_type == VT1708BCE) 249 if (spec->codec_type == VT1708BCE)
248 spec->codec_type = VT1708S; 250 spec->codec_type = VT1708S;
251 snd_hda_gen_init(&spec->gen);
249 return spec; 252 return spec;
250} 253}
251 254
@@ -1627,6 +1630,7 @@ static void via_free(struct hda_codec *codec)
1627 vt1708_stop_hp_work(spec); 1630 vt1708_stop_hp_work(spec);
1628 kfree(spec->bind_cap_vol); 1631 kfree(spec->bind_cap_vol);
1629 kfree(spec->bind_cap_sw); 1632 kfree(spec->bind_cap_sw);
1633 snd_hda_gen_free(&spec->gen);
1630 kfree(spec); 1634 kfree(spec);
1631} 1635}
1632 1636