|
@@ -101,19 +101,19 @@ static struct ip_tunnel *ipip6_tunnel_lookup(struct net *net,
|
|
for_each_ip_tunnel_rcu(t, sitn->tunnels_r_l[h0 ^ h1]) {
|
|
for_each_ip_tunnel_rcu(t, sitn->tunnels_r_l[h0 ^ h1]) {
|
|
if (local == t->parms.iph.saddr &&
|
|
if (local == t->parms.iph.saddr &&
|
|
remote == t->parms.iph.daddr &&
|
|
remote == t->parms.iph.daddr &&
|
|
- (!dev || !t->parms.link || dev->iflink == t->parms.link) &&
|
|
|
|
|
|
+ (!dev || !t->parms.link || dev->ifindex == t->parms.link) &&
|
|
(t->dev->flags & IFF_UP))
|
|
(t->dev->flags & IFF_UP))
|
|
return t;
|
|
return t;
|
|
}
|
|
}
|
|
for_each_ip_tunnel_rcu(t, sitn->tunnels_r[h0]) {
|
|
for_each_ip_tunnel_rcu(t, sitn->tunnels_r[h0]) {
|
|
if (remote == t->parms.iph.daddr &&
|
|
if (remote == t->parms.iph.daddr &&
|
|
- (!dev || !t->parms.link || dev->iflink == t->parms.link) &&
|
|
|
|
|
|
+ (!dev || !t->parms.link || dev->ifindex == t->parms.link) &&
|
|
(t->dev->flags & IFF_UP))
|
|
(t->dev->flags & IFF_UP))
|
|
return t;
|
|
return t;
|
|
}
|
|
}
|
|
for_each_ip_tunnel_rcu(t, sitn->tunnels_l[h1]) {
|
|
for_each_ip_tunnel_rcu(t, sitn->tunnels_l[h1]) {
|
|
if (local == t->parms.iph.saddr &&
|
|
if (local == t->parms.iph.saddr &&
|
|
- (!dev || !t->parms.link || dev->iflink == t->parms.link) &&
|
|
|
|
|
|
+ (!dev || !t->parms.link || dev->ifindex == t->parms.link) &&
|
|
(t->dev->flags & IFF_UP))
|
|
(t->dev->flags & IFF_UP))
|
|
return t;
|
|
return t;
|
|
}
|
|
}
|