[PATCH net-next] ftmac100: fix skb truesize underestimation

Subsystems: networking drivers, the rest

STALE5428d

2 messages, 2 authors, 2011-10-14 · open the first message on its own page

[PATCH net-next] ftmac100: fix skb truesize underestimation

From: Eric Dumazet <hidden>
Date: 2011-10-13 21:20:12

ftmac100 allocates a page per skb fragment. We must account
PAGE_SIZE increments on skb->truesize, not the actual frag length.

If frame is under 64 bytes, page is freed, so increase truesize only for
bigger frames.

Signed-off-by: Eric Dumazet <redacted>
CC: Po-Yu Chuang <redacted>
---
 drivers/net/ethernet/faraday/ftmac100.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
index 9bd7746..a127cb2 100644
--- a/drivers/net/ethernet/faraday/ftmac100.c
+++ b/drivers/net/ethernet/faraday/ftmac100.c
@@ -439,7 +439,10 @@ static bool ftmac100_rx_packet(struct ftmac100 *priv, int *processed)
 	skb_fill_page_desc(skb, 0, page, 0, length);
 	skb->len += length;
 	skb->data_len += length;
-	skb->truesize += length;
+
+	/* page might be freed in __pskb_pull_tail() */
+	if (length > 64)
+		skb->truesize += PAGE_SIZE;
 	__pskb_pull_tail(skb, min(length, 64));
 
 	ftmac100_alloc_rx_page(priv, rxdes, GFP_ATOMIC);

Re: [PATCH net-next] ftmac100: fix skb truesize underestimation

From: David Miller <davem@davemloft.net>
Date: 2011-10-14 02:29:02

From: Eric Dumazet <redacted>
Date: Thu, 13 Oct 2011 23:20:08 +0200
ftmac100 allocates a page per skb fragment. We must account
PAGE_SIZE increments on skb->truesize, not the actual frag length.

If frame is under 64 bytes, page is freed, so increase truesize only for
bigger frames.

Signed-off-by: Eric Dumazet <redacted>
Applied.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help