ALSA bugs in list [was Re: 2.6.12-rc1-mm1]

Lee Revell
2005-03-22T03:57:10Z

On Mon, 2005-03-21 at 12:41 -0800, Andrew Morton wrote:
> From: bugme-daemon@osdl.org
> Subject: [Bug 4282] ALSA driver in Linux 2.6.11 causes a kernel panic when loading the EMU10K1 driver
>

This one is a real mystery. No one can reproduce it.

> From: bugme-daemon@osdl.org
> Subject: [Bugme-new] [Bug 4348] New: snd_emu10k1 oops'es with Audigy 2 and
>

This one is fixed in ALSA CVS. Here is the patch.

Lee

Summary: fix oopses in emu10k1 mixer

Signed-Off-By: Arnaud Patard <apatard@mandrakesoft.com>

Index: emumixer.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emumixer.c,v
retrieving revision 1.32
diff -u -r1.32 emumixer.c
--- emumixer.c 13 Mar 2005 12:17:09 -0000 1.32
+++ emumixer.c 16 Mar 2005 17:10:10 -0000
@@ -482,9 +482,13 @@
change = 1;
}
}
- if (change && mix->epcm->voices[ch])
- update_emu10k1_fxrt(emu, mix->epcm->voices[ch]->number,
- &mix->send_routing[0][0]);
+
+ if (change && mix->epcm) {
+ if (mix->epcm->voices[ch]) {
+ update_emu10k1_fxrt(emu, mix->epcm->voices[ch]->number,
+ &mix->send_routing[0][0]);
+ }
+ }
spin_unlock_irqrestore(&emu->reg_lock, flags);
return change;
}
@@ -544,9 +548,12 @@
change = 1;
}
}
- if (change && mix->epcm->voices[ch])
- update_emu10k1_send_volume(emu, mix->epcm->voices[ch]->number,
- &mix->send_volume[0][0]);
+ if (change && mix->epcm) {
+ if (mix->epcm->voices[ch]) {
+ update_emu10k1_send_volume(emu, mix->epcm->voices[ch]->number,
+ &mix->send_volume[0][0]);
+ }
+ }
spin_unlock_irqrestore(&emu->reg_lock, flags);
return change;
}
@@ -600,8 +607,11 @@
mix->attn[0] = val;
change = 1;
}
- if (change && mix->epcm->voices[ch])
- snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[ch]->number, mix->attn[0]);
+ if (change && mix->epcm) {
+ if (mix->epcm->voices[ch]) {
+ snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[ch]->number, mix->attn[0]);
+ }
+ }
spin_unlock_irqrestore(&emu->reg_lock, flags);
return change;
}