|
@@ -1402,8 +1402,8 @@ static void ipv4_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
|
|
|
{
|
|
|
struct rtable *rt = (struct rtable *) dst;
|
|
|
struct in_device *idev = rt->idev;
|
|
|
- if (dev != &loopback_dev && idev && idev->dev == dev) {
|
|
|
- struct in_device *loopback_idev = in_dev_get(&loopback_dev);
|
|
|
+ if (dev != loopback_dev && idev && idev->dev == dev) {
|
|
|
+ struct in_device *loopback_idev = in_dev_get(loopback_dev);
|
|
|
if (loopback_idev) {
|
|
|
rt->idev = loopback_idev;
|
|
|
in_dev_put(idev);
|
|
@@ -1555,7 +1555,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
|
|
#endif
|
|
|
rth->rt_iif =
|
|
|
rth->fl.iif = dev->ifindex;
|
|
|
- rth->u.dst.dev = &loopback_dev;
|
|
|
+ rth->u.dst.dev = loopback_dev;
|
|
|
dev_hold(rth->u.dst.dev);
|
|
|
rth->idev = in_dev_get(rth->u.dst.dev);
|
|
|
rth->fl.oif = 0;
|
|
@@ -1812,7 +1812,7 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
|
|
if (res.type == RTN_LOCAL) {
|
|
|
int result;
|
|
|
result = fib_validate_source(saddr, daddr, tos,
|
|
|
- loopback_dev.ifindex,
|
|
|
+ loopback_dev->ifindex,
|
|
|
dev, &spec_dst, &itag);
|
|
|
if (result < 0)
|
|
|
goto martian_source;
|
|
@@ -1879,7 +1879,7 @@ local_input:
|
|
|
#endif
|
|
|
rth->rt_iif =
|
|
|
rth->fl.iif = dev->ifindex;
|
|
|
- rth->u.dst.dev = &loopback_dev;
|
|
|
+ rth->u.dst.dev = loopback_dev;
|
|
|
dev_hold(rth->u.dst.dev);
|
|
|
rth->idev = in_dev_get(rth->u.dst.dev);
|
|
|
rth->rt_gateway = daddr;
|
|
@@ -2149,7 +2149,7 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp)
|
|
|
RT_SCOPE_UNIVERSE),
|
|
|
} },
|
|
|
.mark = oldflp->mark,
|
|
|
- .iif = loopback_dev.ifindex,
|
|
|
+ .iif = loopback_dev->ifindex,
|
|
|
.oif = oldflp->oif };
|
|
|
struct fib_result res;
|
|
|
unsigned flags = 0;
|
|
@@ -2243,9 +2243,9 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp)
|
|
|
fl.fl4_dst = fl.fl4_src = htonl(INADDR_LOOPBACK);
|
|
|
if (dev_out)
|
|
|
dev_put(dev_out);
|
|
|
- dev_out = &loopback_dev;
|
|
|
+ dev_out = loopback_dev;
|
|
|
dev_hold(dev_out);
|
|
|
- fl.oif = loopback_dev.ifindex;
|
|
|
+ fl.oif = loopback_dev->ifindex;
|
|
|
res.type = RTN_LOCAL;
|
|
|
flags |= RTCF_LOCAL;
|
|
|
goto make_route;
|
|
@@ -2290,7 +2290,7 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp)
|
|
|
fl.fl4_src = fl.fl4_dst;
|
|
|
if (dev_out)
|
|
|
dev_put(dev_out);
|
|
|
- dev_out = &loopback_dev;
|
|
|
+ dev_out = loopback_dev;
|
|
|
dev_hold(dev_out);
|
|
|
fl.oif = dev_out->ifindex;
|
|
|
if (res.fi)
|