mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
gve: Fix skb truesize underestimation
For a skb frag with a newly allocated copy page, the true size is
incorrectly set to packet buffer size. It should be set to PAGE_SIZE
instead.
Fixes: 82fd151d38 ("gve: Reduce alloc and copy costs in the GQ rx path")
Signed-off-by: Praveen Kaligineedi <pkaligineedi@google.com>
Link: https://lore.kernel.org/r/20240124161025.1819836-1-pkaligineedi@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
fc836129f7
commit
5343267110
|
|
@ -356,7 +356,7 @@ static enum pkt_hash_types gve_rss_type(__be16 pkt_flags)
|
|||
|
||||
static struct sk_buff *gve_rx_add_frags(struct napi_struct *napi,
|
||||
struct gve_rx_slot_page_info *page_info,
|
||||
u16 packet_buffer_size, u16 len,
|
||||
unsigned int truesize, u16 len,
|
||||
struct gve_rx_ctx *ctx)
|
||||
{
|
||||
u32 offset = page_info->page_offset + page_info->pad;
|
||||
|
|
@ -389,10 +389,10 @@ static struct sk_buff *gve_rx_add_frags(struct napi_struct *napi,
|
|||
if (skb != ctx->skb_head) {
|
||||
ctx->skb_head->len += len;
|
||||
ctx->skb_head->data_len += len;
|
||||
ctx->skb_head->truesize += packet_buffer_size;
|
||||
ctx->skb_head->truesize += truesize;
|
||||
}
|
||||
skb_add_rx_frag(skb, num_frags, page_info->page,
|
||||
offset, len, packet_buffer_size);
|
||||
offset, len, truesize);
|
||||
|
||||
return ctx->skb_head;
|
||||
}
|
||||
|
|
@ -486,7 +486,7 @@ static struct sk_buff *gve_rx_copy_to_pool(struct gve_rx_ring *rx,
|
|||
|
||||
memcpy(alloc_page_info.page_address, src, page_info->pad + len);
|
||||
skb = gve_rx_add_frags(napi, &alloc_page_info,
|
||||
rx->packet_buffer_size,
|
||||
PAGE_SIZE,
|
||||
len, ctx);
|
||||
|
||||
u64_stats_update_begin(&rx->statss);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user