From: Eric Dumazet Date: Fri, 26 Apr 2024 10:47:22 +0000 (+0000) Subject: ipv6: use call_rcu_hurry() in fib6_info_release() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b5327b9a300e;p=linux.git 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 Reviewed-by: Jiri Pirko Reviewed-by: David Ahern Signed-off-by: David S. Miller --- diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 323c94f1845b9..7834f7f29d3c9 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); } }