From: Robert Olsson Here is a additional patch to active disable poll so we don't have to wait in dev_close() for traffic to disappear. drivers/net/tulip/interrupt.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/net/tulip/interrupt.c~tulip-napi-disable drivers/net/tulip/interrupt.c --- 25/drivers/net/tulip/interrupt.c~tulip-napi-disable 2003-10-03 10:01:42.000000000 -0700 +++ 25-akpm/drivers/net/tulip/interrupt.c 2003-10-03 10:02:13.000000000 -0700 @@ -114,6 +114,9 @@ int tulip_poll(struct net_device *dev, i int rx_work_limit = *budget; int received = 0; + if (!netif_running(dev)) + goto done; + if (rx_work_limit > dev->quota) rx_work_limit = dev->quota; @@ -250,7 +253,7 @@ int tulip_poll(struct net_device *dev, i * finally: amount of IO did not increase at all. */ } while ((inl(dev->base_addr + CSR5) & RxIntr)); - /* done: */ +done: #ifdef CONFIG_TULIP_NAPI_HW_MITIGATION _