diff options
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r-- | net/ipv6/route.c | 12 |
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)); |