ftmac100: fix skb truesize underestimation
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 <eric.dumazet@gmail.com> CC: Po-Yu Chuang <ratbert@faraday-tech.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e7e5a4033f
commit
96cd895168
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue