[PATCH 53/75] patch: Adapt struct pcpu_sw_netstats change to u64_stats_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In kernel 6.0 the struct pcpu_sw_netstats which contains the counters
for network devices changes from attributes of type u64 to u64_stats_t.
The new types need special functions, use the old arithmetic operations
on older kernel versions.

Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
---
 patches/0111-pcpu_sw_netstats.patch | 30 +++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 patches/0111-pcpu_sw_netstats.patch

diff --git a/patches/0111-pcpu_sw_netstats.patch b/patches/0111-pcpu_sw_netstats.patch
new file mode 100644
index 00000000..70f3fad6
--- /dev/null
+++ b/patches/0111-pcpu_sw_netstats.patch
@@ -0,0 +1,30 @@
+--- a/drivers/net/usb/usbnet.c
++++ b/drivers/net/usb/usbnet.c
+@@ -334,8 +334,13 @@ void usbnet_skb_return (struct usbnet *d
+ 		skb->protocol = eth_type_trans (skb, dev->net);
+ 
+ 	flags = u64_stats_update_begin_irqsave(&stats64->syncp);
++#if LINUX_VERSION_IS_GEQ(6,0,0)
+ 	u64_stats_inc(&stats64->rx_packets);
+ 	u64_stats_add(&stats64->rx_bytes, skb->len);
++#else
++	stats64->rx_packets++;
++	stats64->rx_bytes += skb->len;
++#endif
+ 	u64_stats_update_end_irqrestore(&stats64->syncp, flags);
+ 
+ 	netif_dbg(dev, rx_status, dev->net, "< rx, len %zu, type 0x%x\n",
+@@ -1253,8 +1258,13 @@ static void tx_complete (struct urb *urb
+ 		unsigned long flags;
+ 
+ 		flags = u64_stats_update_begin_irqsave(&stats64->syncp);
++#if LINUX_VERSION_IS_GEQ(6,0,0)
+ 		u64_stats_add(&stats64->tx_packets, entry->packets);
+ 		u64_stats_add(&stats64->tx_bytes, entry->length);
++#else
++		stats64->tx_packets += entry->packets;
++		stats64->tx_bytes += entry->length;
++#endif
+ 		u64_stats_update_end_irqrestore(&stats64->syncp, flags);
+ 	} else {
+ 		dev->net->stats.tx_errors++;
-- 
2.45.2





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux