Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: net/core/rtnetlink.c net/core/skbuff.c Both conflicts were very simple overlapping changes. Signed-off-by: David S. Miller <davem@davemloft.net>
此提交包含在:
@@ -268,6 +268,7 @@ static struct ip_tunnel *ip_tunnel_find(struct ip_tunnel_net *itn,
|
||||
__be32 remote = parms->iph.daddr;
|
||||
__be32 local = parms->iph.saddr;
|
||||
__be32 key = parms->i_key;
|
||||
__be16 flags = parms->i_flags;
|
||||
int link = parms->link;
|
||||
struct ip_tunnel *t = NULL;
|
||||
struct hlist_head *head = ip_bucket(itn, parms);
|
||||
@@ -275,9 +276,9 @@ static struct ip_tunnel *ip_tunnel_find(struct ip_tunnel_net *itn,
|
||||
hlist_for_each_entry_rcu(t, head, hash_node) {
|
||||
if (local == t->parms.iph.saddr &&
|
||||
remote == t->parms.iph.daddr &&
|
||||
key == t->parms.i_key &&
|
||||
link == t->parms.link &&
|
||||
type == t->dev->type)
|
||||
type == t->dev->type &&
|
||||
ip_tunnel_key_match(&t->parms, flags, key))
|
||||
break;
|
||||
}
|
||||
return t;
|
||||
@@ -667,6 +668,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev,
|
||||
dev->needed_headroom = max_headroom;
|
||||
|
||||
if (skb_cow_head(skb, dev->needed_headroom)) {
|
||||
ip_rt_put(rt);
|
||||
dev->stats.tx_dropped++;
|
||||
kfree_skb(skb);
|
||||
return;
|
||||
@@ -746,10 +748,12 @@ int ip_tunnel_ioctl(struct net_device *dev, struct ip_tunnel_parm *p, int cmd)
|
||||
goto done;
|
||||
if (p->iph.ttl)
|
||||
p->iph.frag_off |= htons(IP_DF);
|
||||
if (!(p->i_flags&TUNNEL_KEY))
|
||||
p->i_key = 0;
|
||||
if (!(p->o_flags&TUNNEL_KEY))
|
||||
p->o_key = 0;
|
||||
if (!(p->i_flags & VTI_ISVTI)) {
|
||||
if (!(p->i_flags & TUNNEL_KEY))
|
||||
p->i_key = 0;
|
||||
if (!(p->o_flags & TUNNEL_KEY))
|
||||
p->o_key = 0;
|
||||
}
|
||||
|
||||
t = ip_tunnel_find(itn, p, itn->fb_tunnel_dev->type);
|
||||
|
||||
|
新增問題並參考
封鎖使用者