--- zzzz-none-000/linux-5.15.111/net/ipv6/ip6_gre.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-atom-6670-761/linux-5.15.111/net/ipv6/ip6_gre.c 2024-02-07 10:23:30.000000000 +0000 @@ -5,6 +5,10 @@ * Authors: Dmitry Kozlov (xeb@mail.ru) */ +/* + * Includes Intel Corporation's changes/modifications dated: 2019. + * Changed/modified portions - Copyright (c) 2019, Intel Corporation. + */ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include @@ -763,6 +767,10 @@ if (skb_cow_head(skb, dev->needed_headroom ?: tun_hlen + tunnel->encap_hlen)) return -ENOMEM; + /* Check if headroom is enough */ + if (skb_cow_head(skb, dev->hard_header_len ?: tun_hlen + tunnel->encap_hlen)) + return -ENOMEM; + gre_build_header(skb, tun_hlen, flags, protocol, tunnel_id_to_key32(tun_info->key.tun_id), @@ -773,6 +781,10 @@ if (skb_cow_head(skb, dev->needed_headroom ?: tunnel->hlen)) return -ENOMEM; + /* Check if headroom is enough */ + if (skb_cow_head(skb, dev->hard_header_len ?: tunnel->hlen)) + return -ENOMEM; + flags = tunnel->parms.o_flags; gre_build_header(skb, tunnel->tun_hlen, flags,