diff options
author | Nikolay Aleksandrov <nikolay@nvidia.com> | 2021-11-22 17:15:12 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-11-22 15:44:49 +0000 |
commit | 8837cbbf854246f5f4d565f21e6baa945d37aded (patch) | |
tree | 23c2e14d568ef38ace50fa87f761599df6601068 /include/net/ip6_fib.h | |
parent | net, neigh: Fix crash in v6 module initialization error path (diff) | |
download | linux-dev-8837cbbf854246f5f4d565f21e6baa945d37aded.tar.xz linux-dev-8837cbbf854246f5f4d565f21e6baa945d37aded.zip |
net: ipv6: add fib6_nh_release_dsts stub
We need a way to release a fib6_nh's per-cpu dsts when replacing
nexthops otherwise we can end up with stale per-cpu dsts which hold net
device references, so add a new IPv6 stub called fib6_nh_release_dsts.
It must be used after an RCU grace period, so no new dsts can be created
through a group's nexthop entry.
Similar to fib6_nh_release it shouldn't be used if fib6_nh_init has failed
so it doesn't need a dummy stub when IPv6 is not enabled.
Fixes: 7bf4796dd099 ("nexthops: add support for replace")
Signed-off-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ip6_fib.h')
-rw-r--r-- | include/net/ip6_fib.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index c412dde4d67d..83b8070d1cc9 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -485,6 +485,7 @@ int fib6_nh_init(struct net *net, struct fib6_nh *fib6_nh, struct fib6_config *cfg, gfp_t gfp_flags, struct netlink_ext_ack *extack); void fib6_nh_release(struct fib6_nh *fib6_nh); +void fib6_nh_release_dsts(struct fib6_nh *fib6_nh); int call_fib6_entry_notifiers(struct net *net, enum fib_event_type event_type, |