summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2023-09-06 17:22:58 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2023-09-08 03:26:58 +0200
commit6d365eabce3c018a80f6e0379b17df2abb17405e (patch)
treed2a5c826b96a069139c8606bb3c1ba72ef254e64 /net
parentnetfilter: nft_set_pipapo: call nft_trans_gc_queue_sync() in catchall GC (diff)
downloadlinux-6d365eabce3c018a80f6e0379b17df2abb17405e.tar.xz
linux-6d365eabce3c018a80f6e0379b17df2abb17405e.zip
netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails
nft_trans_gc_queue_sync() enqueues the GC transaction and it allocates a new one. If this allocation fails, then stop this GC sync run and retry later. Fixes: 5f68718b34a5 ("netfilter: nf_tables: GC transaction API to avoid race with control plane") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nft_set_pipapo.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 10b89ac74476..c0dcc40de358 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -1596,7 +1596,7 @@ static void pipapo_gc(const struct nft_set *_set, struct nft_pipapo_match *m)
gc = nft_trans_gc_queue_sync(gc, GFP_ATOMIC);
if (!gc)
- break;
+ return;
nft_pipapo_gc_deactivate(net, set, e);
pipapo_drop(m, rulemap);