diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index c5eaf4931a9..b94fa7ef195 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -2991,13 +2991,16 @@ static void rtl8169_down(struct net_device *dev) { struct rtl8169_private *tp = netdev_priv(dev); void __iomem *ioaddr = tp->mmio_addr; - unsigned int poll_locked = 0; unsigned int intrmask; rtl8169_delete_timer(dev); netif_stop_queue(dev); +#ifdef CONFIG_R8169_NAPI + napi_disable(&tp->napi); +#endif + core_down: spin_lock_irq(&tp->lock); @@ -3011,13 +3014,6 @@ core_down: synchronize_irq(dev->irq); - if (!poll_locked) { -#ifdef CONFIG_R8169_NAPI - napi_disable(&tp->napi); -#endif - poll_locked++; - } - /* Give a racing hard_start_xmit a few cycles to complete. */ synchronize_sched(); /* FIXME: should this be synchronize_irq()? */