bnx2x: fix skb truesize underestimation
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 19 Oct 2011 23:00:23 +0000 (23:00 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Oct 2011 06:52:59 +0000 (02:52 -0400)
bnx2x allocates a full page per fragment.

We must account in skb->truesize, the size of the fragment, not the used
part of it.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c

index dd8ee56396b2f06687382f0ed7da146ebbbadc46..580b44edb066eafe779b8d55953a5d70cf8546f8 100644 (file)
@@ -454,7 +454,7 @@ static int bnx2x_fill_frag_skb(struct bnx2x *bp, struct bnx2x_fastpath *fp,
                skb_fill_page_desc(skb, j, old_rx_pg.page, 0, frag_len);
 
                skb->data_len += frag_len;
-               skb->truesize += frag_len;
+               skb->truesize += SGE_PAGE_SIZE * PAGES_PER_SGE;
                skb->len += frag_len;
 
                frag_size -= frag_len;