diff options
author | Eric Dumazet <edumazet@google.com> | 2024-04-26 13:47:22 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-04-29 12:03:51 +0300 |
commit | b5327b9a300e2ecec1372ed375615f39e3df0542 (patch) | |
tree | a4eebfad7a33a68a3b78e3e40f9e7e269504cc74 /include | |
parent | 61f5338d62673379ff2ce5a8c05682658a196980 (diff) | |
download | linux-b5327b9a300e2ecec1372ed375615f39e3df0542.tar.xz |
ipv6: use call_rcu_hurry() in fib6_info_release()
This is a followup of commit c4e86b4363ac ("net: add two more
call_rcu_hurry()")
fib6_info_destroy_rcu() is calling nexthop_put() or fib6_nh_release()
We must not delay it too much or risk unregister_netdevice/ref_tracker
traces because references to netdev are not released in time.
This should speedup device/netns dismantles when CONFIG_RCU_LAZY=y
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/ip6_fib.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 323c94f1845b..7834f7f29d3c 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -338,7 +338,7 @@ static inline void fib6_info_release(struct fib6_info *f6i) { if (f6i && refcount_dec_and_test(&f6i->fib6_ref)) { DEBUG_NET_WARN_ON_ONCE(!hlist_unhashed(&f6i->gc_link)); - call_rcu(&f6i->rcu, fib6_info_destroy_rcu); + call_rcu_hurry(&f6i->rcu, fib6_info_destroy_rcu); } } |