On Fri, 14 Apr 2006, David S. Miller wrote:
> From: Jesse Brandeburg <[EMAIL PROTECTED]> > Date: Fri, 14 Apr 2006 15:13:31 -0700 (Pacific Daylight Time) > > > in the old driver we indicate a packet with truesize = 128, which has 1000 > > bytes of data in it. normally (for everyone using only an skb) skb->len, > > and skb->truesize are updated by skb_put(); In this case we don't have a > > kernel support function for adding length to skb->len *and* to > > skb->truesize when chaining on something to ->frags[] > > Where does skb_put() update truesize? my mistake, it does not. but truesize in the "normal" case is already set to the full length of the allocated skb (which would hold the whole frame). In the packet split case the received skb looks dramatically different, and since we're one of the only drivers using this mechanism. I could easily be incorrect here, but my interpretation based on the stack's use of ->truesize in do_tcp_sendpages is what I based our code change on. Please help me understand how you think it should work when we have a device that wants to receive a packet using header in the skb->data, and application data in the ->frags[]? Jesse - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html