From: Russell King <[EMAIL PROTECTED]>

The smc91x driver relies upon register bank 2 being selected whenever
the interrupt handler is called.  This isn't always so, especially if
we have a link change event during PHY configuration.

This results in register bank 0 being selected when the interrupt
handler is called, causing the wrong registers to be read for the
IRQ mask and status.  In turn, this causes us to spin with a
permanently asserted IRQ.

The patch ensures that smc_phy_configure always exits with register
bank 2 selected.

Signed-off-by: Russell King <[EMAIL PROTECTED]>
Signed-off-by: Nicolas Pitre <[EMAIL PROTECTED]>

--- a/drivers/net/smc91x.c      Fri Nov 11 21:20:10 2005
+++ b/drivers/net/smc91x.c      Fri Nov 18 17:33:10 2005
@@ -1207,6 +1207,7 @@ static void smc_phy_configure(void *data
        smc_phy_check_media(dev, 1);
 
 smc_phy_configure_exit:
+       SMC_SELECT_BANK(2);
        spin_unlock_irq(&lp->lock);
        lp->work_pending = 0;
 }


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to