Skip to content

[rlc-8/4.18.0-553.123.1.el8_10] Multiple patches tested (3 commits)#1226

Merged
PlaidCat merged 3 commits into
rlc-8/4.18.0-553.123.1.el8_10from
{jmaple}_rlc-8/4.18.0-553.123.1.el8_10
May 14, 2026
Merged

[rlc-8/4.18.0-553.123.1.el8_10] Multiple patches tested (3 commits)#1226
PlaidCat merged 3 commits into
rlc-8/4.18.0-553.123.1.el8_10from
{jmaple}_rlc-8/4.18.0-553.123.1.el8_10

Conversation

@ciq-kernel-automation
Copy link
Copy Markdown

@ciq-kernel-automation ciq-kernel-automation Bot commented May 14, 2026

Summary

This PR has been automatically created after successful completion of all CI stages.

Commit Message(s)

Revert "xfrm: esp: avoid in-place decrypt on shared skb frags"

This reverts commit f933b95972d31e9acb27f11d5d338e33e767e64f.
xfrm: esp: avoid in-place decrypt on shared skb frags

cve CVE-2026-43284
commit-author Kuan-Ting Chen <h3xrabbit@gmail.com>
commit f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4
upstream-diff |
	While this kernel lacks MSG_SPLICE_PAGES, it still has udp_sendpage().
	Upstream didn't patch udp_sendpage() because sendpage was removed
	entirely in favor of MSG_SPLICE_PAGES. In this kernel, splice() can
	still attach a page cache page to an IPv4 datagram via sendpage.
	Therefore, udp_sendpage() must be patched instead.
	IPv6 does not have MSG_SPLICE_PAGES but the __ip_addend_data()
        path is exercisable in ipv6/esp6.c so we're including that
        block.
	Due to missing 06b4feb37e64 ("net: group skb_shinfo zerocopy related bits together.")
	SKBFL_SHARED_FRAG was replaced with SKBTX_SHARED_FRAG.
	Also replaced flags with tx_flags.
net: skbuff: propagate shared-frag marker through frag-transfer helpers

cve CVE-2026-46300
commit-author Hyunwoo Kim <imv4bel@gmail.com>
commit -
commit-source https://lore.kernel.org/all/agW4vC0r8QOUKtRT@v4bel/
upstream-diff |
  The upstream v3 patch does not apply cleanly to 4.18 due to three
  differences:
  1. net/core/gro.c does not exist on 4.18. Both skb_gro_receive()
     and skb_gro_receive_list() are in net/core/skbuff.c.
  2. skb_shift() context differs — 4.18 uses manual skb->len/data_len
     adjustments, upstream uses skb_len_add().
  3. 4.18 uses the older tx_flags/SKBTX_SHARED_FRAG API instead of
     the newer flags/SKBFL_SHARED_FRAG API introduced in later kernels.
  The actual code changes are identical to upstream, adapted for the
  4.18 API.

fragnesia and fragnesia-gro both fail:

[-] [1/192] +0000 already=7f skip
[-] [2/192] +0001 already=45 skip
[-] [3/192] +0002 already=4c skip
[-] [4/192] +0003 already=46 skip
[-] [5/192] +0004 already=02 skip
[-] [6/192] +0005 already=01 skip
[-] [7/192] +0006 already=01 skip
[-] [8/192] +0007 already=00 skip
[-] [9/192] +0008 already=00 skip
[-] [10/192] +0009 already=00 skip
[-] [11/192] +000a already=00 skip
[-] [12/192] +000b already=00 skip
[-] [13/192] +000c already=00 skip
[-] [14/192] +000d already=00 skip
[-] [15/192] +000e already=00 skip
[-] [16/192] +000f already=00 skip
byte_flip_nonce=27 stream_byte=01
byte_flip_packet_iv=cccccccc0000001b
[*] [17/192] +0010  03 -> 02  xor=01 seq=2 nonce=27
 firing espintcp splice...
sender_ns_uid=0 euid=0 prefix_send=18 splice_to_tcp=4096 file_off=16 file_off_next=4112
receiver_ns_uid=0 euid=0 espintcp_enabled_after_queue=1
sender_status=0 receiver_status=0
[-] fixed behavior: byte unchanged at index=16 offset=16

: cannot set groups: Operation not permitted
[brett@fragnesia86 fragnesia]$ cd ../..
[brett@fragnesia86 ~]$ ./fragnesia-gro
[*] uid=1000 euid=1000 gid=1000 egid=1000
[*] mode=gro_espinudp_pagecache_replace

[*] target=/usr/bin/su size=50160
[*] stream_table=256 entries at ciphertext position 0
[*] replacing 192 bytes starting at offset 0
[-] byte 182/192  0x00 -> 0x00 (want 0x68) MISS
[*] pass 1: 0 ok, 80 still wrong, delay now 40ms, retrying
[-] byte 182/192  0x00 -> 0x00 (want 0x68) MISS
[*] pass 2: 0 ok, 80 still wrong, delay now 80ms, retrying
[-] byte 182/192  0x00 -> 0x00 (want 0x68) MISS
[*] pass 3: 0 ok, 80 still wrong, delay now 160ms, retrying
[-] byte 182/192  0x00 -> 0x00 (want 0x68) MISS
[!] 80 bytes stuck after 30s without progress


FIXED: 0/192 bytes changed
[brett@fragnesia86 ~]$ uname -a
Linux fragnesia86 4.18.0-jmaple_rlc-8_4.18.0-553.123.1.el8_10-536a44ac0564+ #1 SMP Thu May 14 16:03:47 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
[brett@fragnesia86 ~]$


Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 25m 4s 26m 4s
aarch64 10m 37s 11m 17s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 121 35 rlc-8/4.18.0-553.123.1.el8_10 ✅ No regressions
aarch64 72 32 rlc-8/4.18.0-553.123.1.el8_10 ✅ No regressions

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1409 83 rlc-8/4.18.0-553.123.1.el8_10 ✅ No regressions
aarch64 1380 84 rlc-8/4.18.0-553.123.1.el8_10 ✅ No regressions

x86_64 newly passing:

  • cap_bounds (PASS)
  • check_keepcaps01 (PASS)
  • check_keepcaps02 (PASS)
  • check_keepcaps03 (PASS)
  • dio26 (PASS)
  • dio27 (PASS)
  • dio28 (PASS)
  • dio29 (PASS)
  • dio30 (PASS)
  • filecaps (PASS)
  • fs_perms01 (PASS)
  • fs_perms02 (PASS)
  • fs_perms03 (PASS)
  • fs_perms04 (PASS)
  • fs_perms05 (PASS)
  • fs_perms06 (PASS)
  • fs_perms07 (PASS)
  • fs_perms08 (PASS)
  • fs_perms09 (PASS)
  • fs_perms10 (PASS)
  • fs_perms11 (PASS)
  • fs_perms12 (PASS)
  • fs_perms13 (PASS)
  • fs_perms14 (PASS)
  • fs_perms15 (PASS)
  • fs_perms16 (PASS)
  • fs_perms17 (PASS)
  • fs_perms18 (PASS)

🤖 This PR was automatically generated by GitHub Actions
Run ID: 25831211334

PlaidCat added 2 commits May 13, 2026 18:44
cve CVE-2026-43284
commit-author Kuan-Ting Chen <h3xrabbit@gmail.com>
commit f4c50a4
upstream-diff |
	While this kernel lacks MSG_SPLICE_PAGES, it still has udp_sendpage().
	Upstream didn't patch udp_sendpage() because sendpage was removed
	entirely in favor of MSG_SPLICE_PAGES. In this kernel, splice() can
	still attach a page cache page to an IPv4 datagram via sendpage.
	Therefore, udp_sendpage() must be patched instead.
	IPv6 does not have MSG_SPLICE_PAGES but the __ip_addend_data()
        path is exercisable in ipv6/esp6.c so we're including that
        block.
	Due to missing 06b4feb ("net: group skb_shinfo zerocopy related bits together.")
	SKBFL_SHARED_FRAG was replaced with SKBTX_SHARED_FRAG.
	Also replaced flags with tx_flags.

MSG_SPLICE_PAGES can attach pages from a pipe directly to an skb. TCP
marks such skbs with SKBFL_SHARED_FRAG after skb_splice_from_iter(),
so later paths that may modify packet data can first make a private
copy. The IPv4/IPv6 datagram append paths did not set this flag when
splicing pages into UDP skbs.

That leaves an ESP-in-UDP packet made from shared pipe pages looking
like an ordinary uncloned nonlinear skb. ESP input then takes the no-COW
fast path for uncloned skbs without a frag_list and decrypts in place
over data that is not owned privately by the skb.

Mark IPv4/IPv6 datagram splice frags with SKBFL_SHARED_FRAG, matching
TCP. Also make ESP input fall back to skb_cow_data() when the flag is
present, so ESP does not decrypt externally backed frags in place.
Private nonlinear skb frags still use the existing fast path.

This intentionally does not change ESP output. In esp_output_head(),
the path that appends the ESP trailer to existing skb tailroom without
calling skb_cow_data() is not reachable for nonlinear skbs:
skb_tailroom() returns zero when skb->data_len is nonzero, while ESP
tailen is positive. Thus ESP output will either use the separate
destination-frag path or fall back to skb_cow_data().

Fixes: cac2661 ("esp4: Avoid skb_cow_data whenever possible")
Fixes: 03e2a30 ("esp6: Avoid skb_cow_data whenever possible")
Fixes: 7da0dde ("ip, udp: Support MSG_SPLICE_PAGES")
Fixes: 6d8192b ("ip6, udp6: Support MSG_SPLICE_PAGES")
	Reported-by: Hyunwoo Kim <imv4bel@gmail.com>
	Reported-by: Kuan-Ting Chen <h3xrabbit@gmail.com>
	Tested-by: Hyunwoo Kim <imv4bel@gmail.com>
	Cc: stable@vger.kernel.org
	Signed-off-by: Kuan-Ting Chen <h3xrabbit@gmail.com>
	Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
(cherry picked from commit f4c50a4)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
	Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
@ciq-kernel-automation ciq-kernel-automation Bot added the created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI) label May 14, 2026
@github-actions
Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/25838069644

@github-actions
Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit 46e9ae933b3b (xfrm: esp: avoid in-place decrypt on shared skb frags) → upstream f4c50a4034e6
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1347,9 +1347,6 @@
 			goto error;
 		}
 
-		if (!(flags & MSG_NO_SHARED_FRAGS))
-			skb_shinfo(skb)->tx_flags |= SKBTX_SHARED_FRAG;
-
 		if (skb->ip_summed == CHECKSUM_NONE) {
 			__wsum csum;
 			csum = csum_page(page, offset, len);

################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1233,6 +1233,8 @@
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1230,6 +1230,6 @@
-			goto error;
-		}
-
-		if (skb->ip_summed == CHECKSUM_NONE) {
-			__wsum csum;
-			csum = csum_page(page, offset, len);
+			if (err < 0)
+				goto error;
+			copy = err;
+			wmem_alloc_delta += copy;
+		} else if (!zc) {
+			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    ONLY IN PATCH2 - files not modified by patch1                             *
================================================================================

--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1794,6 +1794,8 @@ alloc_new_skb:
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

This is an automated interdiff check for backported commits.

@github-actions
Copy link
Copy Markdown

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/25838069644

@github-actions
Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/25856923856

@github-actions
Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit 46e9ae933b3b (xfrm: esp: avoid in-place decrypt on shared skb frags) → upstream f4c50a4034e6
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1347,9 +1347,6 @@
 			goto error;
 		}
 
-		if (!(flags & MSG_NO_SHARED_FRAGS))
-			skb_shinfo(skb)->tx_flags |= SKBTX_SHARED_FRAG;
-
 		if (skb->ip_summed == CHECKSUM_NONE) {
 			__wsum csum;
 			csum = csum_page(page, offset, len);

################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1233,6 +1233,8 @@
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1230,6 +1230,6 @@
-			goto error;
-		}
-
-		if (skb->ip_summed == CHECKSUM_NONE) {
-			__wsum csum;
-			csum = csum_page(page, offset, len);
+			if (err < 0)
+				goto error;
+			copy = err;
+			wmem_alloc_delta += copy;
+		} else if (!zc) {
+			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    ONLY IN PATCH2 - files not modified by patch1                             *
================================================================================

--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1794,6 +1794,8 @@ alloc_new_skb:
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

This is an automated interdiff check for backported commits.

@github-actions
Copy link
Copy Markdown

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/25856923856

@shreeya-patel98 shreeya-patel98 force-pushed the {jmaple}_rlc-8/4.18.0-553.123.1.el8_10 branch from 500a566 to e227831 Compare May 14, 2026 11:37
@github-actions
Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/25858283888

@github-actions
Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit 46e9ae933b3b (xfrm: esp: avoid in-place decrypt on shared skb frags) → upstream f4c50a4034e6
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1347,9 +1347,6 @@
 			goto error;
 		}
 
-		if (!(flags & MSG_NO_SHARED_FRAGS))
-			skb_shinfo(skb)->tx_flags |= SKBTX_SHARED_FRAG;
-
 		if (skb->ip_summed == CHECKSUM_NONE) {
 			__wsum csum;
 			csum = csum_page(page, offset, len);

################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1233,6 +1233,8 @@
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1230,6 +1230,6 @@
-			goto error;
-		}
-
-		if (skb->ip_summed == CHECKSUM_NONE) {
-			__wsum csum;
-			csum = csum_page(page, offset, len);
+			if (err < 0)
+				goto error;
+			copy = err;
+			wmem_alloc_delta += copy;
+		} else if (!zc) {
+			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    ONLY IN PATCH2 - files not modified by patch1                             *
================================================================================

--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1794,6 +1794,8 @@ alloc_new_skb:
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

This is an automated interdiff check for backported commits.

@github-actions
Copy link
Copy Markdown

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/25858283888

cve CVE-2026-46300
commit-author Hyunwoo Kim <imv4bel@gmail.com>
commit -
commit-source https://lore.kernel.org/all/agW4vC0r8QOUKtRT@v4bel/
upstream-diff |
  The upstream v3 patch does not apply cleanly to 4.18 due to three
  differences:
  1. net/core/gro.c does not exist on 4.18. Both skb_gro_receive()
     and skb_gro_receive_list() are in net/core/skbuff.c.
  2. skb_shift() context differs — 4.18 uses manual skb->len/data_len
     adjustments, upstream uses skb_len_add().
  3. 4.18 uses the older tx_flags/SKBTX_SHARED_FRAG API instead of
     the newer flags/SKBFL_SHARED_FRAG API introduced in later kernels.
  The actual code changes are identical to upstream, adapted for the
  4.18 API.

Three frag-transfer helpers (__pskb_copy_fclone(), skb_try_coalesce(),
and skb_shift()) fail to propagate the SKBFL_SHARED_FRAG bit in
skb_shinfo()->flags when moving frags from source to destination.
__pskb_copy_fclone() defers the rest of the shinfo metadata to
skb_copy_header() after copying frag descriptors, but that helper
only carries over gso_{size,segs,type} and never touches
skb_shinfo()->flags; skb_try_coalesce() and skb_shift() move frag
descriptors directly and leave flags untouched.  As a result, the
destination skb keeps a reference to the same externally-owned or
page-cache-backed pages while reporting skb_has_shared_frag() as
false.

The mismatch is harmful in any in-place writer that uses
skb_has_shared_frag() to decide whether shared pages must be detoured
through skb_cow_data().  ESP input is one such writer (esp4.c,
esp6.c), and a single nft 'dup to <local>' rule -- or any other
nf_dup_ipv4() / xt_TEE caller -- is enough to land a pskb_copy()'d
skb in esp_input() with the marker stripped, letting an unprivileged
user write into the page cache of a root-owned read-only file via
authencesn-ESN stray writes.

Set SKBFL_SHARED_FRAG on the destination whenever frag descriptors
were actually moved from the source.  skb_copy() and skb_copy_expand()
share skb_copy_header() too but linearize all paged data into freshly
allocated head storage and emerge with nr_frags == 0, so
skb_has_shared_frag() returns false on its own; they need no change.

The same omission exists in skb_gro_receive() and skb_gro_receive_list().
The former moves the incoming skb's frag descriptors into the
accumulator's last sub-skb via two paths (a direct frag-move loop and
the head_frag + memcpy path); the latter chains the incoming skb whole
onto p's frag_list.  Downstream skb_segment() reads only
skb_shinfo(p)->flags, and skb_segment_list() reuses each sub-skb's
shinfo as the nskb -- both p and lp must carry the marker.

Fixes: cef401d ("net: fix possible wrong checksum generation")
Fixes: f4c50a4 ("xfrm: esp: avoid in-place decrypt on shared skb frags")
Reported-by: William Bowling <vakzz@zellic.io>
Reported-by: Hyunwoo Kim <imv4bel@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
@shreeya-patel98 shreeya-patel98 force-pushed the {jmaple}_rlc-8/4.18.0-553.123.1.el8_10 branch from e227831 to 536a44a Compare May 14, 2026 14:12
@github-actions
Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/25865424720

@github-actions
Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit 46e9ae933b3b (xfrm: esp: avoid in-place decrypt on shared skb frags) → upstream f4c50a4034e6
    Differences found:
================================================================================
*    DELTA DIFFERENCES - code changes that differ between the patches          *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1347,9 +1347,6 @@
 			goto error;
 		}
 
-		if (!(flags & MSG_NO_SHARED_FRAGS))
-			skb_shinfo(skb)->tx_flags |= SKBTX_SHARED_FRAG;
-
 		if (skb->ip_summed == CHECKSUM_NONE) {
 			__wsum csum;
 			csum = csum_page(page, offset, len);

################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1233,6 +1233,8 @@
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1230,6 +1230,6 @@
-			goto error;
-		}
-
-		if (skb->ip_summed == CHECKSUM_NONE) {
-			__wsum csum;
-			csum = csum_page(page, offset, len);
+			if (err < 0)
+				goto error;
+			copy = err;
+			wmem_alloc_delta += copy;
+		} else if (!zc) {
+			int i = skb_shinfo(skb)->nr_frags;

================================================================================
*    ONLY IN PATCH2 - files not modified by patch1                             *
================================================================================

--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1794,6 +1794,8 @@ alloc_new_skb:
 			if (err < 0)
 				goto error;
 			copy = err;
+			if (!(flags & MSG_NO_SHARED_FRAGS))
+				skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG;
 			wmem_alloc_delta += copy;
 		} else if (!zc) {
 			int i = skb_shinfo(skb)->nr_frags;

This is an automated interdiff check for backported commits.

@github-actions
Copy link
Copy Markdown

Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/25865424720

@bmastbergen bmastbergen requested review from a team May 14, 2026 16:26
Copy link
Copy Markdown
Collaborator

@PlaidCat PlaidCat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@bmastbergen bmastbergen requested a review from a team May 14, 2026 16:37
Copy link
Copy Markdown
Collaborator

@bmastbergen bmastbergen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥌

@PlaidCat PlaidCat merged commit 24d5f24 into rlc-8/4.18.0-553.123.1.el8_10 May 14, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI)

Development

Successfully merging this pull request may close these issues.

3 participants