[PATCH] sky2: netpoll on dual port cards
authorStephen Hemminger <shemminger@osdl.org>
Wed, 18 Oct 2006 20:39:28 +0000 (13:39 -0700)
committerJeff Garzik <jeff@garzik.org>
Wed, 1 Nov 2006 01:22:06 +0000 (20:22 -0500)
The sky2 driver uses a single NAPI poll routine for both ports on dual ported
cards (because there is a single IRQ and status ring). Netpoll makes assumptions
about the relationship between network device and NAPI that aren't correct
on the second port, this will cause the port to never clear work.

Most systems, just have single port, so not a big issue.
The easy fix is just make the second port, not netpoll capable.

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

index 53171f62b267582d8fbe5fff7d765984a20200b7..16616f5440d037a279392c4b9d6be5e3e1232248 100644 (file)
@@ -3238,7 +3238,11 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw,
                dev->poll = sky2_poll;
        dev->weight = NAPI_WEIGHT;
 #ifdef CONFIG_NET_POLL_CONTROLLER
-       dev->poll_controller = sky2_netpoll;
+       /* Network console (only works on port 0)
+        * because netpoll makes assumptions about NAPI
+        */
+       if (port == 0)
+               dev->poll_controller = sky2_netpoll;
 #endif
 
        sky2 = netdev_priv(dev);