cc netdev for more experts
On 07/28/2015 04:53 PM, Zhangjie (HZ) wrote:
Hi,
I generate a skb as follows:
It has a linear data region, 17 frags and the last fragment is in
skb_shinfo(skb)->frag_list.
Before this skb is sent to driver, dev_hard_start_xmit() will segment
it first(skb has frag_list,
so we get true from netif_needs_gso()), then the skb is passed to
function skb_segment().
Then, BUG_ON() happened.
while (pos < offset + len) {
if (i >= nfrags) {
BUG_ON(skb_headlen(list_skb)); (skbuff.c:3120)
…
}
…
}
A skb that has no frags but frag_list also causes BUG_ON().
I wonder if skb like follows is legal? Could skb in frag_list have
linear data region?
Thanks
Zhangjie