Re: 2.6.12-mm1

From: Brice Goglin
Date: Tue Jun 21 2005 - 08:13:57 EST


Brice Goglin a écrit :
> Hi Andrew,
>
> I got this oops during boot.
> I copied it by hand since my machine crashed soon after (because of yenta).
> It doesn't occur when snd_maestro3 is skipped by discover.
>
> divide error: 0000 [#1]
> PREEMPT
> ...
> CPU: 0
> EIP: 0060:[<e8957f9f>] Not tainted VLI
> EFLAGS: 00000282 (2.6.12-mm1=LoulousMobiles)
> EIP is at and_m3_enable_ints+0x1f/0x40 [snd_maestro3]
> eax: 00000050 ebx: 00002400 ecx: 00000050 edx: 00002418
> esi: 00002418 edi: 00000000 ebp: 000000f0 esp: e6f5ce54
> ds: 007b es: 007b ss: 0068
> Process modprobe (pid: 2405, threadinfo=e6f5c000, task=e7a31570)
> ...
> Call trace:
> snd_m3_create+0x303/0x405 [snd_maestro3]

The problem comes from git-alsa.patch.
Adding HV_INT_ENABLE to outw in snd_m3_enable_ints (in
sound/pci/maestro3.c) makes it generate a divide error
on my laptop.

The attached patch reverts this and fixes my problem.

Signed-off-by: Brice Goglin <Brice.Goglin@xxxxxxxxxxxx>

Brice
--- linux-mm/sound/pci/maestro3.c.old 2005-06-21 14:36:19.000000000 +0200
+++ linux-mm/sound/pci/maestro3.c 2005-06-21 14:36:31.000000000 +0200
@@ -2527,7 +2527,7 @@ snd_m3_enable_ints(m3_t *chip)
unsigned long io = chip->iobase;

/* TODO: MPU401 not supported yet */
- outw(ASSP_INT_ENABLE | HV_INT_ENABLE /*| MPU401_INT_ENABLE*/, io + HOST_INT_CTRL);
+ outw(ASSP_INT_ENABLE /*| MPU401_INT_ENABLE*/, io + HOST_INT_CTRL);
outb(inb(io + ASSP_CONTROL_C) | ASSP_HOST_INT_ENABLE,
io + ASSP_CONTROL_C);
}