netfilter: nf_tables: 64bit stats need some extra synchronization
Use generic u64_stats_sync infrastructure to get proper 64bit stats, even on 32bit arches, at no extra cost for 64bit arches. Without this fix, 32bit arches can have some wrong counters at the time the carry is propagated into upper word. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
committed by
Pablo Neira Ayuso
parent
38e029f14a
commit
ce355e209f
@@ -6,6 +6,7 @@
|
||||
#include <linux/netfilter/nfnetlink.h>
|
||||
#include <linux/netfilter/x_tables.h>
|
||||
#include <linux/netfilter/nf_tables.h>
|
||||
#include <linux/u64_stats_sync.h>
|
||||
#include <net/netlink.h>
|
||||
|
||||
#define NFT_JUMP_STACK_SIZE 16
|
||||
@@ -528,8 +529,9 @@ enum nft_chain_type {
|
||||
};
|
||||
|
||||
struct nft_stats {
|
||||
u64 bytes;
|
||||
u64 pkts;
|
||||
u64 bytes;
|
||||
u64 pkts;
|
||||
struct u64_stats_sync syncp;
|
||||
};
|
||||
|
||||
#define NFT_HOOK_OPS_MAX 2
|
||||
|
||||
Reference in New Issue
Block a user