|
@@ -2076,7 +2076,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
|
|
#endif /* IXGBE_FCOE */
|
|
#endif /* IXGBE_FCOE */
|
|
u16 cleaned_count = ixgbe_desc_unused(rx_ring);
|
|
u16 cleaned_count = ixgbe_desc_unused(rx_ring);
|
|
|
|
|
|
- do {
|
|
|
|
|
|
+ while (likely(total_rx_packets < budget)) {
|
|
union ixgbe_adv_rx_desc *rx_desc;
|
|
union ixgbe_adv_rx_desc *rx_desc;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
|
|
|
|
@@ -2151,7 +2151,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
|
|
|
|
|
|
/* update budget accounting */
|
|
/* update budget accounting */
|
|
total_rx_packets++;
|
|
total_rx_packets++;
|
|
- } while (likely(total_rx_packets < budget));
|
|
|
|
|
|
+ }
|
|
|
|
|
|
u64_stats_update_begin(&rx_ring->syncp);
|
|
u64_stats_update_begin(&rx_ring->syncp);
|
|
rx_ring->stats.packets += total_rx_packets;
|
|
rx_ring->stats.packets += total_rx_packets;
|