aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/addrconf.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r--net/ipv6/addrconf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index ced58e1d91b6..fab23db8ee73 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -699,7 +699,7 @@ void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp)
699 pr_warn("Freeing alive inet6 address %p\n", ifp); 699 pr_warn("Freeing alive inet6 address %p\n", ifp);
700 return; 700 return;
701 } 701 }
702 dst_release(&ifp->rt->dst); 702 ip6_rt_put(ifp->rt);
703 703
704 kfree_rcu(ifp, rcu); 704 kfree_rcu(ifp, rcu);
705} 705}
@@ -951,7 +951,7 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp)
951 rt6_set_expires(rt, expires); 951 rt6_set_expires(rt, expires);
952 } 952 }
953 } 953 }
954 dst_release(&rt->dst); 954 ip6_rt_put(rt);
955 } 955 }
956 956
957 /* clean up prefsrc entries */ 957 /* clean up prefsrc entries */
@@ -2027,8 +2027,7 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao)
2027 addrconf_prefix_route(&pinfo->prefix, pinfo->prefix_len, 2027 addrconf_prefix_route(&pinfo->prefix, pinfo->prefix_len,
2028 dev, expires, flags); 2028 dev, expires, flags);
2029 } 2029 }
2030 if (rt) 2030 ip6_rt_put(rt);
2031 dst_release(&rt->dst);
2032 } 2031 }
2033 2032
2034 /* Try to figure out our local address for this prefix */ 2033 /* Try to figure out our local address for this prefix */