]> git.hungrycats.org Git - linux/commitdiff
sky2: fix for NAPI with dual port boards
authorStephen Hemminger <shemminger@linux-foundation.org>
Thu, 22 Feb 2007 20:07:11 +0000 (21:07 +0100)
committerAdrian Bunk <bunk@stusta.de>
Thu, 22 Feb 2007 20:07:11 +0000 (21:07 +0100)
This driver uses port 0 to handle receives on both ports. So
the netif_poll_disable call in dev_close would end up stopping the
second port on dual port cards.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
drivers/net/sky2.c

index d77358649af7eec7b316ba018cf17680cfdc567b..171443f9fc74ddf3d35e2ad71f90283b2c1276de 100644 (file)
@@ -1402,6 +1402,13 @@ static int sky2_down(struct net_device *dev)
        /* Stop more packets from being queued */
        netif_stop_queue(dev);
 
+       /*
+        * Both ports share the NAPI poll on port 0, so if necessary undo the
+        * the disable that is done in dev_close.
+        */
+       if (sky2->port == 0 && hw->ports > 1)
+               netif_poll_enable(dev);
+
        /* Disable port IRQ */
        spin_lock_irq(&hw->hw_lock);
        hw->intr_mask &= ~((sky2->port == 0) ? Y2_IS_IRQ_PHY1 : Y2_IS_IRQ_PHY2);