--- linux-2.4.4-pre3/drivers/net/natsemi.c Thu Apr 26 11:40:36 2001 +++ linux/drivers/net/natsemi.c Thu Apr 26 11:44:27 2001 @@ -815,6 +815,7 @@ struct net_device *dev = (struct net_device *)dev_instance; struct netdev_private *np; long ioaddr; + u32 clkrun_val; int boguscnt = max_interrupt_work; #ifndef final_version /* Can never occur. */ @@ -840,6 +841,12 @@ if (intr_status == 0) break; + + /* reset PMEEN bit in case + set_power_state(0x100, APM_STATE_READY) has been called + and mysteriously changed it */ + clkrun_val = readl( ioaddr + ClkRun); + writel( clkrun_val & ~0x100, ioaddr + ClkRun); if (intr_status & (IntrRxDone | IntrRxIntr)) netdev_rx(dev);