OSDN Git Service

liquidio: do not consider packets dropped by network stack as driver Rx dropped
authorIntiyaz Basha <intiyaz.basha@cavium.com>
Fri, 3 Nov 2017 21:32:33 +0000 (14:32 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 5 Nov 2017 13:29:44 +0000 (22:29 +0900)
netdev->rx_dropped was including packets dropped by napi_gro_receive.
If a packet is dropped by network stack, it should not be counted under
driver Rx dropped.

Made necessary changes to not include network stack drops under
netdev->rx_dropped.

Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com>
Signed-off-by: Satanand Burla <satananda.burla@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/lio_core.c

index 89b7820..32ae63b 100644 (file)
@@ -467,7 +467,6 @@ liquidio_push_packet(u32 octeon_id __attribute__((unused)),
        if (netdev) {
                struct lio *lio = GET_LIO(netdev);
                struct octeon_device *oct = lio->oct_dev;
-               int packet_was_received;
 
                /* Do not proceed if the interface is not in RUNNING state. */
                if (!ifstate_check(lio, LIO_IFSTATE_RUNNING)) {
@@ -570,18 +569,10 @@ liquidio_push_packet(u32 octeon_id __attribute__((unused)),
                        __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vtag);
                }
 
-               packet_was_received = (napi_gro_receive(napi, skb) != GRO_DROP);
-
-               if (packet_was_received) {
-                       droq->stats.rx_bytes_received += len;
-                       droq->stats.rx_pkts_received++;
-               } else {
-                       droq->stats.rx_dropped++;
-                       netif_info(lio, rx_err, lio->netdev,
-                                  "droq:%d  error rx_dropped:%llu\n",
-                                  droq->q_no, droq->stats.rx_dropped);
-               }
+               napi_gro_receive(napi, skb);
 
+               droq->stats.rx_bytes_received += len;
+               droq->stats.rx_pkts_received++;
        } else {
                recv_buffer_free(skb);
        }