Re: kernel BUG at /usr/src/linux/include/asm/spinlock.h:78!

From: Daniel Kobras (daniel.kobras@student.uni-tuebingen.de)
Date: Fri Jan 07 2000 - 21:24:53 EST


On Fri, 7 Jan 2000, Peter Enderborg wrote:

> Got this when tying to start mxaudio on a dual PII with alsa driver
> 0.4.1i and kernel 2.3.37

I send a patch to alsa-devel a couple of days ago that fixes the issue.
See below.

> (Im using gcc-2.95, is that the cause ?)

No.

Regards,

Daniel.

--[snip]--

diff -ur alsa-driver-0.4.1i/kernel/pcm1/pcm1_native.c alsa-driver-0.4.1i-dk1/kernel/pcm1/pcm1_native.c
--- alsa-driver-0.4.1i/kernel/pcm1/pcm1_native.c Fri Sep 10 21:09:06 1999
+++ alsa-driver-0.4.1i-dk1/kernel/pcm1/pcm1_native.c Tue Dec 28 20:01:32 1999
@@ -1620,6 +1620,8 @@
                         goto __end;
                 }
                 init_waitqueue_head(&playback_subchn1->sleep);
+ spin_lock_init(&playback_subchn1->lock);
+ spin_lock_init(&playback_subchn1->sleep_lock);
                 playback_subchn->private_data = playback_subchn1;
                 playback_subchn->private_free = snd_pcm1_subchannel_free;
                 playback_pchn1 = (snd_pcm1_channel_t *) playback_subchn->pchn->private_data;
@@ -1633,6 +1635,8 @@
                         goto __end;
                 }
                 init_waitqueue_head(&capture_subchn1->sleep);
+ spin_lock_init(&capture_subchn1->lock);
+ spin_lock_init(&capture_subchn1->sleep_lock);
                 capture_subchn->private_data = capture_subchn1;
                 capture_subchn->private_free = snd_pcm1_subchannel_free;
                 capture_pchn1 = (snd_pcm1_channel_t *) capture_subchn->pchn->private_data;
diff -ur alsa-driver-0.4.1i/kernel/pcm1/pcm1_oss.c alsa-driver-0.4.1i-dk1/kernel/pcm1/pcm1_oss.c
--- alsa-driver-0.4.1i/kernel/pcm1/pcm1_oss.c Mon Nov 1 15:16:35 1999
+++ alsa-driver-0.4.1i-dk1/kernel/pcm1/pcm1_oss.c Tue Dec 28 20:01:32 1999
@@ -1567,6 +1567,8 @@
                         goto __end;
                 }
                 init_waitqueue_head(&playback_subchn1->sleep);
+ spin_lock_init(&playback_subchn1->lock);
+ spin_lock_init(&playback_subchn1->sleep_lock);
                 playback_subchn->private_data = playback_subchn1;
                 playback_subchn->private_free = snd_pcm1_subchannel_free;
                 snd_pcm1_clear_subchannel(playback_subchn);
@@ -1580,6 +1582,8 @@
                         goto __end;
                 }
                 init_waitqueue_head(&capture_subchn1->sleep);
+ spin_lock_init(&capture_subchn1->lock);
+ spin_lock_init(&capture_subchn1->sleep_lock);
                 capture_subchn->private_data = capture_subchn1;
                 capture_subchn->private_free = snd_pcm1_subchannel_free;
                 capture_pchn1 = (snd_pcm1_channel_t *) pcm->capture.private_data;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jan 15 2000 - 21:00:12 EST