diff --git a/net/core/skbuff.c b/net/core/skbuff.c index c5e6c0b83a92..c9a5a3c262c8 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -5441,7 +5441,8 @@ struct sk_buff *skb_vlan_untag(struct sk_buff *skb) goto err_free; skb_reset_network_header(skb); - skb_reset_transport_header(skb); + if (!skb_transport_header_was_set(skb)) + skb_reset_transport_header(skb); skb_reset_mac_len(skb); return skb;