linux-stable/net
Pablo Neira d84701ecbc netfilter: nft_counter: rework atomic dump and reset
Dump and reset doesn't work unless cmpxchg64() is used both from packet
and control plane paths. This approach is going to be slow though.
Instead, use a percpu seqcount to fetch counters consistently, then
subtract bytes and packets in case a reset was requested.

The cpu that running over the reset code is guaranteed to own this stats
exclusively, we have to turn counters into signed 64bit though so stats
update on reset don't get wrong on underflow.

This patch is based on original sketch from Eric Dumazet.

Fixes: 43da04a593 ("netfilter: nf_tables: atomic dump and reset for stateful objects")
Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-11 10:01:05 -05:00
..
6lowpan
9p
802
8021q
appletalk
atm
ax25
batman-adv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-06 21:33:19 -05:00
bluetooth Bluetooth: SMP: Add support for H7 crypto function and CT2 auth flag 2016-12-08 07:50:24 +01:00
bridge net: bridge: shorten ageing time on topology change 2016-12-10 21:28:28 -05:00
caif Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-06 21:33:19 -05:00
can can: raw: raw_setsockopt: limit number of can_filter that can be set 2016-12-07 10:45:57 +01:00
ceph
core net: skb_condense() can also deal with empty skbs 2016-12-09 23:06:10 -05:00
dcb net: dcb: set error code on failures 2016-12-03 23:54:25 -05:00
dccp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
decnet
dns_resolver
dsa Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
ethernet
hsr
ieee802154 ieee802154: check device type 2016-11-30 12:33:07 +01:00
ipv4 udp: udp_rmem_release() should touch sk_rmem_alloc later 2016-12-09 22:12:21 -05:00
ipv6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2016-12-07 19:16:46 -05:00
ipx
irda
iucv
kcm
key
l2tp net: l2tp: ppp: change PPPOL2TP_MSG_* => L2TP_MSG_* 2016-12-10 23:29:11 -05:00
l3mdev
lapb
llc
mac80211 Three fixes: 2016-12-09 22:59:05 -05:00
mac802154
mpls Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-06 21:33:19 -05:00
ncsi
netfilter netfilter: nft_counter: rework atomic dump and reset 2016-12-11 10:01:05 -05:00
netlabel
netlink netlink: use blocking notifier 2016-12-10 17:25:58 -05:00
netrom
nfc
openvswitch Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
packet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
phonet
qrtr
rds Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
rfkill
rose
rxrpc
sched net/sched: cls_flower: Support matching on ICMP type and code 2016-12-08 11:47:08 -05:00
sctp
strparser
sunrpc
switchdev
tipc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
unix
vmw_vsock
wimax
wireless Three fixes: 2016-12-09 22:59:05 -05:00
x25
xfrm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
Kconfig bpf: BPF for lightweight tunnel infrastructure 2016-12-02 10:51:49 -05:00
Makefile
compat.c
socket.c net: socket: removed an unnecessary newline 2016-12-10 17:27:07 -05:00
sysctl_net.c