gve: Fix skb truesize underestimation
[ Upstream commit 534326711000c318fe1523c77308450522baa499 ] 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: 82fd151d38d9 ("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
baa3f8b281
commit
f08daa806b
@ -362,7 +362,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;
|
||||
@ -395,10 +395,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;
|
||||
}
|
||||
@ -492,7 +492,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…
x
Reference in New Issue
Block a user