[PATCH 4/6] build_patches: reintroduce updated l2tp stats patch

Dominik Heidler dominik at heidler.eu
Mi Mai 31 13:43:09 CEST 2017


Reviewed-by: Dominik Heidler <dominik at heidler.eu>

Am 30.05.2017 um 12:21 schrieb Adrian Schmutzler:
> Like in the earlier patch, this suppresses the integer overflow
> warning for l2tp on 32 bit systems. However, like before, the
> underlying counter variable is still a 32-bit integer, so the
> traffic counters will just restart at zero after reaching
> 2^32 bytes = 4 GiB.
> 
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> ---
>  .../openwrt/0004-ar71xx-4.4-l2tp-stats.patch       | 41 ++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100755 build_patches/openwrt/0004-ar71xx-4.4-l2tp-stats.patch
> 
> diff --git a/build_patches/openwrt/0004-ar71xx-4.4-l2tp-stats.patch b/build_patches/openwrt/0004-ar71xx-4.4-l2tp-stats.patch
> new file mode 100755
> index 0000000..9ee3516
> --- /dev/null
> +++ b/build_patches/openwrt/0004-ar71xx-4.4-l2tp-stats.patch
> @@ -0,0 +1,41 @@
> +--- target/linux/ar71xx/patches-4.4/fix-l2tp-stats-counter-overflow-on-32-bit-systems.patch	1970-01-01 01:00:00.000000000 +0100
> ++++ target/linux/ar71xx/patches-4.4/fix-l2tp-stats-counter-overflow-on-32-bit-systems.patch	2016-03-12 18:41:32.818602442 +0100
> +@@ -0,0 +1,38 @@
> ++From 19b1c8733b99f13005f2d8918bce588f0b2556f8 Mon Sep 17 00:00:00 2001
> ++From: Dominik Heidler <dominik at heidler.eu>
> ++Date: Sat, 12 Mar 2016 18:37:42 +0100
> ++Subject: [PATCH] Fix l2tp stats couter on 32 Bit Systems
> ++
> ++---
> ++ net/l2tp/l2tp_eth.c | 9 +++++++++
> ++ 1 file changed, 9 insertions(+)
> ++
> ++diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
> ++index e253c26..a18c2ff 100644
> ++--- a/net/l2tp/l2tp_eth.c
> +++++ b/net/l2tp/l2tp_eth.c
> ++@@ -111,12 +111,21 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
> ++ {
> ++ 	struct l2tp_eth *priv = netdev_priv(dev);
> ++ 
> +++	#if BITS_PER_LONG == 64
> ++ 	stats->tx_bytes   = atomic_long_read(&priv->tx_bytes);
> ++ 	stats->tx_packets = atomic_long_read(&priv->tx_packets);
> ++ 	stats->tx_dropped = atomic_long_read(&priv->tx_dropped);
> ++ 	stats->rx_bytes   = atomic_long_read(&priv->rx_bytes);
> ++ 	stats->rx_packets = atomic_long_read(&priv->rx_packets);
> ++ 	stats->rx_errors  = atomic_long_read(&priv->rx_errors);
> +++	#else
> +++	stats->tx_bytes   = (unsigned long) atomic_long_read(&priv->tx_bytes);
> +++	stats->tx_packets = (unsigned long) atomic_long_read(&priv->tx_packets);
> +++	stats->tx_dropped = (unsigned long) atomic_long_read(&priv->tx_dropped);
> +++	stats->rx_bytes   = (unsigned long) atomic_long_read(&priv->rx_bytes);
> +++	stats->rx_packets = (unsigned long) atomic_long_read(&priv->rx_packets);
> +++	stats->rx_errors  = (unsigned long) atomic_long_read(&priv->rx_errors);
> +++	#endif
> ++ 	return stats;
> ++ }
> ++ 
> ++-- 
> ++2.7.2
> ++
> 


Mehr Informationen über die Mailingliste franken-dev