+++ /dev/null
-From 45f15f6e1de0334918eec4de6eb28f68ac122778 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 31 Aug 2023 21:38:12 +0000
-Subject: gve: fix frag_list chaining
-
-From: Eric Dumazet <edumazet@google.com>
-
-[ Upstream commit 817c7cd2043a83a3d8147f40eea1505ac7300b62 ]
-
-gve_rx_append_frags() is able to build skbs chained with frag_list,
-like GRO engine.
-
-Problem is that shinfo->frag_list should only be used
-for the head of the chain.
-
-All other links should use skb->next pointer.
-
-Otherwise, built skbs are not valid and can cause crashes.
-
-Equivalent code in GRO (skb_gro_receive()) is:
-
- if (NAPI_GRO_CB(p)->last == p)
- skb_shinfo(p)->frag_list = skb;
- else
- NAPI_GRO_CB(p)->last->next = skb;
- NAPI_GRO_CB(p)->last = skb;
-
-Fixes: 9b8dd5e5ea48 ("gve: DQO: Add RX path")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: Bailey Forrest <bcf@google.com>
-Cc: Willem de Bruijn <willemb@google.com>
-Cc: Catherine Sullivan <csully@google.com>
-Reviewed-by: David Ahern <dsahern@kernel.org>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/google/gve/gve_rx_dqo.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/google/gve/gve_rx_dqo.c b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
-index 7b18b4fd9e548..fdfe4c6d230f4 100644
---- a/drivers/net/ethernet/google/gve/gve_rx_dqo.c
-+++ b/drivers/net/ethernet/google/gve/gve_rx_dqo.c
-@@ -492,7 +492,10 @@ static int gve_rx_append_frags(struct napi_struct *napi,
- if (!skb)
- return -1;
-
-- skb_shinfo(rx->skb_tail)->frag_list = skb;
-+ if (rx->ctx.skb_tail == rx->ctx.skb_head)
-+ skb_shinfo(rx->ctx.skb_head)->frag_list = skb;
-+ else
-+ rx->ctx.skb_tail->next = skb;
- rx->skb_tail = skb;
- num_frags = 0;
- }
---
-2.40.1
-
drm-i915-gvt-drop-unused-helper-intel_vgpu_reset_gtt.patch
ipv4-ignore-dst-hint-for-multipath-routes.patch
igb-disable-virtualization-features-on-82580.patch
-gve-fix-frag_list-chaining.patch
veth-fixing-transmit-return-status-for-dropped-packe.patch
net-ipv6-addrconf-avoid-integer-underflow-in-ipv6_cr.patch
net-phy-micrel-correct-bit-assignments-for-phy_devic.patch