--- linux-2.6.5/drivers/net/tulip/interrupt.c.suspend 2004-04-04 05:36:48.000000000 +0200 +++ linux-2.6.5/drivers/net/tulip/interrupt.c 2004-05-25 12:24:07.000000000 +0200 @@ -113,6 +113,7 @@ int entry = tp->cur_rx % RX_RING_SIZE; int rx_work_limit = *budget; int received = 0; + int csr5; if (!netif_running(dev)) goto done; @@ -254,7 +255,12 @@ * No idea how to fix this if "playing with fire" will fail * tomorrow (night 011029). If it will not fail, we won * finally: amount of IO did not increase at all. */ - } while ((inl(dev->base_addr + CSR5) & RxIntr)); + csr5 = inl(dev->base_addr + CSR5); + if (csr5 == 0xffffffff) { + printk(KERN_DEBUG "tulip_poll: hardware disappeared.\n"); + break; + } + } while (csr5 & RxIntr); done: