Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a65e87c1 authored by Pablo Neira Ayuso's avatar Pablo Neira Ayuso Committed by Lee Jones
Browse files

UPSTREAM: netfilter: nf_tables: adapt set backend to use GC transaction API



commit f6c383b8c31a93752a52697f8430a71dcbc46adf upstream.

Use the GC transaction API to replace the old and buggy gc API and the
busy mark approach.

No set elements are removed from async garbage collection anymore,
instead the _DEAD bit is set on so the set element is not visible from
lookup path anymore. Async GC enqueues transaction work that might be
aborted and retried later.

rbtree and pipapo set backends does not set on the _DEAD bit from the
sync GC path since this runs in control plane path where mutex is held.
In this case, set elements are deactivated, removed and then released
via RCU callback, sync GC never fails.

Bug: 299922216
Fixes: 3c4287f62044 ("nf_tables: Add set type for arbitrary concatenation of ranges")
Fixes: 8d8540c4 ("netfilter: nft_set_rbtree: add timeout support")
Fixes: 9d098292 ("netfilter: nft_hash: add support for timeouts")
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c3576489)
Signed-off-by: default avatarLee Jones <joneslee@google.com>
Change-Id: If26ac816e495ffe97a14b2be8459b6b0a9fad0d0
parent adc9cb06
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment