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; }