[PATCH] fix trident.c lockup on module load 2.4.22-rc1

From: Muli Ben-Yehuda
Date: Sat Aug 09 2003 - 16:30:48 EST


Hi Marcelo,

This patch fixes a kernel lockup with 2.4.22-rc1 when the trident.c
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().

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

Cheers,
Muli.

Index: drivers/sound/trident.c
===================================================================
RCS file: /home/cvs/linux-2.4/drivers/sound/trident.c,v
retrieving revision 1.29
diff -u -r1.29 trident.c
--- drivers/sound/trident.c 2 Jul 2003 21:42:15 -0000 1.29
+++ drivers/sound/trident.c 9 Aug 2003 19:54:58 -0000
@@ -3014,6 +3014,8 @@
}

data = inl(TRID_REG(card, address));
+
+ spin_unlock_irqrestore(&card->lock, flags);

return ((u16) (data >> 16));

Attachment: pgp00003.pgp
Description: PGP signature