Przeglądaj źródła

8139cp: Don't receive packets when the napi budget == 0

Processing any incoming packets with a with a napi budget of 0
is incorrect driver behavior.

This matters as netpoll will shortly call drivers with a budget of 0
to avoid receive packet processing happening in hard irq context.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Eric W. Biederman 11 lat temu
rodzic
commit
50ff44be40
1 zmienionych plików z 1 dodań i 4 usunięć
  1. 1 4
      drivers/net/ethernet/realtek/8139cp.c

+ 1 - 4
drivers/net/ethernet/realtek/8139cp.c

@@ -476,7 +476,7 @@ rx_status_loop:
 	rx = 0;
 	rx = 0;
 	cpw16(IntrStatus, cp_rx_intr_mask);
 	cpw16(IntrStatus, cp_rx_intr_mask);
 
 
-	while (1) {
+	while (rx < budget) {
 		u32 status, len;
 		u32 status, len;
 		dma_addr_t mapping, new_mapping;
 		dma_addr_t mapping, new_mapping;
 		struct sk_buff *skb, *new_skb;
 		struct sk_buff *skb, *new_skb;
@@ -554,9 +554,6 @@ rx_next:
 		else
 		else
 			desc->opts1 = cpu_to_le32(DescOwn | cp->rx_buf_sz);
 			desc->opts1 = cpu_to_le32(DescOwn | cp->rx_buf_sz);
 		rx_tail = NEXT_RX(rx_tail);
 		rx_tail = NEXT_RX(rx_tail);
-
-		if (rx >= budget)
-			break;
 	}
 	}
 
 
 	cp->rx_tail = rx_tail;
 	cp->rx_tail = rx_tail;