aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-12-20 13:06:33 -0800
committerJeff Garzik <jeff@garzik.org>2006-12-26 16:36:42 -0500
commit25d82d7a2fc20cc4be414d738139594dc0adf179 (patch)
treefdfa5c375fb27be9d93a525aa1f16870d95a5b45 /drivers/net/sky2.c
parentce9f7fe3c3f5b9ed1d3e91db78c45d0df5672816 (diff)
downloadkernel_goldelico_gta04-25d82d7a2fc20cc4be414d738139594dc0adf179.zip
kernel_goldelico_gta04-25d82d7a2fc20cc4be414d738139594dc0adf179.tar.gz
kernel_goldelico_gta04-25d82d7a2fc20cc4be414d738139594dc0adf179.tar.bz2
sky2: dual port NAPI problem
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>
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r--drivers/net/sky2.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index fb1d2c3..4fb3db9 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -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 */