diff options
author | Alexander Duyck <alexander.h.duyck@redhat.com> | 2015-05-01 13:34:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-05-04 00:06:55 -0400 |
commit | 59486329b46f31532ab032014fbaae72e9f190c3 (patch) | |
tree | bc80091cb635563920b38e95698977263eb90b3a /drivers/net/ethernet | |
parent | 4212b5433187d01b5ae83664b06e990a9116250f (diff) |
fm10k: Do not assume budget will never be 0 for NAPI
The netpoll path will call napi->poll with a budget of 0 in order to clean
the Tx rings only. This change updates the fm10k driver so that it will
correctly support that instead of cleaning 1 Rx frame if a budget of 0 is
received.
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k_main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c index 1b0661e3573b..c754b2027281 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c | |||
@@ -610,7 +610,7 @@ static bool fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector, | |||
610 | unsigned int total_bytes = 0, total_packets = 0; | 610 | unsigned int total_bytes = 0, total_packets = 0; |
611 | u16 cleaned_count = fm10k_desc_unused(rx_ring); | 611 | u16 cleaned_count = fm10k_desc_unused(rx_ring); |
612 | 612 | ||
613 | do { | 613 | while (likely(total_packets < budget)) { |
614 | union fm10k_rx_desc *rx_desc; | 614 | union fm10k_rx_desc *rx_desc; |
615 | 615 | ||
616 | /* return some buffers to hardware, one at a time is too slow */ | 616 | /* return some buffers to hardware, one at a time is too slow */ |
@@ -659,7 +659,7 @@ static bool fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector, | |||
659 | 659 | ||
660 | /* update budget accounting */ | 660 | /* update budget accounting */ |
661 | total_packets++; | 661 | total_packets++; |
662 | } while (likely(total_packets < budget)); | 662 | } |
663 | 663 | ||
664 | /* place incomplete frames back on ring for completion */ | 664 | /* place incomplete frames back on ring for completion */ |
665 | rx_ring->skb = skb; | 665 | rx_ring->skb = skb; |