> -----Original Message----- > From: Sowmini Varadhan [mailto:[email protected]] > Sent: 19 January 2017 11:14 > To: Paul Durrant <[email protected]> > Cc: Konrad Rzeszutek Wilk <[email protected]>; Wei Liu > <[email protected]>; [email protected]; xen- > [email protected] > Subject: Re: [Xen-devel] xennet_start_xmit assumptions > > On (01/19/17 09:36), Paul Durrant wrote: > > > > Hi Sowmini, > > > > Sounds like a straightforward bug to me... netfront should be able > > to handle an empty skb and clearly, if it's relying on skb_headlen() > > being non-zero, that's not the case. > > > > Paul > > I see. Seems like there are 2 things broken here: recovering > from skb->len = 0, and recovering from the more complex > case of (skb->len > 0 && skb_headlen(skb) == 0) > > Do you folks want to take a shot at fixing this, > since you know the code better? If you are interested, > I can share my test program to help you reproduce the > simpler skb->len == 0 case, but it's the fully non-linear > skbs that may be more interesting to reproduce/fix.
Sowmini, Yeah, it would be useful to verify any change fixes the particular issue you're seeing so please share the program. For the non-empty non-linear case I'd hope that catching this and doing a pull of some sensible amount of header (which might coincide with the least amount that netback expects to see in the first frag) would be enough. I can take a shot at a patch for this in the next few days; I'll add your 'Reported-by' so you should get cc-ed. Cheers, Paul > > I'll probably work on fixing packet_snd to return -EINVAL > or similar when the len is zero this week. > > --Sowmini
