Re: [BUG] netpoll is unable to handle skb's using packet split

From: Matt Mackall
Date: Tue Nov 15 2005 - 01:30:30 EST


On Mon, Nov 14, 2005 at 09:41:30PM -0800, David S. Miller wrote:
> From: "David S. Miller" <davem@xxxxxxxxxxxxx>
> Date: Mon, 14 Nov 2005 21:39:22 -0800 (PST)
>
> > From: Matt Mackall <mpm@xxxxxxxxxxx>
> > Date: Mon, 14 Nov 2005 21:23:58 -0800
> >
> > > What is "packet split" in this context?
> >
> > It's a mode of buffering used by the e1000 driver.
>
> BTW, the issue is that in packet split mode, the e1000 driver is
> feeding paged based non-linear SKBs into the stack on receive which is
> completely legal but aparently netpoll or something parsing netpoll RX
> packets does not handle it properly.

The bug is in netpoll. It's non-linear ignorant. We probably can't
call skb_linearize because it wants to kmalloc, but we probably can
follow the fragment. Or, worst case, we can manually linearize into an
SKB in our private pool.

Can we make any assumptions about the size and position of fragments.
For instance, will the first N data bytes of a UDP packet all be in
the same fragment?

--
Mathematics is the supreme nostalgia of our time.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/