Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96cd8951 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

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: default avatarEric Dumazet <eric.dumazet@gmail.com>
CC: Po-Yu Chuang <ratbert@faraday-tech.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e7e5a403
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);