Signed-off-by: Jonas Bonn <jo...@norrbonn.se>
---
 drivers/net/gtp.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 4a3a52970856..df2f227680eb 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -532,7 +532,11 @@ static int gtp_xmit_ip4(struct sk_buff *skb, struct 
net_device *dev)
        if (unlikely(r))
                goto err_rt;
 
-       skb_reset_inner_headers(skb);
+       r = udp_tunnel_handle_offloads(skb, true);
+       if (unlikely(r))
+               goto err_rt;
+
+       skb_set_inner_protocol(skb, skb->protocol);
 
        gtp_push_header(skb, pctx, &port);
 
@@ -614,6 +618,8 @@ static void gtp_link_setup(struct net_device *dev)
 
        dev->priv_flags |= IFF_NO_QUEUE;
        dev->features   |= NETIF_F_LLTX;
+       dev->hw_features |= NETIF_F_SG | NETIF_F_GSO_SOFTWARE | NETIF_F_HW_CSUM;
+       dev->features   |= NETIF_F_SG | NETIF_F_GSO_SOFTWARE | NETIF_F_HW_CSUM;
        netif_keep_dst(dev);
 
        dev->needed_headroom    = LL_MAX_HEADER + max_gtp_header_len;
-- 
2.27.0

Reply via email to