netfilter: nft_set_bitmap: fix lockdep splat due to missing annotation
authorFlorian Westphal <fw@strlen.de>
Tue, 9 Sep 2025 12:45:21 +0000 (14:45 +0200)
committerFlorian Westphal <fw@strlen.de>
Wed, 10 Sep 2025 18:28:24 +0000 (20:28 +0200)
commit5e13f2c491a4100d208e77e92fe577fe3dbad6c2
tree4f4bc710baeb4a725056806103ec9c8f53010eb8
parent78dd8ad62cad4f5af22afc842890d531312bbb8a
netfilter: nft_set_bitmap: fix lockdep splat due to missing annotation

Running new 'set_flush_add_atomic_bitmap' test case for nftables.git
with CONFIG_PROVE_RCU_LIST=y yields:

net/netfilter/nft_set_bitmap.c:231 RCU-list traversed in non-reader section!!
rcu_scheduler_active = 2, debug_locks = 1
1 lock held by nft/4008:
 #0: ffff888147f79cd8 (&nft_net->commit_mutex){+.+.}-{4:4}, at: nf_tables_valid_genid+0x2f/0xd0

 lockdep_rcu_suspicious+0x116/0x160
 nft_bitmap_walk+0x22d/0x240
 nf_tables_delsetelem+0x1010/0x1a00
 ..

This is a false positive, the list cannot be altered while the
transaction mutex is held, so pass the relevant argument to the iterator.

Fixes tag intentionally wrong; no point in picking this up if earlier
false-positive-fixups were not applied.

Fixes: 28b7a6b84c0a ("netfilter: nf_tables: avoid false-positive lockdep splats in set walker")
Signed-off-by: Florian Westphal <fw@strlen.de>
net/netfilter/nft_set_bitmap.c