|
@@ -280,13 +280,17 @@ static struct hlist_head *ip_bucket(struct ip_tunnel_net *itn,
|
|
{
|
|
{
|
|
unsigned int h;
|
|
unsigned int h;
|
|
__be32 remote;
|
|
__be32 remote;
|
|
|
|
+ __be32 i_key = parms->i_key;
|
|
|
|
|
|
if (parms->iph.daddr && !ipv4_is_multicast(parms->iph.daddr))
|
|
if (parms->iph.daddr && !ipv4_is_multicast(parms->iph.daddr))
|
|
remote = parms->iph.daddr;
|
|
remote = parms->iph.daddr;
|
|
else
|
|
else
|
|
remote = 0;
|
|
remote = 0;
|
|
|
|
|
|
- h = ip_tunnel_hash(parms->i_key, remote);
|
|
|
|
|
|
+ if (!(parms->i_flags & TUNNEL_KEY) && (parms->i_flags & VTI_ISVTI))
|
|
|
|
+ i_key = 0;
|
|
|
|
+
|
|
|
|
+ h = ip_tunnel_hash(i_key, remote);
|
|
return &itn->tunnels[h];
|
|
return &itn->tunnels[h];
|
|
}
|
|
}
|
|
|
|
|