net: add DEV_STATS_READ() helper
authorEric Dumazet <edumazet@google.com>
Thu, 21 Sep 2023 08:52:16 +0000 (08:52 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:51:55 +0000 (11:51 +0100)
[ Upstream commit 0b068c714ca9479d2783cc333fff5bc2d4a6d45c ]

Companion of DEV_STATS_INC() & DEV_STATS_ADD().

This is going to be used in the series.

Use it in macsec_get_stats64().

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: ff672b9ffeb3 ("ipvlan: properly track tx_errors")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/macsec.c
include/linux/netdevice.h

index 81453e8..209ee9f 100644 (file)
@@ -3664,9 +3664,9 @@ static void macsec_get_stats64(struct net_device *dev,
 
        dev_fetch_sw_netstats(s, dev->tstats);
 
-       s->rx_dropped = atomic_long_read(&dev->stats.__rx_dropped);
-       s->tx_dropped = atomic_long_read(&dev->stats.__tx_dropped);
-       s->rx_errors = atomic_long_read(&dev->stats.__rx_errors);
+       s->rx_dropped = DEV_STATS_READ(dev, rx_dropped);
+       s->tx_dropped = DEV_STATS_READ(dev, tx_dropped);
+       s->rx_errors = DEV_STATS_READ(dev, rx_errors);
 }
 
 static int macsec_get_iflink(const struct net_device *dev)
index 5a04fbf..0373e09 100644 (file)
@@ -5190,5 +5190,6 @@ extern struct net_device *blackhole_netdev;
 #define DEV_STATS_INC(DEV, FIELD) atomic_long_inc(&(DEV)->stats.__##FIELD)
 #define DEV_STATS_ADD(DEV, FIELD, VAL)         \
                atomic_long_add((VAL), &(DEV)->stats.__##FIELD)
+#define DEV_STATS_READ(DEV, FIELD) atomic_long_read(&(DEV)->stats.__##FIELD)
 
 #endif /* _LINUX_NETDEVICE_H */