Commit f2d9da1a8375cbe53df5b415d059429013a3a79f

Authored by Eric Dumazet
Committed by David S. Miller
1 parent a28205437b

bna: fix skb->truesize underestimation

skb->truesize is not meant to be tracking amount of used bytes
in an skb, but amount of reserved/consumed bytes in memory.

For instance, if we use a single byte in last page fragment,
we have to account the full size of the fragment.

skb->truesize can be very different from skb->len, that has
a very specific safety purpose.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Rasesh Mody <rasesh.mody@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff

drivers/net/ethernet/brocade/bna/bnad.c
... ... @@ -552,6 +552,7 @@
552 552  
553 553 len = (vec == nvecs) ?
554 554 last_fraglen : unmap->vector.len;
  555 + skb->truesize += unmap->vector.len;
555 556 totlen += len;
556 557  
557 558 skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags,
... ... @@ -563,7 +564,6 @@
563 564  
564 565 skb->len += totlen;
565 566 skb->data_len += totlen;
566   - skb->truesize += totlen;
567 567 }
568 568  
569 569 static inline void