diff --git linux-libre-6.1.170-gnu/Makefile linux-libre-6.1.171-gnu/Makefile
index a72af4ff41a2..0dae30f50c66 100644
--- linux-libre-6.1.170-gnu/Makefile
+++ linux-libre-6.1.171-gnu/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 170
+SUBLEVEL = 171
 EXTRAVERSION = -gnu
 NAME = Curry Ramen
 
diff --git linux-libre-6.1.170-gnu/net/ipv4/esp4.c linux-libre-6.1.171-gnu/net/ipv4/esp4.c
index 95575bf78d5c..5d59b5923e6b 100644
--- linux-libre-6.1.170-gnu/net/ipv4/esp4.c
+++ linux-libre-6.1.171-gnu/net/ipv4/esp4.c
@@ -873,7 +873,8 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
 			nfrags = 1;
 
 			goto skip_cow;
-		} else if (!skb_has_frag_list(skb)) {
+		} else if (!skb_has_frag_list(skb) &&
+			   !skb_has_shared_frag(skb)) {
 			nfrags = skb_shinfo(skb)->nr_frags;
 			nfrags++;
 
diff --git linux-libre-6.1.170-gnu/net/ipv4/ip_output.c linux-libre-6.1.171-gnu/net/ipv4/ip_output.c
index 79cf1385e8d2..ec8279278dea 100644
--- linux-libre-6.1.170-gnu/net/ipv4/ip_output.c
+++ linux-libre-6.1.171-gnu/net/ipv4/ip_output.c
@@ -1463,6 +1463,8 @@ ssize_t	ip_append_page(struct sock *sk, struct flowi4 *fl4, struct page *page,
 			goto error;
 		}
 
+		skb_shinfo(skb)->tx_flags |= SKBFL_SHARED_FRAG;
+
 		if (skb->ip_summed == CHECKSUM_NONE) {
 			__wsum csum;
 			csum = csum_page(page, offset, len);
diff --git linux-libre-6.1.170-gnu/net/ipv6/esp6.c linux-libre-6.1.171-gnu/net/ipv6/esp6.c
index 76699ec88370..51de2d4f7a2f 100644
--- linux-libre-6.1.170-gnu/net/ipv6/esp6.c
+++ linux-libre-6.1.171-gnu/net/ipv6/esp6.c
@@ -921,7 +921,8 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
 			nfrags = 1;
 
 			goto skip_cow;
-		} else if (!skb_has_frag_list(skb)) {
+		} else if (!skb_has_frag_list(skb) &&
+			   !skb_has_shared_frag(skb)) {
 			nfrags = skb_shinfo(skb)->nr_frags;
 			nfrags++;
 
