Re: [BUG] GPF in snd_hda_intel

From: Luca Tettamanti
Date: Tue Oct 13 2009 - 08:56:17 EST


On Tue, Oct 13, 2009 at 8:12 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
> At Mon, 12 Oct 2009 21:39:21 +0200,
> Luca Tettamanti wrote:
>>
>> On Mon, Oct 12, 2009 at 7:58 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
>> > At Sat, 10 Oct 2009 15:01:10 +0200,
>> > Luca Tettamanti wrote:
>> >>
>> >> Hello,
>> >> with current git kernel (bd381934) I see a GPF when the snd_hda_intel driver is
>> >> loaded; the regression is recent, 0eca52a works fine.
>> >> The machine is an ASUS laptop (F3Sa), this is the sound card:
>> >
>> > Could you load the snd-hda-intel module with probe_only=1 option,
>> > and give the output of "alsa-info.sh --no-upload" ?
>> >
>> > If 0eca52a worked, there are only a few changes regarding hda-intel.
>> >
>> > f8f25ba3563dab14b1c3ea4d829642b8a61ca5d7
>> > Â ÂALSA: hda - Add a workaround for ASUS A7K
>>
>> This is probably related; I haven't actually tested yet, but I have
>> one more information: I had "model=lenovo" in modprobe configuration.
>
> Ah, this is it. ÂI can reproduce the problem with my emulator now.
> The patch below fixes the issue.

Yup, no more GPF.

> From 2d9c648295d7bc376305337d29f540a5e411f632 Mon Sep 17 00:00:00 2001
> From: Takashi Iwai <tiwai@xxxxxxx>
> Date: Tue, 13 Oct 2009 08:06:55 +0200
> Subject: [PATCH] ALSA: hda - Fix overflow of spec->init_verbs in patch_realtek.c
>
> ALC861-VD lenovo model causes overflow of spec->init_verbs entries due to
> the recent changes. ÂSimply increase the array size to avoid the overflow.
>
> Reported-by: Luca Tettamanti <kronos.it@xxxxxxxxx>
> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>

Tested-by: Luca Tettamanti <kronos.it@xxxxxxxxx>

> ---
> Âsound/pci/hda/patch_realtek.c | Â Â2 +-
> Â1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 470fd74..c08ca66 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -275,7 +275,7 @@ struct alc_spec {
> Â Â Â Âstruct snd_kcontrol_new *cap_mixer; Â Â /* capture mixer */
> Â Â Â Âunsigned int beep_amp; Â/* beep amp value, set via set_beep_amp() */
>
> - Â Â Â const struct hda_verb *init_verbs[5]; Â /* initialization verbs
> + Â Â Â const struct hda_verb *init_verbs[10]; Â/* initialization verbs
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â * don't forget NULL
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â * termination!
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â */
> --
> 1.6.4.2
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/