[6/6] [VIRTIO] net: Allow receiving SG packets
David Miller
davem at davemloft.net
Mon Apr 21 13:04:18 PDT 2008
From: Rusty Russell <rusty at rustcorp.com.au>
Date: Tue, 22 Apr 2008 05:06:16 +1000
> I'm not sure what the right number is here. Say worst case is header which
> goes over a page boundary then MAX_SKB_FRAGS in the skb, but for some reason
> that already has a +2:
>
> /* To allow 64K frame to be packed as single skb without frag_list */
> #define MAX_SKB_FRAGS (65536/PAGE_SIZE + 2)
>
> Unless someone explains, I'll change the xmit sg to 2+MAX_SKB_FRAGS as well.
MAX_SKB_FRAGS + 1 is what you ought to need.
MAX_SKB_FRAGS is only accounting for the skb frag pages.
If you want to know how many segments skb->data might
consume as well, you have to add one.
skb->data is linear, therefore it's not possible to need
more than one scatterlist entry for it.
More information about the Virtualization
mailing list