OSDN Git Service

r8152: calculate the dropped packets for rx
authorhayeswang <hayeswang@realtek.com>
Fri, 7 Mar 2014 03:04:37 +0000 (11:04 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Mar 2014 21:24:29 +0000 (16:24 -0500)
Continue dealing with the remain rx packets, even though the allocation
of the skb fail. This could calculate the correct dropped packets.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/r8152.c

index f1eaa18..08f4e87 100644 (file)
@@ -1456,7 +1456,7 @@ static void rx_bottom(struct r8152 *tp)
                        skb = netdev_alloc_skb_ip_align(netdev, pkt_len);
                        if (!skb) {
                                stats->rx_dropped++;
-                               break;
+                               goto find_next_rx;
                        }
                        memcpy(skb->data, rx_data, pkt_len);
                        skb_put(skb, pkt_len);
@@ -1465,6 +1465,7 @@ static void rx_bottom(struct r8152 *tp)
                        stats->rx_packets++;
                        stats->rx_bytes += pkt_len;
 
+find_next_rx:
                        rx_data = rx_agg_align(rx_data + pkt_len + CRC_SIZE);
                        rx_desc = (struct rx_desc *)rx_data;
                        len_used = (int)(rx_data - (u8 *)agg->head);