diff options
author | Jakub Kicinski <kuba@kernel.org> | 2021-11-26 13:26:29 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-11-26 13:45:19 -0800 |
commit | 93d5404e8988882bd33f6acc0d343c4db51eb8b4 (patch) | |
tree | dd08a576dab4d61fda56dd005c7b2d0001a04297 /net/ipv6/route.c | |
parent | af22d0550705dcb4142362b232f972bfab486b89 (diff) | |
parent | c5c17547b778975b3d83a73c8d84e8fb5ecf3ba5 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
drivers/net/ipa/ipa_main.c
8afc7e471ad3 ("net: ipa: separate disabling setup from modem stop")
76b5fbcd6b47 ("net: ipa: kill ipa_modem_init()")
Duplicated include, drop one.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r-- | net/ipv6/route.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index ecc6df6592a8..62f1e16eea2b 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3678,6 +3678,25 @@ void fib6_nh_release(struct fib6_nh *fib6_nh) fib_nh_common_release(&fib6_nh->nh_common); } +void fib6_nh_release_dsts(struct fib6_nh *fib6_nh) +{ + int cpu; + + if (!fib6_nh->rt6i_pcpu) + return; + + for_each_possible_cpu(cpu) { + struct rt6_info *pcpu_rt, **ppcpu_rt; + + ppcpu_rt = per_cpu_ptr(fib6_nh->rt6i_pcpu, cpu); + pcpu_rt = xchg(ppcpu_rt, NULL); + if (pcpu_rt) { + dst_dev_put(&pcpu_rt->dst); + dst_release(&pcpu_rt->dst); + } + } +} + static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg, gfp_t gfp_flags, struct netlink_ext_ack *extack) |