]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
netfilter: nf_tables: split async and sync catchall in two functions
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 21 Nov 2023 12:14:22 +0000 (13:14 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Nov 2023 17:07:12 +0000 (17:07 +0000)
commit3f100cc63a0c4bac02f157cad9eb26cb02e30164
tree837c72d8f2c16202670807deb7a6366ee2bcace7
parent13e2d49647a7f137ebc063a4a9702dda80371b2e
netfilter: nf_tables: split async and sync catchall in two functions

[ Upstream commit 8837ba3e58ea1e3d09ae36db80b1e80853aada95 ]

list_for_each_entry_safe() does not work for the async case which runs
under RCU, therefore, split GC logic for catchall in two functions
instead, one for each of the sync and async GC variants.

The catchall sync GC variant never sees a _DEAD bit set on ever, thus,
this handling is removed in such case, moreover, allocate GC sync batch
via GFP_KERNEL.

Fixes: 93995bf4af2c ("netfilter: nf_tables: remove catchall element in GC sync path")
Reported-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/netfilter/nf_tables_api.c