|
@@ -392,7 +392,9 @@ struct rtl8169_private {
|
|
|
void __iomem *mmio_addr; /* memory map physical address */
|
|
|
struct pci_dev *pci_dev; /* Index of PCI device */
|
|
|
struct net_device *dev;
|
|
|
+#ifdef CONFIG_R8169_NAPI
|
|
|
struct napi_struct napi;
|
|
|
+#endif
|
|
|
spinlock_t lock; /* spin lock flag */
|
|
|
u32 msg_enable;
|
|
|
int chipset;
|
|
@@ -2989,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);
|
|
|
|
|
@@ -3009,11 +3014,6 @@ core_down:
|
|
|
|
|
|
synchronize_irq(dev->irq);
|
|
|
|
|
|
- if (!poll_locked) {
|
|
|
- napi_disable(&tp->napi);
|
|
|
- poll_locked++;
|
|
|
- }
|
|
|
-
|
|
|
/* Give a racing hard_start_xmit a few cycles to complete. */
|
|
|
synchronize_sched(); /* FIXME: should this be synchronize_irq()? */
|
|
|
|