diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 48fd53b98972..00840249554a 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -1224,7 +1224,9 @@ int ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev, __u8 dsfield, (skb_cloned(skb) && !skb_clone_writable(skb, 0))) { struct sk_buff *new_skb; - new_skb = skb_realloc_headroom(skb, max_headroom); + new_skb = skb_copy_expand(skb, max_headroom, + skb_tailroom(skb), + GFP_ATOMIC); if (!new_skb) goto tx_err_dst_release;