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

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

gro: fix truesize underestimation



skb_gro_receive() doesnt update truesize properly when adding one skb to
frag_list.

Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c5665a53
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -2906,7 +2906,7 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb)
	nskb->prev = p;
	nskb->prev = p;


	nskb->data_len += p->len;
	nskb->data_len += p->len;
	nskb->truesize += p->len;
	nskb->truesize += p->truesize;
	nskb->len += p->len;
	nskb->len += p->len;


	*head = nskb;
	*head = nskb;
@@ -2916,6 +2916,7 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb)
	p = nskb;
	p = nskb;


merge:
merge:
	p->truesize += skb->truesize - len;
	if (offset > headlen) {
	if (offset > headlen) {
		unsigned int eat = offset - headlen;
		unsigned int eat = offset - headlen;