|
@@ -6946,7 +6946,7 @@ static bool igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
|
|
|
unsigned int total_bytes = 0, total_packets = 0;
|
|
|
u16 cleaned_count = igb_desc_unused(rx_ring);
|
|
|
|
|
|
- do {
|
|
|
+ while (likely(total_packets < budget)) {
|
|
|
union e1000_adv_rx_desc *rx_desc;
|
|
|
|
|
|
/* return some buffers to hardware, one at a time is too slow */
|
|
@@ -6998,7 +6998,7 @@ static bool igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
|
|
|
|
|
|
/* update budget accounting */
|
|
|
total_packets++;
|
|
|
- } while (likely(total_packets < budget));
|
|
|
+ }
|
|
|
|
|
|
/* place incomplete frames back on ring for completion */
|
|
|
rx_ring->skb = skb;
|