net: enetc: remove xdp_drops statistic from enetc_xdp_drop()
authorWei Fang <wei.fang@nxp.com>
Thu, 10 Oct 2024 09:20:53 +0000 (17:20 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 11 Oct 2024 22:45:10 +0000 (15:45 -0700)
The xdp_drops statistic indicates the number of XDP frames dropped in
the Rx direction. However, enetc_xdp_drop() is also used in XDP_TX and
XDP_REDIRECT actions. If frame loss occurs in these two actions, the
frames loss count should not be included in xdp_drops, because there
are already xdp_tx_drops and xdp_redirect_failures to count the frame
loss of these two actions, so it's better to remove xdp_drops statistic
from enetc_xdp_drop() and increase xdp_drops in XDP_DROP action.

Fixes: 7ed2bc80074e ("net: enetc: add support for XDP_TX")
Cc: stable@vger.kernel.org
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20241010092056.298128-2-wei.fang@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/enetc/enetc.c

index 032d8ea..56e5972 100644 (file)
@@ -1521,7 +1521,6 @@ static void enetc_xdp_drop(struct enetc_bdr *rx_ring, int rx_ring_first,
                                  &rx_ring->rx_swbd[rx_ring_first]);
                enetc_bdr_idx_inc(rx_ring, &rx_ring_first);
        }
-       rx_ring->stats.xdp_drops++;
 }
 
 static int enetc_clean_rx_ring_xdp(struct enetc_bdr *rx_ring,
@@ -1586,6 +1585,7 @@ static int enetc_clean_rx_ring_xdp(struct enetc_bdr *rx_ring,
                        fallthrough;
                case XDP_DROP:
                        enetc_xdp_drop(rx_ring, orig_i, i);
+                       rx_ring->stats.xdp_drops++;
                        break;
                case XDP_PASS:
                        rxbd = orig_rxbd;