diff -drupN a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c --- a/net/ipv6/ip6_gre.c 2018-08-06 17:23:04.000000000 +0300 +++ b/net/ipv6/ip6_gre.c 2022-06-12 05:28:14.000000000 +0300 @@ -562,6 +562,8 @@ static inline int ip6gre_xmit_ipv4(struc if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) fl6.flowi6_mark = skb->mark; + fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); + err = gre_handle_offloads(skb, !!(t->parms.o_flags & TUNNEL_CSUM)); if (err) return -1; @@ -621,6 +623,8 @@ static inline int ip6gre_xmit_ipv6(struc if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) fl6.flowi6_mark = skb->mark; + fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); + if (gre_handle_offloads(skb, !!(t->parms.o_flags & TUNNEL_CSUM))) return -1;