> I must admit I more than a bit lost in the many turns of skb_segment(), > but the above does not look like the correct solution, as it will make > the later BUG_ON() unreachable/meaningless. Sorry, the subsequent BUG_ON maybe should be removed in this patch, because for skb_headlen(list_skb) > len, it will continue splitting as commit 13acc94eff122 (net: permit skb_segment on head_frag frag_list skb) does. > > Do I read correctly that when the BUG_ON() triggers: > > list_skb->len is 125 > len is 75 > list_skb->frag_head is true > yes, it's correct. list_skb->len is 125 gso_size is 75, also the len in the BUG_ON conditon list_skb->head_frag is true > It looks like skb_segment() is becoming even and ever more complex to > cope with unexpected skb layouts, only possibly when skb_segment() is > called by some BPF helpers. > > Thanks, > > Paolo I'll wait for more suggestions from others. Thanks Fred Li