Message ID | 1458142510-3295-1-git-send-email-dominik@heidler.eu |
---|---|
State | Accepted, archived |
Headers | show |
diff --git a/build_patches/ar71xx-3.18-l2tp-stats.patch b/build_patches/ar71xx-3.18-l2tp-stats.patch new file mode 100644 index 0000000..039d2c8 --- /dev/null +++ b/build_patches/ar71xx-3.18-l2tp-stats.patch @@ -0,0 +1,42 @@ +diff -ruN a/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch b/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch +--- a/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch 1970-01-01 01:00:00.000000000 +0100 ++++ b/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-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@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 ++ diff --git a/buildscript b/buildscript index 362781a..6f4bb09 100755 --- a/buildscript +++ b/buildscript @@ -171,6 +171,9 @@ prepare() { #add Support for GL-AR150 see also http://git.openwrt.org/?p=openwrt.git;a=commit;h=8211e81bce57392635fa3ad6572514387118e4a5 patch -p0 -d "$target" -i "$PWD"/build_patches/ar71xx-add-support-for-GL-AR150.patch + # fix l2tp stat counter on 32 Bit systems + patch -p1 -d "$target" -i "$PWD"/build_patches/ar71xx-3.18-l2tp-stats.patch + #saves ~200MB for each build test -d ./src/dl || mkdir ./src/dl ln -s ../../src/dl "$target"/dl
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Hi Am 16. März 2016 16:35:10 MEZ, schrieb Dominik Heidler <dominik@heidler.eu>: >The 32 bit counter was incorrectly interpreted as signed >when being converted to the 64 bit value used for the >sysfs output. > >Signed-off-by: Dominik Heidler <dominik@heidler.eu> Reviewed-by: Tim Niemeyer <tim@tn-x.org> Schöne Sache. Danke. Tim >--- >build_patches/ar71xx-3.18-l2tp-stats.patch | 42 >++++++++++++++++++++++++++++++ > buildscript | 3 +++ > 2 files changed, 45 insertions(+) > create mode 100644 build_patches/ar71xx-3.18-l2tp-stats.patch > >diff --git a/build_patches/ar71xx-3.18-l2tp-stats.patch >b/build_patches/ar71xx-3.18-l2tp-stats.patch >new file mode 100644 >index 0000000..039d2c8 >--- /dev/null >+++ b/build_patches/ar71xx-3.18-l2tp-stats.patch >@@ -0,0 +1,42 @@ >+diff -ruN >a/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch >b/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch >+--- >a/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch 1970-01-01 >01:00:00.000000000 +0100 >++++ >b/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-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@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 >++ >diff --git a/buildscript b/buildscript >index 362781a..6f4bb09 100755 >--- a/buildscript >+++ b/buildscript >@@ -171,6 +171,9 @@ prepare() { >#add Support for GL-AR150 see also >http://git.openwrt.org/?p=openwrt.git;a=commit;h=8211e81bce57392635fa3ad6572514387118e4a5 >patch -p0 -d "$target" -i >"$PWD"/build_patches/ar71xx-add-support-for-GL-AR150.patch > >+ # fix l2tp stat counter on 32 Bit systems >+ patch -p1 -d "$target" -i >"$PWD"/build_patches/ar71xx-3.18-l2tp-stats.patch >+ > #saves ~200MB for each build > test -d ./src/dl || mkdir ./src/dl > ln -s ../../src/dl "$target"/dl -----BEGIN PGP SIGNATURE----- iQE5BAEBCgAjHBxUaW0gTmllbWV5ZXIgPHRpbUB0bi14Lm9yZz4FAlbpgQQACgkQ ELiw0DPkKM/Pgwf/Z06RcqQP6T6NiuWk8sLJqO9ZDe3/uxBilUX7HCb2MOFhGAUM T08yKCkz2yIDJh6UYoeZQv+tT+39YGCyUu9EbMle0+rtDiFNrsUE2ek/9OG0wyEA tHvNRH1GHbDfRAGS5nr7g9yWENsovWtg9O0rNhNcwUuHT5EVhq42sirznS9s6YYx CuBcwaJywFuRMHwME4NXCnRjDFsjEIbooklcTf808wWakvRI9vwaq3FFilzg+WR3 4E1diOcsjHqiYR6GArllqZ3ytqliG/LSpIVA15CZC2aHDbgw+t55d+YWjdZ9RhxY eD7mk/HNv7cyA7kJwRSA8gO4fgDy8oyustUT0g== =4kUD -----END PGP SIGNATURE-----
Hi Rebased und applied. Tim Am Mittwoch, den 16.03.2016, 16:35 +0100 schrieb Dominik Heidler: > The 32 bit counter was incorrectly interpreted as signed > when being converted to the 64 bit value used for the > sysfs output. > > Signed-off-by: Dominik Heidler <dominik@heidler.eu> > --- > build_patches/ar71xx-3.18-l2tp-stats.patch | 42 ++++++++++++++++++++++++++++++ > buildscript | 3 +++ > 2 files changed, 45 insertions(+) > create mode 100644 build_patches/ar71xx-3.18-l2tp-stats.patch > > diff --git a/build_patches/ar71xx-3.18-l2tp-stats.patch b/build_patches/ar71xx-3.18-l2tp-stats.patch > new file mode 100644 > index 0000000..039d2c8 > --- /dev/null > +++ b/build_patches/ar71xx-3.18-l2tp-stats.patch > @@ -0,0 +1,42 @@ > +diff -ruN a/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch b/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch > +--- a/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-on-32-Bit-Systems.patch 1970-01-01 01:00:00.000000000 +0100 > ++++ b/target/linux/ar71xx/patches-3.18/fix-l2tp-stats-couter-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@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 > ++ > diff --git a/buildscript b/buildscript > index 362781a..6f4bb09 100755 > --- a/buildscript > +++ b/buildscript > @@ -171,6 +171,9 @@ prepare() { > #add Support for GL-AR150 see also http://git.openwrt.org/?p=openwrt.git;a=commit;h=8211e81bce57392635fa3ad6572514387118e4a5 > patch -p0 -d "$target" -i "$PWD"/build_patches/ar71xx-add-support-for-GL-AR150.patch > > + # fix l2tp stat counter on 32 Bit systems > + patch -p1 -d "$target" -i "$PWD"/build_patches/ar71xx-3.18-l2tp-stats.patch > + > #saves ~200MB for each build > test -d ./src/dl || mkdir ./src/dl > ln -s ../../src/dl "$target"/dl > -- > 2.7.2 >
The 32 bit counter was incorrectly interpreted as signed when being converted to the 64 bit value used for the sysfs output. Signed-off-by: Dominik Heidler <dominik@heidler.eu> --- build_patches/ar71xx-3.18-l2tp-stats.patch | 42 ++++++++++++++++++++++++++++++ buildscript | 3 +++ 2 files changed, 45 insertions(+) create mode 100644 build_patches/ar71xx-3.18-l2tp-stats.patch