diff options
-rw-r--r-- | drivers/net/forcedeth.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index f9e1dd48ac56..e282d0ae6a3d 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -3564,14 +3564,15 @@ static int nv_napi_poll(struct napi_struct *napi, int budget) | |||
3564 | tx_work += nv_tx_done(dev, np->tx_ring_size); | 3564 | tx_work += nv_tx_done(dev, np->tx_ring_size); |
3565 | spin_unlock_irqrestore(&np->lock, flags); | 3565 | spin_unlock_irqrestore(&np->lock, flags); |
3566 | 3566 | ||
3567 | rx_count = nv_rx_process(dev, budget); | 3567 | rx_count = nv_rx_process(dev, budget - rx_work); |
3568 | retcode = nv_alloc_rx(dev); | 3568 | retcode = nv_alloc_rx(dev); |
3569 | } else { | 3569 | } else { |
3570 | spin_lock_irqsave(&np->lock, flags); | 3570 | spin_lock_irqsave(&np->lock, flags); |
3571 | tx_work += nv_tx_done_optimized(dev, np->tx_ring_size); | 3571 | tx_work += nv_tx_done_optimized(dev, np->tx_ring_size); |
3572 | spin_unlock_irqrestore(&np->lock, flags); | 3572 | spin_unlock_irqrestore(&np->lock, flags); |
3573 | 3573 | ||
3574 | rx_count = nv_rx_process_optimized(dev, budget); | 3574 | rx_count = nv_rx_process_optimized(dev, |
3575 | budget - rx_work); | ||
3575 | retcode = nv_alloc_rx_optimized(dev); | 3576 | retcode = nv_alloc_rx_optimized(dev); |
3576 | } | 3577 | } |
3577 | } while (retcode == 0 && | 3578 | } while (retcode == 0 && |