public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fix trident.c lockup on module load 2.6.0-test2
@ 2003-08-09 20:40 Muli Ben-Yehuda
  0 siblings, 0 replies; only message in thread
From: Muli Ben-Yehuda @ 2003-08-09 20:40 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux-Kernel, Alan Cox, Muli Ben-Yehuda

[-- Attachment #1: Type: text/plain, Size: 1089 bytes --]

Hi Linus, 

This patch fixes a kernel lockup with 2.6.0-test2 when the trident.c
OSS driver is loaded and the driver attempts to initialize the
card. The problem is that in ali_ac97_get() we lock the card->lock
spinlock, but never release it on the good path, only on the error
path. This patch adds the missing spin_unlock_irqrestore(). 

This bug snuck in in a 2.4 sync from Alan, and 2.4 appears to suffer
from the same problem. Patch will be send to Marcelo momentarily.  

Patch is against 2.6.0-test2-cvs, tested and works, and fixes a pretty
severe lockup bug. Please apply. 

Cheers, 
Muli. 

Index: sound/oss/trident.c
===================================================================
RCS file: /home/cvs/linux-2.5/sound/oss/trident.c,v
retrieving revision 1.27
diff -u -r1.27 trident.c
--- sound/oss/trident.c	1 Aug 2003 19:02:34 -0000	1.27
+++ sound/oss/trident.c	9 Aug 2003 18:53:08 -0000
@@ -3017,6 +3017,8 @@
 	}
 	
 	data = inl(TRID_REG(card, address));
+
+	spin_unlock_irqrestore(&card->lock, flags); 
 	
 	return ((u16) (data >> 16));
 

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-08-09 20:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-09 20:40 [PATCH] fix trident.c lockup on module load 2.6.0-test2 Muli Ben-Yehuda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox