aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index a7a21a7ba790..6ff19f9eb9ee 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -221,8 +221,8 @@ static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
221 struct rt6_info *rt = (struct rt6_info *)dst; 221 struct rt6_info *rt = (struct rt6_info *)dst;
222 struct inet6_dev *idev = rt->rt6i_idev; 222 struct inet6_dev *idev = rt->rt6i_idev;
223 223
224 if (dev != loopback_dev && idev != NULL && idev->dev == dev) { 224 if (dev != init_net.loopback_dev && idev != NULL && idev->dev == dev) {
225 struct inet6_dev *loopback_idev = in6_dev_get(loopback_dev); 225 struct inet6_dev *loopback_idev = in6_dev_get(init_net.loopback_dev);
226 if (loopback_idev != NULL) { 226 if (loopback_idev != NULL) {
227 rt->rt6i_idev = loopback_idev; 227 rt->rt6i_idev = loopback_idev;
228 in6_dev_put(idev); 228 in6_dev_put(idev);
@@ -1185,12 +1185,12 @@ int ip6_route_add(struct fib6_config *cfg)
1185 if ((cfg->fc_flags & RTF_REJECT) || 1185 if ((cfg->fc_flags & RTF_REJECT) ||
1186 (dev && (dev->flags&IFF_LOOPBACK) && !(addr_type&IPV6_ADDR_LOOPBACK))) { 1186 (dev && (dev->flags&IFF_LOOPBACK) && !(addr_type&IPV6_ADDR_LOOPBACK))) {
1187 /* hold loopback dev/idev if we haven't done so. */ 1187 /* hold loopback dev/idev if we haven't done so. */
1188 if (dev != loopback_dev) { 1188 if (dev != init_net.loopback_dev) {
1189 if (dev) { 1189 if (dev) {
1190 dev_put(dev); 1190 dev_put(dev);
1191 in6_dev_put(idev); 1191 in6_dev_put(idev);
1192 } 1192 }
1193 dev = loopback_dev; 1193 dev = init_net.loopback_dev;
1194 dev_hold(dev); 1194 dev_hold(dev);
1195 idev = in6_dev_get(dev); 1195 idev = in6_dev_get(dev);
1196 if (!idev) { 1196 if (!idev) {
@@ -1894,13 +1894,13 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
1894 if (rt == NULL) 1894 if (rt == NULL)
1895 return ERR_PTR(-ENOMEM); 1895 return ERR_PTR(-ENOMEM);
1896 1896
1897 dev_hold(loopback_dev); 1897 dev_hold(init_net.loopback_dev);
1898 in6_dev_hold(idev); 1898 in6_dev_hold(idev);
1899 1899
1900 rt->u.dst.flags = DST_HOST; 1900 rt->u.dst.flags = DST_HOST;
1901 rt->u.dst.input = ip6_input; 1901 rt->u.dst.input = ip6_input;
1902 rt->u.dst.output = ip6_output; 1902 rt->u.dst.output = ip6_output;
1903 rt->rt6i_dev = loopback_dev; 1903 rt->rt6i_dev = init_net.loopback_dev;
1904 rt->rt6i_idev = idev; 1904 rt->rt6i_idev = idev;
1905 rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); 1905 rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev);
1906 rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst)); 1906 rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst));