aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-01-08 00:06:12 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-09 02:30:14 -0500
commit53e52c729cc169db82a6105fac7a166e10c2ec36 (patch)
tree0cc27895f3a5ce7c73c1ed3d12beed3fa9ff5907 /drivers/net/ixgbe
parentfed17f3094b960d3a54b10f17abbe4b57e976eec (diff)
[NET]: Make ->poll() breakout consistent in Intel ethernet drivers.
This makes the ->poll() routines of the E100, E1000, E1000E, IXGB, and IXGBE drivers complete ->poll() consistently. Now they will all break out when the amount of RX work done is less than 'budget'. At a later time, we may want put back code to include the TX work as well (as at least one other NAPI driver does, but by in large NAPI drivers do not do this). But if so, it should be done consistently across the board to all of these drivers. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Auke Kok <auke-jan.h.kok@intel.com>
Diffstat (limited to 'drivers/net/ixgbe')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 7c319303f0f8..a56491617661 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1468,15 +1468,15 @@ static int ixgbe_clean(struct napi_struct *napi, int budget)
1468 struct ixgbe_adapter *adapter = container_of(napi, 1468 struct ixgbe_adapter *adapter = container_of(napi,
1469 struct ixgbe_adapter, napi); 1469 struct ixgbe_adapter, napi);
1470 struct net_device *netdev = adapter->netdev; 1470 struct net_device *netdev = adapter->netdev;
1471 int tx_cleaned = 0, work_done = 0; 1471 int work_done = 0;
1472 1472
1473 /* In non-MSIX case, there is no multi-Tx/Rx queue */ 1473 /* In non-MSIX case, there is no multi-Tx/Rx queue */
1474 tx_cleaned = ixgbe_clean_tx_irq(adapter, adapter->tx_ring); 1474 ixgbe_clean_tx_irq(adapter, adapter->tx_ring);
1475 ixgbe_clean_rx_irq(adapter, &adapter->rx_ring[0], &work_done, 1475 ixgbe_clean_rx_irq(adapter, &adapter->rx_ring[0], &work_done,
1476 budget); 1476 budget);
1477 1477
1478 /* If no Tx and not enough Rx work done, exit the polling mode */ 1478 /* If budget not fully consumed, exit the polling mode */
1479 if ((!tx_cleaned && (work_done < budget))) { 1479 if (work_done < budget) {
1480 netif_rx_complete(netdev, napi); 1480 netif_rx_complete(netdev, napi);
1481 ixgbe_irq_enable(adapter); 1481 ixgbe_irq_enable(adapter);
1482 } 1482 }