On Dec 03, Sean Chittenden wrote: > > > Hello All, > > > Please test this PCM patch. It creates seperate locking > > > classes for PCM channels and should prevent the warning where > > > multiple mutexes from the same class are held (as reported > > > recently). I believe this to be a good strategy as it masks fewer > > > errors. > > > > I can confirm that this patch fixes my LOR for pcm(4). -sc > > Bah! I got 30min into playing tunes and picked the same LOR up not > more than 5min after sending this. :( Sorry for the false alarm. > > acquiring duplicate lock of same type: "pcm record channel" > 1st pcm0:record:0 @ /usr/src/sys/dev/sound/pcm/dsp.c:144 > 2nd pcm0:play:0 @ /usr/src/sys/dev/sound/pcm/dsp.c:146 > Stack backtrace:
Sean, I found the mistake, I assumed that a variable was initialized when it wasn't. Sorry for asking you to test a stupid patch before. Please try this one. Thanks again, --Mat -- Having your book made into a movie is like having your ox made into a bouillon cube. - Bill Neely
Index: channel.c =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/pcm/channel.c,v retrieving revision 1.92 diff -u -r1.92 channel.c --- channel.c 27 Nov 2003 19:51:44 -0000 1.92 +++ channel.c 3 Dec 2003 16:55:41 -0000 @@ -67,9 +67,12 @@ static int chn_buildfeeder(struct pcm_channel *c); static void -chn_lockinit(struct pcm_channel *c) +chn_lockinit(struct pcm_channel *c, int dir) { - c->lock = snd_mtxcreate(c->name, "pcm channel"); + if (dir == PCMDIR_PLAY) + c->lock = snd_mtxcreate(c->name, "pcm play channel"); + else + c->lock = snd_mtxcreate(c->name, "pcm record channel"); } static void @@ -736,7 +739,7 @@ struct snd_dbuf *b, *bs; int ret; - chn_lockinit(c); + chn_lockinit(c, dir); b = NULL; bs = NULL;
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"