]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
netfilter: nft_counter: fix reset of counters on 32bit archs
authorAnders Grahn <anders.grahn@gmail.com>
Tue, 3 Feb 2026 13:48:30 +0000 (14:48 +0100)
committerFlorian Westphal <fw@strlen.de>
Fri, 6 Feb 2026 12:34:55 +0000 (13:34 +0100)
commit1e13f27e0675552161ab1778be9a23a636dde8a7
tree02c19d26559bf2a12fd4e668c50fb04aaff3d8d0
parent2f635adbe2642d398a0be3ab245accd2987be0c3
netfilter: nft_counter: fix reset of counters on 32bit archs

nft_counter_reset() calls u64_stats_add() with a negative value to reset
the counter. This will work on 64bit archs, hence the negative value
added will wrap as a 64bit value which then can wrap the stat counter as
well.

On 32bit archs, the added negative value will wrap as a 32bit value and
_not_ wrapping the stat counter properly. In most cases, this would just
lead to a very large 32bit value being added to the stat counter.

Fix by introducing u64_stats_sub().

Fixes: 4a1d3acd6ea8 ("netfilter: nft_counter: Use u64_stats_t for statistic.")
Signed-off-by: Anders Grahn <anders.grahn@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
include/linux/u64_stats_sync.h
net/netfilter/nft_counter.c