Hi,
The smc911x driver forgets to release the spinlock on spurious
interrupts. This little patch fixes it.
diff -Naur linux-2.6.18-rc2.orig/drivers/net/smc911x.c linux-2.6.18-rc2/drivers/net/smc911x.c
--- linux-2.6.18-rc2.orig/drivers/net/smc911x.c 2006-07-20 10:26:20.000000000 +0200
+++ linux-2.6.18-rc2/drivers/net/smc911x.c 2006-07-20 17:44:26.000000000 +0200
@@ -1092,6 +1092,7 @@
/* Spurious interrupt check */
if ((SMC_GET_IRQ_CFG() & (INT_CFG_IRQ_INT_ | INT_CFG_IRQ_EN_)) !=
(INT_CFG_IRQ_INT_ | INT_CFG_IRQ_EN_)) {
+ spin_unlock_irqrestore(&lp->lock, flags);
return IRQ_NONE;
}
--
Bye, Peter Korsgaard