linux/net/l2tp
Dominik Heidler d5eeb68afe l2tp: cast l2tp traffic counter to unsigned
commit 9b3dc0a17d upstream.

This fixes a counter problem on 32bit systems:
When the rx_bytes counter reached 2 GiB, it jumpd to (2^64 Bytes - 2GiB) Bytes.

rtnl_link_stats64 has __u64 type and atomic_long_read returns
atomic_long_t which is signed. Due to the conversation
we get an incorrect value on 32bit systems if the MSB of
the atomic_long_t value is set.

CC: Tom Parkin <tparkin@katalix.com>
Fixes: 7b7c0719cd ("l2tp: avoid deadlock in l2tp stats update")
Signed-off-by: Dominik Heidler <dheidler@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2017-09-15 18:30:09 +01:00
..
Kconfig net/l2tp: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:40:01 -08:00
l2tp_core.c l2tp: take reference on sessions being dumped 2017-07-18 18:40:30 +01:00
l2tp_core.h l2tp: take reference on sessions being dumped 2017-07-18 18:40:30 +01:00
l2tp_debugfs.c l2tp: take reference on sessions being dumped 2017-07-18 18:40:30 +01:00
l2tp_eth.c l2tp: cast l2tp traffic counter to unsigned 2017-09-15 18:30:09 +01:00
l2tp_ip.c l2tp: fix race in l2tp_recv_common() 2017-07-18 18:40:27 +01:00
l2tp_ip6.c l2tp: fix race in l2tp_recv_common() 2017-07-18 18:40:27 +01:00
l2tp_netlink.c l2tp: take reference on sessions being dumped 2017-07-18 18:40:30 +01:00
l2tp_ppp.c l2tp: don't mask errors in pppol2tp_getsockopt() 2017-07-18 18:40:34 +01:00
Makefile l2tp: introduce L2TPv3 IP encapsulation support for IPv6 2012-05-01 09:30:55 -04:00