diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 2178e0d39c01..d7dea6946e85 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -3394,17 +3394,13 @@ static irqreturn_t e1000_intr(int irq, void *data) | |||
3394 | static int e1000_clean(struct napi_struct *napi, int budget) | 3394 | static int e1000_clean(struct napi_struct *napi, int budget) |
3395 | { | 3395 | { |
3396 | struct e1000_adapter *adapter = container_of(napi, struct e1000_adapter, napi); | 3396 | struct e1000_adapter *adapter = container_of(napi, struct e1000_adapter, napi); |
3397 | struct net_device *poll_dev = adapter->netdev; | 3397 | int tx_clean_complete = 0, work_done = 0; |
3398 | int tx_cleaned = 0, work_done = 0; | ||
3399 | 3398 | ||
3400 | adapter = netdev_priv(poll_dev); | 3399 | tx_clean_complete = e1000_clean_tx_irq(adapter, &adapter->tx_ring[0]); |
3401 | 3400 | ||
3402 | tx_cleaned = e1000_clean_tx_irq(adapter, &adapter->tx_ring[0]); | 3401 | adapter->clean_rx(adapter, &adapter->rx_ring[0], &work_done, budget); |
3403 | 3402 | ||
3404 | adapter->clean_rx(adapter, &adapter->rx_ring[0], | 3403 | if (!tx_clean_complete) |
3405 | &work_done, budget); | ||
3406 | |||
3407 | if (!tx_cleaned) | ||
3408 | work_done = budget; | 3404 | work_done = budget; |
3409 | 3405 | ||
3410 | /* If budget not fully consumed, exit the polling mode */ | 3406 | /* If budget not fully consumed, exit the polling mode */ |