diff options
author | Sean Paul <seanpaul@chromium.org> | 2018-04-16 10:47:13 -0400 |
---|---|---|
committer | Sean Paul <seanpaul@chromium.org> | 2018-04-16 10:47:13 -0400 |
commit | 8089f9f5a32938ddefb1767b8ee14bb7996e5e2f (patch) | |
tree | c6c8924fda51c7f54bebffa63a41ae15954995bf /net/ipv6/ip6_gre.c | |
parent | c0db1b677e1d584fab5d7ac76a32e1c0157542e0 (diff) | |
parent | a10beabba213924d876f2d10ca9351aeab93f58a (diff) | |
download | linux-8089f9f5a32938ddefb1767b8ee14bb7996e5e2f.tar.gz |
Merge airlied/drm-next into drm-misc-fixes
Fast forwarding -fixes for 4.17.
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Diffstat (limited to 'net/ipv6/ip6_gre.c')
-rw-r--r-- | net/ipv6/ip6_gre.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c index 3c353125546d..1bbd0930063e 100644 --- a/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c @@ -126,7 +126,8 @@ static struct ip6_tnl *ip6gre_tunnel_lookup(struct net_device *dev, struct ip6_tnl *t, *cand = NULL; struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); int dev_type = (gre_proto == htons(ETH_P_TEB) || - gre_proto == htons(ETH_P_ERSPAN)) ? + gre_proto == htons(ETH_P_ERSPAN) || + gre_proto == htons(ETH_P_ERSPAN2)) ? ARPHRD_ETHER : ARPHRD_IP6GRE; int score, cand_score = 4; @@ -902,6 +903,9 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb, truncate = true; } + if (skb_cow_head(skb, dev->needed_headroom)) + goto tx_err; + t->parms.o_flags &= ~TUNNEL_KEY; IPCB(skb)->flags = 0; @@ -944,6 +948,8 @@ static netdev_tx_t ip6erspan_tunnel_xmit(struct sk_buff *skb, md->u.md2.dir, get_hwid(&md->u.md2), truncate, false); + } else { + goto tx_err; } } else { switch (skb->protocol) { |