aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2021-10-04 23:24:38 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2021-10-18 23:01:19 +0200
commita3e1fb0e9520298d58d07e2beab2cf93e9a0d922 (patch)
tree6186d0c569edd10c13bc1b88a0382a2b4d3f7aa7
parent9b3d4096d8af43ac7ba222c37fe64d5c5940038c (diff)
downloadbackports-a3e1fb0e9520298d58d07e2beab2cf93e9a0d922.tar.gz
backports: Add dev_sw_netstats_rx_add() and dev_sw_netstats_tx_add()
Copy dev_sw_netstats_rx_add() and dev_sw_netstats_tx_add() from the upstream kernel. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--backport/backport-include/linux/netdevice.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/backport/backport-include/linux/netdevice.h b/backport/backport-include/linux/netdevice.h
index d854faef..5c30426d 100644
--- a/backport/backport-include/linux/netdevice.h
+++ b/backport/backport-include/linux/netdevice.h
@@ -113,6 +113,34 @@ void dev_fetch_sw_netstats(struct rtnl_link_stats64 *s,
int netif_rx_any_context(struct sk_buff *skb);
#endif /* < 5.10 */
+#if LINUX_VERSION_IS_LESS(5,10,0)
+#define dev_sw_netstats_rx_add LINUX_BACKPORT(dev_sw_netstats_rx_add)
+static inline void dev_sw_netstats_rx_add(struct net_device *dev, unsigned int len)
+{
+ struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats);
+
+ u64_stats_update_begin(&tstats->syncp);
+ tstats->rx_bytes += len;
+ tstats->rx_packets++;
+ u64_stats_update_end(&tstats->syncp);
+}
+#endif /* < 5.10 */
+
+#if LINUX_VERSION_IS_LESS(5,11,0)
+#define dev_sw_netstats_tx_add LINUX_BACKPORT(dev_sw_netstats_tx_add)
+static inline void dev_sw_netstats_tx_add(struct net_device *dev,
+ unsigned int packets,
+ unsigned int len)
+{
+ struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats);
+
+ u64_stats_update_begin(&tstats->syncp);
+ tstats->tx_bytes += len;
+ tstats->tx_packets += packets;
+ u64_stats_update_end(&tstats->syncp);
+}
+#endif /* < 5.11 */
+
#if LINUX_VERSION_IS_LESS(5,11,0)
#define dev_get_tstats64 LINUX_BACKPORT(dev_get_tstats64)
void dev_get_tstats64(struct net_device *dev, struct rtnl_link_stats64 *s);