8139cp: Don't receive packets when the napi budget == 0
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 11 Mar 2014 21:31:43 +0000 (14:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Mar 2014 19:18:45 +0000 (15:18 -0400)
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>
drivers/net/ethernet/realtek/8139cp.c

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