sky2: dual port NAPI problem
authorStephen Hemminger <shemminger@osdl.org>
Wed, 20 Dec 2006 21:06:33 +0000 (13:06 -0800)
committerJeff Garzik <jeff@garzik.org>
Tue, 26 Dec 2006 21:36:42 +0000 (16:36 -0500)
Shutting down port 0 disables the NAPI poll used by both ports.
The long term fix will be to separate NAPI object from net device
until then just reenable if needed.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/sky2.c

index fb1d2c30c1bb4a34f0d89650e0ed75ed3b11256f..4fb3db99bcd1e4cbe837eb9fcd06b29fbbbe9f8b 100644 (file)
@@ -1511,6 +1511,13 @@ static int sky2_down(struct net_device *dev)
        imask &= ~portirq_msk[port];
        sky2_write32(hw, B0_IMSK, imask);
 
+       /*
+        * 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);
+
        sky2_gmac_reset(hw, port);
 
        /* Stop transmitter */