summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@netfilter.org>2024-01-29 12:30:23 +0100
committerJozsef Kadlecsik <kadlec@netfilter.org>2024-01-29 12:30:23 +0100
commit148fad4dcc41bd07b52ed3ccca5f40765e9cf692 (patch)
tree8dabf3d719bfc7875f6c71254aca764821f27025 /kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
parent0378d91222c1aba5a766c3d745574ed1c59cbf8f (diff)
netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test v4
The patch "netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test", commit 28628fa9 fixes a race condition. But the synchronize_rcu() added to the swap function unnecessarily slows it down: it can safely be moved to destroy and use call_rcu() instead. Eric Dumazet pointed out that simply calling the destroy functions as rcu callback does not work: sets with timeout use garbage collectors which need cancelling at destroy which can wait. Therefore the destroy functions are split into two: cancelling garbage collectors safely at executing the command received by netlink and moving the remaining part only into the rcu callback. Link: https://lore.kernel.org/lkml/C0829B10-EAA6-4809-874E-E1E9C05A8D84@automattic.com/ Fixes: 28628fa952fe ("netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test") Reported-by: Ale Crismani <ale.crismani@automattic.com> Reported-by: David Wang <00107082@163.com> Tested-by: David Wang <00107082@163.com> Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Diffstat (limited to 'kernel/include/linux/netfilter/ipset/ip_set_compat.h.in')
0 files changed, 0 insertions, 0 deletions