From: Peter Korsgaard The smc911x driver forgets to release the spinlock on spurious interrupts. This little patch fixes it. Cc: Jeff Garzik Signed-off-by: Peter Korsgaard Signed-off-by: Andrew Morton --- drivers/net/smc911x.c | 1 + 1 file changed, 1 insertion(+) diff -puN drivers/net/smc911x.c~smc911x-re-release-spinlock-on-spurious-interrupt drivers/net/smc911x.c --- a/drivers/net/smc911x.c~smc911x-re-release-spinlock-on-spurious-interrupt +++ a/drivers/net/smc911x.c @@ -1092,6 +1092,7 @@ static irqreturn_t smc911x_interrupt(int /* 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; } _