diff options
Diffstat (limited to 'net/ipv6/ip6_tunnel.c')
-rw-r--r-- | net/ipv6/ip6_tunnel.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index a0902fbdb4e1..281aee42d3f0 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c | |||
@@ -883,8 +883,8 @@ static int ip6_tnl_xmit2(struct sk_buff *skb, | |||
883 | */ | 883 | */ |
884 | max_headroom += LL_RESERVED_SPACE(tdev); | 884 | max_headroom += LL_RESERVED_SPACE(tdev); |
885 | 885 | ||
886 | if (skb_headroom(skb) < max_headroom || | 886 | if (skb_headroom(skb) < max_headroom || skb_shared(skb) || |
887 | skb_cloned(skb) || skb_shared(skb)) { | 887 | (skb_cloned(skb) && !skb_clone_writable(skb, 0))) { |
888 | struct sk_buff *new_skb; | 888 | struct sk_buff *new_skb; |
889 | 889 | ||
890 | if (!(new_skb = skb_realloc_headroom(skb, max_headroom))) | 890 | if (!(new_skb = skb_realloc_headroom(skb, max_headroom))) |