diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 466999a7515e6..adc32437eff4b 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -4706,7 +4706,7 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb, hsize = skb_headlen(head_skb) - offset; - if (hsize <= 0 && i >= nfrags && skb_headlen(list_skb) && + if (hsize <= 0 && i >= nfrags && !list_skb->head_frag && skb_headlen(list_skb) && (skb_headlen(list_skb) == len || sg)) { BUG_ON(skb_headlen(list_skb) > len);