Skip to content

[RLC-8] Rebase Custom Changes to rlc-8/4.18.0-553.176.1.el8_10 - #1723

Merged
PlaidCat merged 83 commits into
rlc-8/4.18.0-553.176.1.el8_10from
jmaple_rlc-8/4.18.0-553.176.1.el8_10
Oct 21, 2026
Merged

PlaidCat merged 83 commits into
rlc-8/4.18.0-553.176.1.el8_10from
jmaple_rlc-8/4.18.0-553.176.1.el8_10

Conversation

@PlaidCat

Copy link
Copy Markdown
Collaborator

https://ciqinc.atlassian.net/browse/KERNEL-1774

Update process (This kernel CentOS base for 4.18.0-553.176.1.el8_10)

  • Rolling Release Rebase Process
  • Create rlc-8/4.18.0-553.176.1.el8_10 branch from rocky8_10
  • Cherry-pick all code from previous branch rlc-8/4.18.0-553.174.1.el8_10 into new branch (skipping unneeded code)
    • Fix conflicts as they arise
  • Build and Test

Rebase Log

Already on 'rlc-8/4.18.0-553.174.1.el8_10'
Already on 'jmaple_rlc-8/4.18.0-553.176.1.el8_10'
[rolling release update] Rolling Product:  rlc-8
[rolling release update] Checking out branch:  rlc-8/4.18.0-553.174.1.el8_10
[rolling release update] Gathering all the RESF kernel Tags
[rolling release update] Found 91 RESF kernel tags
[rolling release update] Checking out branch:  rocky8_10
[rolling release update] Gathering all the RESF kernel Tags
[rolling release update] Found 92 RESF kernel tags
[rolling release update] Common tag sha:  b'04daf8b5698e'
"04daf8b5698e46e7b234ed2ed59ebb5cde3c512e Rebuild rocky8_10 with kernel-4.18.0-553.174.1.el8_10"
[rolling release update] Checking for FIPS protected changes between the common tag and HEAD
[rolling release update] Checking for FIPS protected changes
[rolling release update] Getting SHAS 04daf8b5698e..HEAD
[rolling release update] Number of commits to check:  80
[rolling release update] Checking modifications of shas
[rolling release update] Checked 8 of 80 commits
[rolling release update] Checked 16 of 80 commits
[rolling release update] Checked 24 of 80 commits
[rolling release update] Checked 32 of 80 commits
[rolling release update] Checked 40 of 80 commits
[rolling release update] Checked 48 of 80 commits
[rolling release update] Checked 56 of 80 commits
[rolling release update] Checked 64 of 80 commits
[rolling release update] Checked 72 of 80 commits
[rolling release update] Checked 80 of 80 commits
[rolling release update] 0 of 80 commits have FIPS protected changes
[rolling release update] Checking out old rolling branch:  rlc-8/4.18.0-553.174.1.el8_10
[rolling release update] Finding the CIQ Kernel and Associated Upstream commits between the last resf tag and HEAD
[rolling release update] Getting SHAS 04daf8b5698e..HEAD
[rolling release update] Last RESF tag sha:  b'04daf8b5698e'
[rolling release update] Total commits in old branch: 83
[rolling release update] Checking out new base branch:  rocky8_10
[rolling release update] Finding the kernel version for the new rolling release
[rolling release update] New Branch to create: rlc-8/4.18.0-553.176.1.el8_10
[rolling release update] Creating new branch: rlc-8/4.18.0-553.176.1.el8_10
[rolling release update] Creating new branch for PR:  jmaple_rlc-8/4.18.0-553.176.1.el8_10
[rolling release update] Creating Map of all new commits from last rolling release fork
[rolling release update] Total commits in new branch: 79
[rolling release update] Checking if any of the commits from the old rolling release are already present in the new base branch
[rolling release update] Found 0 duplicate commits to remove
[rolling release update] Applying 83 remaining commits to the new branch
  [1/83] 814c9fda41a7 crypto: jitter - replace LFSR with SHA3-256
  [2/83] ca64f44139ca crypto: aead,cipher - zeroize key buffer after use
  [3/83] b4bbba71aca4 SUSE: patch: crypto-dh-implement-FIPS-PCT.patch
  [4/83] a4a4ec5684ec SUSE: patch: crypto-ecdh-implement-FIPS-PCT.patch
  [5/83] 76e1b204929e     crypto: jitter - add oversampling of noise source
  [6/83] b02160f924d5 crypto: ecdh - explicitly zeroize private_key
  [7/83] fe23df221264 KEYS: use kfree_sensitive with key
  [8/83] ed28168af18c In essiv_aead_setkey(), use the same logic as crypto_authenc_esn_setkey() to zeroize keys on exit.
  [9/83] 03d51eaf8f01 github actions: Incorporate feedback on workflows
  [10/83] 8d5ef76e5b5f configs: x86_64: Sync with dist-git
  [11/83] d9b3442f7925 github actions: Remove demo job
  [12/83] e747b8c4fe73 github actions: Remove push checks
  [13/83] 57b59a8353be github actions: Add upstream commit checker
  [14/83] 89dbfa320ca3 github actions: Add kabi checks
  [15/83] 813bb138b90b github actions: Fix upstream commit check for forks
  [16/83] 3addccdcd8ac github actions: Fix process-pull-request for forks
  [17/83] 927661ef6514 github actions: remove old pr checker
  [18/83] 508a3fe45bfb github actions: Use reusable validate kernel commits workflow
  [19/83] 03c751814c5a github actions: Add kernelCI for rlc-8
  [20/83] 0dd4d58e8d20 github actions: Use trigger for kernelCI
  [21/83] 14e7da3ac40f Revert "xfrm: esp: avoid in-place decrypt on shared skb frags"
  [22/83] 8f5cb4aa48af xfrm: esp: avoid in-place decrypt on shared skb frags
  [23/83] 52ecf831e674 net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets
  [24/83] cb64533b5e2e tipc: Fix use-after-free of kernel socket in cleanup_bearer().
  [25/83] f6519a8edbaf nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
  [26/83] d509836f648b netdevsim: Fix memory leak of nsim_dev->fa_cookie
  [27/83] b4f44139005a gso: fix udp gso fraglist segmentation after pull from frag_list
  [28/83] 04b29edd584e bpf: Fix a segment issue when downgrading gso_size
  [29/83] c907b143a232 net: fix udp gso skb_segment after pull from frag_list
  [30/83] a82fee48c2df x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach
  [31/83] d32250a95095 x86/boot: Move x86_cache_alignment initialization to correct spot
  [32/83] 7c8dbcf6f230 x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
  [33/83] 1e4984860748 x86/cpu: Get rid of an unnecessary local variable in get_cpu_address_sizes()
  [34/83] 458e9e4e476d x86/cpu: Provide default cache line size if not enumerated
  [35/83] 98243cb4a225 net: mana: Enable MANA driver on ARM64 with 4K page size
  [36/83] 7917ee8eff46 net: mana: Add support for page sizes other than 4KB on ARM64
  [37/83] 4e304e2aed5c RDMA/mana_ib: Fix bug in creation of dma regions
  [38/83] 76cbe5d483e5 RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
  [39/83] 7b67862f997e RDMA/mana_ib: use the correct page table index based on hardware page size
  [40/83] f9572a3764a0 tipc: fix NULL deref in cleanup_bearer()
  [41/83] 75c0a4b2f426 scsi: storvsc: Prefer returning channel with the same CPU as on the I/O issuing CPU
  [42/83] 340f829acfc8 PCI: Batch BAR sizing operations
  [43/83] 929640379825 libeth: add Tx buffer completion helpers
  [44/83] cdf8489aa253 idpf: convert to libeth Tx buffer completion
  [45/83] 566868ec3f20 netdevice: add netdev_tx_reset_subqueue() shorthand
  [46/83] c9b8b43326ad idpf: refactor Tx completion routines
  [47/83] 9fcaf2414dda idpf: set completion tag for "empty" bufs associated with a packet
  [48/83] e59ded1daf2d idpf: add support for Tx refillqs in flow scheduling mode
  [49/83] e95c624e9cda idpf: improve when to set RE bit logic
  [50/83] 7d596f78b387 idpf: simplify and fix splitq Tx packet rollback error path
  [51/83] cd563b7877d3 idpf: replace flow scheduling buffer ring with buffer pool
  [52/83] 5de8b2b48d2d idpf: stop Tx if there are insufficient buffer resources
  [53/83] 2d17218fa22c idpf: remove obsolete stashing code
  [54/83] 57cd920bf196 sched: fix exit_mm vs membarrier (v4)
  [55/83] c07bf9a6448b net/sched: act_api: use RCU with deferred freeing for action lifecycle
  [56/83] 2b5c921b01f4 PCI: Fix BUILD_BUG_ON usage for old gcc
  [57/83] ec01bf5b2202 idpf: adjust TxQ ring count minimum
  [58/83] 7772f1f4aa90 gve: Define config structs for queue allocation
  [59/83] dc0a8e0a2085 gve: Refactor napi add and remove functions
  [60/83] 420d923596a2 gve: Switch to config-aware queue allocation
  [61/83] f83165500e52 gve: Refactor gve_open and gve_close
  [62/83] 0c7082c480f8 gve: Alloc before freeing when adjusting queues
  [63/83] 25d89b2c605e gve: Alloc before freeing when changing features
  [64/83] 4e4dd1a8b572 gve: simplify setting decriptor count defaults
  [65/83] 36bb924de31b gve: make the completion and buffer ring size equal for DQO
  [66/83] 4504a5f80b06 gve: set page count for RX QPL for GQI and DQO queue formats
  [67/83] b0af741d7509 gve: add support to read ring size ranges from the device
  [68/83] fbc2350e9364 gve: add support to change ring size via ethtool
  [69/83] 2628ead6acac gve: Fix use of netif_carrier_ok()
  [70/83] caad5abc0528 gve: Remove unused declaration gve_rx_alloc_rings()
  [71/83] 4b7e5af5d13a gve: clean XDP queues in gve_tx_stop_ring_gqi
  [72/83] af6e144983f6 gve: fix XDP allocation path in edge cases
  [73/83] 5b3a6bfefb55 gve: prevent ethtool ops after shutdown
  [74/83] c8464f0ea9ad gve: defer interrupt enabling until NAPI registration
  [75/83] 9e5e8f7ff88b gve: fix incorrect buffer cleanup in gve_tx_clean_pending_packets for QPL
  [76/83] 1ebb352bafab gve: Update QPL page registration logic
  [77/83] 91c76cb86c96 gve: Enable reading max ring size from the device in DQO-QPL mode
  [78/83] 7c66dcda4aa3 gve: bound DQO-QPL TX buffer count to the s16 free-list range
  [79/83] 2bde7ab8a5b1 ip6_tunnel: clear skb2->cb[] in ip6ip6_err()
  [80/83] 54cfa78e7e47 sctp: stream: fully roll back denied add-stream state
  [81/83] f280bd306700 mpls: add seqcount to protect the platform_label{,s} pair
  [82/83] 4e405fd08bbd netfilter: nfnetlink_queue: unbreak SCTP traffic
  [83/83] d16b07ef1054 ipv4: validate checksum_start before completing checksum
[rolling release update] Successfully applied all 83 commits

BUILD

$ egrep -B 5 -A 5 "\[TIMER\]|^Starting Build" $(ls -t kbuild* | head -n1)
/mnt/code/kernel-src-tree-build
Running make mrproper...
[TIMER]{MRPROPER}: 0s
x86_64 architecture detected, copying config
'configs/kernel-x86_64.config' -> '.config'
Setting Local Version for build

KSelfTest

$ ./kernel-tools/kernel_auto_rebuild/get_kselftest_diff.sh
selftest-4.18.0-jmaple_rlc-8_4.18.0-553.164.1.el8_10-f890cd4ebc27+-1.log: 257 passed
selftest-4.18.0-jmaple_rlc-8_4.18.0-553.168.1.el8_10-013255b109f4+-1.log: 257 passed
selftest-4.18.0-jmaple_rlc-8_4.18.0-553.174.1.el8_10-8e7ad029d8c2+-1.log: 258 passed
selftest-4.18.0-jmaple_rlc-8_4.18.0-553.176.1.el8_10-0a08b59aab23+-1.log: 256 passed

Before: selftest-4.18.0-jmaple_rlc-8_4.18.0-553.174.1.el8_10-8e7ad029d8c2+-1.log
After: selftest-4.18.0-jmaple_rlc-8_4.18.0-553.176.1.el8_10-0a08b59aab23+-1.log
Diff:
-ok 12 selftests: net: xfrm_policy.sh
-ok 51 selftests: kvm: max_guest_memory_test

jallisonciq and others added 30 commits October 20, 2026 19:08
        Using the kernel crypto API, the SHA3-256 algorithm is used as
        conditioning element to replace the LFSR in the Jitter RNG. All other
        parts of the Jitter RNG are unchanged.

        The application and use of the SHA-3 conditioning operation is identical
        to the user space Jitter RNG 3.4.0 by applying the following concept:

        - the Jitter RNG initializes a SHA-3 state which acts as the "entropy
          pool" when the Jitter RNG is allocated.

        - When a new time delta is obtained, it is inserted into the "entropy
          pool" with a SHA-3 update operation. Note, this operation in most of
          the cases is a simple memcpy() onto the SHA-3 stack.

        - To cause a true SHA-3 operation for each time delta operation, a
          second SHA-3 operation is performed hashing Jitter RNG status
          information. The final message digest is also inserted into the
          "entropy pool" with a SHA-3 update operation. Yet, this data is not
          considered to provide any entropy, but it shall stir the entropy pool.

        - To generate a random number, a SHA-3 final operation is performed to
          calculate a message digest followed by an immediate SHA-3 init to
          re-initialize the "entropy pool". The obtained message digest is one
          block of the Jitter RNG that is returned to the caller.

        Mathematically speaking, the random number generated by the Jitter RNG
        is:

        aux_t = SHA-3(Jitter RNG state data)

       Jitter RNG block = SHA-3(time_i || aux_i || time_(i-1) || aux_(i-1) ||
                                 ... || time_(i-255) || aux_(i-255))

        when assuming that the OSR = 1, i.e. the default value.

        This operation implies that the Jitter RNG has an output-blocksize of
        256 bits instead of the 64 bits of the LFSR-based Jitter RNG that is
        replaced with this patch.

        The patch also replaces the varying number of invocations of the
        conditioning function with one fixed number of invocations. The use
        of the conditioning function consistent with the userspace Jitter RNG
        library version 3.4.0.

        The code is tested with a system that exhibited the least amount of
        entropy generated by the Jitter RNG: the SiFive Unmatched RISC-V
        system. The measured entropy rate is well above the heuristically
        implied entropy value of 1 bit of entropy per time delta. On all other
        tested systems, the measured entropy rate is even higher by orders
        of magnitude. The measurement was performed using updated tooling
        provided with the user space Jitter RNG library test framework.

        The performance of the Jitter RNG with this patch is about en par
        with the performance of the Jitter RNG without the patch.

        Signed-off-by: Stephan Mueller <smueller@chronox.de>
        Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

            Back-port of commit bb897c5
            Author: Stephan Müller <smueller@chronox.de>
            Date:   Fri Apr 21 08:08:04 2023 +0200

Signed-off-by: Jeremy Allison <jallison@ciq.com>
    I.G 9.7.B for FIPS 140-3 specifies that variables temporarily holding
    cryptographic information should be zeroized once they are no longer
    needed. Accomplish this by using kfree_sensitive for buffers that
    previously held the private key.

    Signed-off-by: Hailey Mothershead <hailmo@amazon.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

	Back-ported from commit 23e4099
	Author: Hailey Mothershead <hailmo@amazon.com>
	Date:   Mon Apr 15 22:19:15 2024 +0000

Signed-off-by: Jeremy Allison <jallison@ciq.com>
Signed-off-by: Jeremy Allison <jallison@ciq.com>
Signed-off-by: Jeremy Allison <jallison@ciq.com>
    The output n bits can receive more than n bits of min entropy, of course,
    but the fixed output of the conditioning function can only asymptotically
    approach the output size bits of min entropy, not attain that bound.
    Random maps will tend to have output collisions, which reduces the
    creditable output entropy (that is what SP 800-90B Section 3.1.5.1.2
    attempts to bound).

    The value "64" is justified in Appendix A.4 of the current 90C draft,
    and aligns with NIST's in "epsilon" definition in this document, which is
    that a string can be considered "full entropy" if you can bound the min
    entropy in each bit of output to at least 1-epsilon, where epsilon is
    required to be <= 2^(-32).

    Note, this patch causes the Jitter RNG to cut its performance in half in
    FIPS mode because the conditioning function of the LFSR produces 64 bits
    of entropy in one block. The oversampling requires that additionally 64
    bits of entropy are sampled from the noise source. If the conditioner is
    changed, such as using SHA-256, the impact of the oversampling is only
    one fourth, because for the 256 bit block of the conditioner, only 64
    additional bits from the noise source must be sampled.

    This patch is derived from the user space jitterentropy-library.

    Signed-off-by: Stephan Mueller <smueller@chronox.de>
    Reviewed-by: Simo Sorce <simo@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Back-port of upstream commit 908dffa.

Signed-off-by: Jeremy Allison <jallison@ciq.com>
	private_key is overwritten with the key parameter passed in by the
	caller (if present), or alternatively a newly generated private key.
	However, it is possible that the caller provides a key (or the newly
	generated key) which is shorter than the previous key. In that
	scenario, some key material from the previous key would not be
	overwritten. The easiest solution is to explicitly zeroize the entire
	private_key array first.

	Note that this patch slightly changes the behavior of this function:
	previously, if the ecc_gen_privkey failed, the old private_key would
	remain. Now, the private_key is always zeroized. This behavior is
	consistent with the case where params.key is set and ecc_is_key_valid
	fails.

	Signed-off-by: Joachim Vandersmissen <git@jvdsn.com>
	Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Back-port of upstream commit: 73e5984

Signed-off-by: Jeremy Allison <jallison@ciq.com>
    key might contain private part of the key, so better use
    kfree_sensitive to free it

    Signed-off-by: Mahmoud Adam <mngyadam@amazon.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Back-port of upstream commit: 9f3fa6b

Signed-off-by: Jeremy Allison <jallison@ciq.com>
…ey() to zeroize keys on exit.

Signed-off-by: Jeremy Allison <jallison@ciq.com>
Add workflows for pushes and pull requests.

Signed-off-by: Greg Rose <g.v.rose@ciq.com>
LE-2786

Sync kernel-x86_64.config with el86-fips-compliant-8 branch from internal dist-git.  Same as shipped src.rpm.

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
We run build checks on pull requests now instead of push

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
LE-3770

This github action checks the PR commits for references to upstream
linux commits (lines starting with "commit <hash>") and does two things:

1.  Checks that this hash exists in the upstream linux kernel history

2.  Checks if there are any Fixes: references for the referenced commit
in the upstream linux kernel history

If either of those are found to be true a comment is added to the PR with
the pertinent information.

The logic for the check is provided by the check_upstream_commits.py script
from kernel-src-tree-tools

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
LE-3799

After the build check, perform a kabi check

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
The upstream commit check workflow was failing for pull requests
originating from forked repositories. The previous implementation
incorrectly assumed the pull request branch existed on the base repository.

This commit corrects the workflow to ensure the pull request branch
is checked out from the correct source repository, while the base
branch is fetched from the target repository.

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
The process-pull-request workflow was failing for pull requests
originating from forked repositories. The previous implementation
incorrectly assumed the pull request branch existed on the base repository.

This commit corrects the workflow to ensure the pull request branch
is checked out from the correct source repository, while the base
branch is fetched from the target repository.

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
There will be a new PR checker inbound soon this one is just broken so
removing it.

Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
Simplifies the workflow to use the reusable workflow defined in main
branch. This reduces duplication and makes the workflow easier to
maintain across multiple branches.

The workflow was renamed because it now includes validation over
and above just checking for upstream fixes

Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
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>
… packets

jira LE-1733
bugfix geneve_fixes
commit 791b408

Move the vxlan_features_check() call to after we verified the packet is
a tunneled VXLAN packet.

Without this, tunneled UDP non-VXLAN packets (for ex. GENENVE) might
wrongly not get offloaded.
In some cases, it worked by chance as GENEVE header is the same size as
VXLAN, but it is obviously incorrect.

Fixes: e3cfc7e ("net/mlx5e: TX, Add geneve tunnel stateless offload support")
	Signed-off-by: Gal Pressman <gal@nvidia.com>
	Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
	Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
	Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 791b408)
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira VULN-12931
cve CVE-2024-56642
commit-author Kuniyuki Iwashima <kuniyu@amazon.com>
commit 6a2fa13

syzkaller reported a use-after-free of UDP kernel socket
in cleanup_bearer() without repro. [0][1]

When bearer_disable() calls tipc_udp_disable(), cleanup
of the UDP kernel socket is deferred by work calling
cleanup_bearer().

tipc_net_stop() waits for such works to finish by checking
tipc_net(net)->wq_count.  However, the work decrements the
count too early before releasing the kernel socket,
unblocking cleanup_net() and resulting in use-after-free.

Let's move the decrement after releasing the socket in
cleanup_bearer().

[0]:
ref_tracker: net notrefcnt@000000009b3d1faf has 1/1 users at
     sk_alloc+0x438/0x608
     inet_create+0x4c8/0xcb0
     __sock_create+0x350/0x6b8
     sock_create_kern+0x58/0x78
     udp_sock_create4+0x68/0x398
     udp_sock_create+0x88/0xc8
     tipc_udp_enable+0x5e8/0x848
     __tipc_nl_bearer_enable+0x84c/0xed8
     tipc_nl_bearer_enable+0x38/0x60
     genl_family_rcv_msg_doit+0x170/0x248
     genl_rcv_msg+0x400/0x5b0
     netlink_rcv_skb+0x1dc/0x398
     genl_rcv+0x44/0x68
     netlink_unicast+0x678/0x8b0
     netlink_sendmsg+0x5e4/0x898
     ____sys_sendmsg+0x500/0x830

[1]:
BUG: KMSAN: use-after-free in udp_hashslot include/net/udp.h:85 [inline]
BUG: KMSAN: use-after-free in udp_lib_unhash+0x3b8/0x930 net/ipv4/udp.c:1979
 udp_hashslot include/net/udp.h:85 [inline]
 udp_lib_unhash+0x3b8/0x930 net/ipv4/udp.c:1979
 sk_common_release+0xaf/0x3f0 net/core/sock.c:3820
 inet_release+0x1e0/0x260 net/ipv4/af_inet.c:437
 inet6_release+0x6f/0xd0 net/ipv6/af_inet6.c:489
 __sock_release net/socket.c:658 [inline]
 sock_release+0xa0/0x210 net/socket.c:686
 cleanup_bearer+0x42d/0x4c0 net/tipc/udp_media.c:819
 process_one_work kernel/workqueue.c:3229 [inline]
 process_scheduled_works+0xcaf/0x1c90 kernel/workqueue.c:3310
 worker_thread+0xf6c/0x1510 kernel/workqueue.c:3391
 kthread+0x531/0x6b0 kernel/kthread.c:389
 ret_from_fork+0x60/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:244

Uninit was created at:
 slab_free_hook mm/slub.c:2269 [inline]
 slab_free mm/slub.c:4580 [inline]
 kmem_cache_free+0x207/0xc40 mm/slub.c:4682
 net_free net/core/net_namespace.c:454 [inline]
 cleanup_net+0x16f2/0x19d0 net/core/net_namespace.c:647
 process_one_work kernel/workqueue.c:3229 [inline]
 process_scheduled_works+0xcaf/0x1c90 kernel/workqueue.c:3310
 worker_thread+0xf6c/0x1510 kernel/workqueue.c:3391
 kthread+0x531/0x6b0 kernel/kthread.c:389
 ret_from_fork+0x60/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:244

CPU: 0 UID: 0 PID: 54 Comm: kworker/0:2 Not tainted 6.12.0-rc1-00131-gf66ebf37d69c #7 91723d6f74857f70725e1583cba3cf4adc716cfa
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014
Workqueue: events cleanup_bearer

Fixes: 26abe14 ("net: Modify sk_alloc to not reference count the netns of kernel sockets.")
	Reported-by: syzkaller <syzkaller@googlegroups.com>
	Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20241127050512.28438-1-kuniyu@amazon.com
	Signed-off-by: Paolo Abeni <pabeni@redhat.com>

(cherry picked from commit 6a2fa13)
	Signed-off-by: David Gomez <dgomez@ciq.com>
jira VULN-56026
cve CVE-2025-21927
commit-author Maurizio Lombardi <mlombard@redhat.com>
commit ad95bab
upstream-diff Removed `nvme_tcp_c2h_term' case from
              `nvme_tcp_recv_pdu_supported' for the sake of consistency of
              `nvme_tcp_recv_pdu''s behavior relative to the upstream
              version, between the cases of proper and improper
              header. (What could be considered as "`c2h_term' type support"
              started with 84e0090 commit,
              not included in `ciqlts9_2''s history, so
              `nvme_tcp_recv_pdu_supported' in `ciqlts9_2' shouldn't report
              the `nvme_tcp_c2h_term' type as supported.)

nvme_tcp_recv_pdu() doesn't check the validity of the header length.
When header digests are enabled, a target might send a packet with an
invalid header length (e.g. 255), causing nvme_tcp_verify_hdgst()
to access memory outside the allocated area and cause memory corruptions
by overwriting it with the calculated digest.

Fix this by rejecting packets with an unexpected header length.

Fixes: 3f2304f ("nvme-tcp: add NVMe over TCP host driver")
	Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
	Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
	Signed-off-by: Keith Busch <kbusch@kernel.org>
(cherry picked from commit ad95bab)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-65790
cve CVE-2022-49803
commit-author Wang Yufen <wangyufen@huawei.com>
commit 064bc73

kmemleak reports this issue:

unreferenced object 0xffff8881bac872d0 (size 8):
  comm "sh", pid 58603, jiffies 4481524462 (age 68.065s)
  hex dump (first 8 bytes):
    04 00 00 00 de ad be ef                          ........
  backtrace:
    [<00000000c80b8577>] __kmalloc+0x49/0x150
    [<000000005292b8c6>] nsim_dev_trap_fa_cookie_write+0xc1/0x210 [netdevsim]
    [<0000000093d78e77>] full_proxy_write+0xf3/0x180
    [<000000005a662c16>] vfs_write+0x1c5/0xaf0
    [<000000007aabf84a>] ksys_write+0xed/0x1c0
    [<000000005f1d2e47>] do_syscall_64+0x3b/0x90
    [<000000006001c6ec>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

The issue occurs in the following scenarios:

nsim_dev_trap_fa_cookie_write()
  kmalloc() fa_cookie
  nsim_dev->fa_cookie = fa_cookie
..
nsim_drv_remove()

The fa_cookie allocked in nsim_dev_trap_fa_cookie_write() is not freed. To
fix, add kfree(nsim_dev->fa_cookie) to nsim_drv_remove().

Fixes: d3cbb90 ("netdevsim: add ACL trap reporting cookie as a metadata")
	Signed-off-by: Wang Yufen <wangyufen@huawei.com>
	Cc: Jiri Pirko <jiri@mellanox.com>
Link: https://lore.kernel.org/r/1668504625-14698-1-git-send-email-wangyufen@huawei.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 064bc73)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
jira VULN-45766
jira VULN-45767
cve cve-2024-49978
commit-author Willem de Bruijn <willemb@google.com>
commit a1e40ac
upstream-diff contextual diff is off due to massive reworks.
	In addition __udpv6_gso_segment_list_csum definition is not
	included.  This was included via "net/gro.h" via 75082e7
	which is a bug fix to 4721031 "net: move gro definitions to
	include/net/gro.h". Since we also do not have that we're just
	directly including net/ip6_checksum.h to this file.

Detect gso fraglist skbs with corrupted geometry (see below) and
pass these to skb_segment instead of skb_segment_list, as the first
can segment them correctly.

Valid SKB_GSO_FRAGLIST skbs
- consist of two or more segments
- the head_skb holds the protocol headers plus first gso_size
- one or more frag_list skbs hold exactly one segment
- all but the last must be gso_size

Optional datapath hooks such as NAT and BPF (bpf_skb_pull_data) can
modify these skbs, breaking these invariants.

In extreme cases they pull all data into skb linear. For UDP, this
causes a NULL ptr deref in __udpv4_gso_segment_list_csum at
udp_hdr(seg->next)->dest.

Detect invalid geometry due to pull, by checking head_skb size.
Don't just drop, as this may blackhole a destination. Convert to be
able to pass to regular skb_segment.

Link: https://lore.kernel.org/netdev/20240428142913.18666-1-shiming.cheng@mediatek.com/
Fixes: 9fd1ff5 ("udp: Support UDP fraglist GRO/GSO.")
	Signed-off-by: Willem de Bruijn <willemb@google.com>
	Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20241001171752.107580-1-willemdebruijn.kernel@gmail.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit a1e40ac)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira VULN-38750
jira VULN-38751
cve CVE-2024-42281
commit-author Fred Li <dracodingfly@gmail.com>
commit fa5ef65

Linearize the skb when downgrading gso_size because it may trigger a
BUG_ON() later when the skb is segmented as described in [1,2].

Fixes: 2be7e21 ("bpf: add bpf_skb_adjust_room helper")
	Signed-off-by: Fred Li <dracodingfly@gmail.com>
	Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
	Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/all/20240626065555.35460-2-dracodingfly@gmail.com [1]
Link: https://lore.kernel.org/all/668d5cf1ec330_1c18c32947@willemb.c.googlers.com.notmuch [2]
Link: https://lore.kernel.org/bpf/20240719024653.77006-1-dracodingfly@gmail.com
(cherry picked from commit fa5ef65)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira VULN-156444
jira VULN-156445
cve CVE-2025-38124
commit-author Shiming Cheng <shiming.cheng@mediatek.com>
commit 3382a1e

Commit a1e40ac ("net: gso: fix udp gso fraglist segmentation after
pull from frag_list") detected invalid geometry in frag_list skbs and
redirects them from skb_segment_list to more robust skb_segment. But some
packets with modified geometry can also hit bugs in that code. We don't
know how many such cases exist. Addressing each one by one also requires
touching the complex skb_segment code, which risks introducing bugs for
other types of skbs. Instead, linearize all these packets that fail the
basic invariants on gso fraglist skbs. That is more robust.

If only part of the fraglist payload is pulled into head_skb, it will
always cause exception when splitting skbs by skb_segment. For detailed
call stack information, see below.

Valid SKB_GSO_FRAGLIST skbs
- consist of two or more segments
- the head_skb holds the protocol headers plus first gso_size
- one or more frag_list skbs hold exactly one segment
- all but the last must be gso_size

Optional datapath hooks such as NAT and BPF (bpf_skb_pull_data) can
modify fraglist skbs, breaking these invariants.

In extreme cases they pull one part of data into skb linear. For UDP,
this  causes three payloads with lengths of (11,11,10) bytes were
pulled tail to become (12,10,10) bytes.

The skbs no longer meets the above SKB_GSO_FRAGLIST conditions because
payload was pulled into head_skb, it needs to be linearized before pass
to regular skb_segment.

    skb_segment+0xcd0/0xd14
    __udp_gso_segment+0x334/0x5f4
    udp4_ufo_fragment+0x118/0x15c
    inet_gso_segment+0x164/0x338
    skb_mac_gso_segment+0xc4/0x13c
    __skb_gso_segment+0xc4/0x124
    validate_xmit_skb+0x9c/0x2c0
    validate_xmit_skb_list+0x4c/0x80
    sch_direct_xmit+0x70/0x404
    __dev_queue_xmit+0x64c/0xe5c
    neigh_resolve_output+0x178/0x1c4
    ip_finish_output2+0x37c/0x47c
    __ip_finish_output+0x194/0x240
    ip_finish_output+0x20/0xf4
    ip_output+0x100/0x1a0
    NF_HOOK+0xc4/0x16c
    ip_forward+0x314/0x32c
    ip_rcv+0x90/0x118
    __netif_receive_skb+0x74/0x124
    process_backlog+0xe8/0x1a4
    __napi_poll+0x5c/0x1f8
    net_rx_action+0x154/0x314
    handle_softirqs+0x154/0x4b8

    [118.376811] [C201134] rxq0_pus: [name:bug&]kernel BUG at net/core/skbuff.c:4278!
    [118.376829] [C201134] rxq0_pus: [name:traps&]Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
    [118.470774] [C201134] rxq0_pus: [name:mrdump&]Kernel Offset: 0x178cc00000 from 0xffffffc008000000
    [118.470810] [C201134] rxq0_pus: [name:mrdump&]PHYS_OFFSET: 0x40000000
    [118.470827] [C201134] rxq0_pus: [name:mrdump&]pstate: 60400005 (nZCv daif +PAN -UAO)
    [118.470848] [C201134] rxq0_pus: [name:mrdump&]pc : [0xffffffd79598aefc] skb_segment+0xcd0/0xd14
    [118.470900] [C201134] rxq0_pus: [name:mrdump&]lr : [0xffffffd79598a5e8] skb_segment+0x3bc/0xd14
    [118.470928] [C201134] rxq0_pus: [name:mrdump&]sp : ffffffc008013770

Fixes: a1e40ac ("gso: fix udp gso fraglist segmentation after pull from frag_list")
	Signed-off-by: Shiming Cheng <shiming.cheng@mediatek.com>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 3382a1e)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
…tead of a two-phase approach

jira roc-2673
commit fbf6449

Instead of setting x86_virt_bits to a possibly-correct value and then
correcting it later, do all the necessary checks before setting it.

At this point, the #VC handler references boot_cpu_data.x86_virt_bits,
and in the previous version, it would be triggered by the CPUIDs between
the point at which it is set to 48 and when it is set to the correct
value.

    Suggested-by: Dave Hansen <dave.hansen@linux.intel.com>
    Signed-off-by: Adam Dunlap <acdunlap@google.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Tested-by: Jacob Xu <jacobhxu@google.com>
    Link: https://lore.kernel.org/r/20230912002703.3924521-3-acdunlap@google.com

Signed-off-by: Ronnie Sahlberg <rsahlberg@ciq.com>
shreeya-patel98 and others added 16 commits October 20, 2026 19:09
jira KERNEL-1219
commit-author Harshitha Ramamurthy <hramamurthy@google.com>
commit 834f945
upstream-diff Omitted the gve_set_hsplit_config() call in
  gve_set_ringparam, as the header-split feature
  (gve_header_split_supported / priv->header_split_enabled /
  gve_set_hsplit_config) is not present in RLC 8 and is unrelated to
  ring-size support. Added the ".set_ringparam = gve_set_ringparam"
  entry to gve_ethtool_ops, which upstream carried on a pre-existing
  stub that RLC 8 did not have.
  Upstream later reworks gve_set_ringparam() in d235bb2 ("gve:
  Allow ethtool to configure rx_buf_len") and c30fd91 ("gve:
  Consolidate and persist ethtool ring changes"), neither with a
  Fixes tag; check both when backporting future ethtool fixes.

Allow the user to change ring size via ethtool if
supported by the device. The driver relies on the
ring size ranges queried from device to validate
ring sizes requested by the user.

	Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
	Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 834f945)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
commit-author Praveen Kaligineedi <pkaligineedi@google.com>
commit fba917b
upstream-diff Kept RLC 8's 4-arg gve_adjust_config(priv, &qpls_alloc_cfg,
  &tx_alloc_cfg, &rx_alloc_cfg) signature and the existing inline
  feature-revert in gve_set_features (RLC 8 lacks the later qpl-cfg
  removal and the goto revert_features refactor); only the
  netif_carrier_ok()->netif_running() change from this commit was taken.

GVE driver wrongly relies on netif_carrier_ok() to check the
interface administrative state when resources are being
allocated/deallocated for queue(s). netif_carrier_ok() needs
to be replaced with netif_running() for all such cases.

Administrative state is the result of "ip link set dev <dev>
up/down". It reflects whether the administrator wants to use
the device for traffic and the corresponding resources have
been allocated.

Fixes: 5f08cd3 ("gve: Alloc before freeing when adjusting queues")
	Signed-off-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Reviewed-by: Shailend Chand <shailend@google.com>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20240801205619.987396-1-pkaligineedi@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit fba917b)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
commit-author Yue Haibing <yuehaibing@huawei.com>
commit 359c5eb
upstream-diff The removed line (int gve_rx_alloc_rings(struct gve_priv *))
  is identical to upstream, but it applies against different surrounding
  context: upstream deletes it just below the singular gve_rx_alloc_ring_gqi/
  gve_rx_free_ring_gqi declarations, which RLC 8's gve.h does not carry
  (this branch predates the singular-ring-helper split and uses only the
  plural gve_rx_alloc_rings_gqi/gve_rx_free_rings_gqi forms). The deletion
  was reanchored below gve_rx_work_pending() accordingly; no other lines
  change.

Commit f13697c ("gve: Switch to config-aware queue allocation")
convert this function to gve_rx_alloc_rings_gqi().

	Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
	Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20240816101906.882743-1-yuehaibing@huawei.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 359c5eb)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
commit-author Joshua Washington <joshwash@google.com>
commit 6321f5f

When stopping XDP TX rings, the XDP clean function needs to be called to
clean out the entire queue, similar to what happens in the normal TX
queue case. Otherwise, the FIFO won't be cleared correctly, and
xsk_tx_completed won't be reported.

Fixes: 75eaae1 ("gve: Add XDP DROP and TX support for GQI-QPL format")
	Cc: stable@vger.kernel.org
	Signed-off-by: Joshua Washington <joshwash@google.com>
	Signed-off-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 6321f5f)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
commit-author Joshua Washington <joshwash@google.com>
commit de63ac4
upstream-diff Kept RLC 8's qpls_alloc_cfg / new_qpl_cfg locals in
  gve_adjust_queues (pool-based QPL model; RLC 8 lacks the later qpl-cfg
  removal) alongside the num_xdp_queues local this commit adds; functional
  hunks apply unchanged. gve_set_channels() guards its XDP symmetry check
  on priv->xdp_prog instead of priv->num_xdp_queues (0 when the program is
  attached while the interface is down), from the guard change in upstream
  542a58f, whose full form depends on the num_xdp_queues->cfg
  refactor RLC 8 does not take.

This patch fixes a number of consistency issues in the queue allocation
path related to XDP.

As it stands, the number of allocated XDP queues changes in three
different scenarios.
1) Adding an XDP program while the interface is up via
   gve_add_xdp_queues
2) Removing an XDP program while the interface is up via
   gve_remove_xdp_queues
3) After queues have been allocated and the old queue memory has been
   removed in gve_queues_start.

However, the requirement for the interface to be up for
gve_(add|remove)_xdp_queues to be called, in conjunction with the fact
that the number of queues stored in priv isn't updated until _after_ XDP
queues have been allocated in the normal queue allocation path means
that if an XDP program is added while the interface is down, XDP queues
won't be added until the _second_ if_up, not the first.

Given the expectation that the number of XDP queues is equal to the
number of RX queues, scenario (3) has another problematic implication.
When changing the number of queues while an XDP program is loaded, the
number of XDP queues must be updated as well, as there is logic in the
driver (gve_xdp_tx_queue_id()) which relies on every RX queue having a
corresponding XDP TX queue. However, the number of XDP queues stored in
priv would not be updated until _after_ a close/open leading to a
mismatch in the number of XDP queues reported vs the number of XDP
queues which actually exist after the queue count update completes.

This patch remedies these issues by doing the following:
1) The allocation config getter function is set up to retrieve the
   _expected_ number of XDP queues to allocate instead of relying
   on the value stored in `priv` which is only updated once the queues
   have been allocated.
2) When adjusting queues, XDP queues are adjusted to match the number of
   RX queues when XDP is enabled. This only works in the case when
   queues are live, so part (1) of the fix must still be available in
   the case that queues are adjusted when there is an XDP program and
   the interface is down.

Fixes: 5f08cd3 ("gve: Alloc before freeing when adjusting queues")
	Cc: stable@vger.kernel.org
	Signed-off-by: Joshua Washington <joshwash@google.com>
	Signed-off-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Reviewed-by: Shailend Chand <shailend@google.com>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit de63ac4)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
cve CVE-2025-38735
commit-author Jordan Rhee <jordanrhee@google.com>
commit 75a9a46

A crash can occur if an ethtool operation is invoked
after shutdown() is called.

shutdown() is invoked during system shutdown to stop DMA operations
without performing expensive deallocations. It is discouraged to
unregister the netdev in this path, so the device may still be visible
to userspace and kernel helpers.

In gve, shutdown() tears down most internal data structures. If an
ethtool operation is dispatched after shutdown(), it will dereference
freed or NULL pointers, leading to a kernel panic. While graceful
shutdown normally quiesces userspace before invoking the reboot
syscall, forced shutdowns (as observed on GCP VMs) can still trigger
this path.

Fix by calling netif_device_detach() in shutdown().
This marks the device as detached so the ethtool ioctl handler
will skip dispatching operations to the driver.

Fixes: 974365e ("gve: Implement suspend/resume/shutdown")
	Signed-off-by: Jordan Rhee <jordanrhee@google.com>
	Signed-off-by: Jeroen de Borst <jeroendb@google.com>
Link: https://patch.msgid.link/20250818211245.1156919-1-jeroendb@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 75a9a46)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
cve CVE-2025-71156
commit-author Ankit Garg <nktgrg@google.com>
commit 3d970ed
upstream-diff RLC 8 predates 9a5e077 ("gve: Avoid rescheduling
  napi if on wrong cpu"), so there is no block->irq field and no
  netif_napi_set_irq() call: the enable_irq()/disable_irq() calls
  take the irq from the matching msix vector entry
  (priv->msix_vectors[ntfy_idx].vector; notify block i is requested
  on msix vector i) and land around this tree's unlocked
  netif_napi_add()/netif_napi_del() forms.

Currently, interrupts are automatically enabled immediately upon
request. This allows interrupt to fire before the associated NAPI
context is fully initialized and cause failures like below:

[    0.946369] Call Trace:
[    0.946369]  <IRQ>
[    0.946369]  __napi_poll+0x2a/0x1e0
[    0.946369]  net_rx_action+0x2f9/0x3f0
[    0.946369]  handle_softirqs+0xd6/0x2c0
[    0.946369]  ? handle_edge_irq+0xc1/0x1b0
[    0.946369]  __irq_exit_rcu+0xc3/0xe0
[    0.946369]  common_interrupt+0x81/0xa0
[    0.946369]  </IRQ>
[    0.946369]  <TASK>
[    0.946369]  asm_common_interrupt+0x22/0x40
[    0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10

Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
enablement and explicitly enable the interrupt in NAPI initialization
path (and disable it during NAPI teardown).

This ensures that interrupt lifecycle is strictly coupled with
readiness of NAPI context.

	Cc: stable@vger.kernel.org
Fixes: 1dfc2e4 ("gve: Refactor napi add and remove functions")
	Signed-off-by: Ankit Garg <nktgrg@google.com>
	Reviewed-by: Jordan Rhee <jordanrhee@google.com>
	Reviewed-by: Joshua Washington <joshwash@google.com>
	Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
	Signed-off-by: Paolo Abeni <pabeni@redhat.com>

(cherry picked from commit 3d970ed)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
… QPL

jira KERNEL-1219
cve CVE-2026-23386
commit-author Ankit Garg <nktgrg@google.com>
commit fb868db
upstream-diff The moved gve_unmap_packet() keeps this tree's
  dma_unmap_page() for the frag entries; the netmem conversion
  (netmem_dma_unmap_page_attrs) is not in this tree.

In DQ-QPL mode, gve_tx_clean_pending_packets() incorrectly uses the RDA
buffer cleanup path. It iterates num_bufs times and attempts to unmap
entries in the dma array.

This leads to two issues:
1. The dma array shares storage with tx_qpl_buf_ids (union).
 Interpreting buffer IDs as DMA addresses results in attempting to
 unmap incorrect memory locations.
2. num_bufs in QPL mode (counting 2K chunks) can significantly exceed
 the size of the dma array, causing out-of-bounds access warnings
(trace below is how we noticed this issue).

UBSAN: array-index-out-of-bounds in
drivers/net/ethernet/drivers/net/ethernet/google/gve/gve_tx_dqo.c:178:5 index 18 is out of
range for type 'dma_addr_t[18]' (aka 'unsigned long long[18]')
Workqueue: gve gve_service_task [gve]
Call Trace:
<TASK>
dump_stack_lvl+0x33/0xa0
__ubsan_handle_out_of_bounds+0xdc/0x110
gve_tx_stop_ring_dqo+0x182/0x200 [gve]
gve_close+0x1be/0x450 [gve]
gve_reset+0x99/0x120 [gve]
gve_service_task+0x61/0x100 [gve]
process_scheduled_works+0x1e9/0x380

Fix this by properly checking for QPL mode and delegating to
gve_free_tx_qpl_bufs() to reclaim the buffers.

	Cc: stable@vger.kernel.org
Fixes: a6fb8d5 ("gve: Tx path for DQO-QPL")
	Signed-off-by: Ankit Garg <nktgrg@google.com>
	Reviewed-by: Jordan Rhee <jordanrhee@google.com>
	Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
	Signed-off-by: Joshua Washington <joshwash@google.com>
	Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260220215324.1631350-1-joshwash@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>

(cherry picked from commit fb868db)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
commit-author Matt Olson <maolson@google.com>
commit 07993df
upstream-diff gve_update_num_qpl_pages()'s page math is inlined in
  gve_alloc_qpls(), since RLC 8 keeps the pool-based QPL model: u32
  intermediates and (u64) casts on the math; the GQI branch writes both
  tx and rx counts (upstream writes only rx and relies on the get-curr
  seeding of tx, which this commit adds to RLC 8's get-curr helpers
  too); cfg->is_gqi gating and cfg->tx_cfg/rx_cfg queue counts in place
  of upstream's queue_format/qcfg forms. The QPLs are sized from the
  u16 pages_per_qpl cfg fields so QPL size and num_buf_states agree;
  tx_num_qpls is derived from the xdp_prog-aware tx_alloc_cfg->num_rings
  (from upstream 542a58f, paired with the gve_set_channels() guard
  in de63ac4), which removes the last reader of
  gve_qpls_alloc_cfg.num_xdp_queues, so that field and its write in
  gve_qpls_get_curr_alloc_cfg() are deleted.

For DQO, change QPL page registration logic to be more flexible to honor
the "max_registered_pages" parameter from the gVNIC device.

Previously the number of RX pages per QPL was hardcoded to twice the
ring size, and the number of TX pages per QPL was dictated by the device
in the DQO-QPL device option. Now [in DQO-QPL mode], the driver will
ignore the "tx_pages_per_qpl" parameter indicated in the DQO-QPL device
option and instead allocate up to (tx_queue_length / 2) pages per TX QPL
and up to (rx_queue_length * 2) pages per RX QPL while keeping the total
number of pages under the "max_registered_pages".

Merge DQO and GQI QPL page calculation logic into a unified
gve_update_num_qpl_pages function. Add rx_pages_per_qpl to the priv
struct for consumption by both DQO and GQI.

	Signed-off-by: Matt Olson <maolson@google.com>
	Signed-off-by: Max Yuan <maxyuan@google.com>
	Reviewed-by: Jordan Rhee <jordanrhee@google.com>
	Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
	Reviewed-by: Willem de Bruijn <willemb@google.com>
	Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Signed-off-by: Joshua Washington <joshwash@google.com>
Link: https://patch.msgid.link/20260225182342.1049816-2-joshwash@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 07993df)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219
commit-author Matt Olson <maolson@google.com>
commit a2f1918

The gVNIC device indicates a device option (MODIFY_RING) to the driver,
which presents a range of ring sizes from which the user is allowed to
select. But in DQO-QPL queue format, the driver ignores the "max" of
this range and instead allows the user to configure the ring size in the
range [min, default]. This was done because increasing the ring size
could result in the number of registered pages being higher than the max
allowed by the device.

In order to support large ring sizes, stop ignoring the "max" of the
range presented in the MODIFY_RING option.

	Signed-off-by: Matt Olson <maolson@google.com>
	Signed-off-by: Max Yuan <maxyuan@google.com>
	Reviewed-by: Jordan Rhee <jordanrhee@google.com>
	Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
	Reviewed-by: Praveen Kaligineedi <pkaligineedi@google.com>
	Signed-off-by: Joshua Washington <joshwash@google.com>
Link: https://patch.msgid.link/20260225182342.1049816-3-joshwash@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit a2f1918)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
jira KERNEL-1219

gve_tx_qpl_buf_init() sizes the TX buffer free list as
GVE_TX_BUFS_PER_PAGE_DQO * num_entries, but the free-list links
(tx_qpl_buf_next) are s16.  GVE_TX_BUFS_PER_PAGE_DQO is PAGE_SIZE >> 11,
so on 64K-page builds (the aarch64-64k config ships CONFIG_GVE=m) a
4096-entry TX ring yields 2048 pages and 65536 buffers: entry 32767 is
seeded with a link of 32768, which reads back as -32768, and once 32768
buffers have been allocated gve_alloc_tx_qpl_buf() dereferences
tx_qpl_buf_next[-32768] and returns ids that index outside the QPL.

Clamp the count to S16_MAX, leaving an oversized QPL's tail unused
rather than mislinked.

This is not unique to this backport: upstream has the same unclamped
math at its tip. Kept as a separate commit so it can be dropped in
favor of the upstream fix once one lands;

Fixes: 07993df ("gve: Update QPL page registration logic")
Signed-off-by: Shreeya Patel <spatel@ciq.com>
cve CVE-2026-74597
commit-author Zhiling Zou <zhilinz@nebusec.ai>
commit f803c08

ip6ip6_err() clones an outer IPv6 ICMP error skb, pulls it to the
quoted inner IPv6 packet, and then passes the clone to icmpv6_send().
The clone still carries the outer packet's inet6_skb_parm in skb->cb.

If the outer packet had a Home Address Option, IP6CB(skb2)->dsthao
remains non-zero after skb_pull(). icmpv6_send() later calls
mip6_addr_swap(), which uses that stale dsthao offset against the quoted
inner packet. A malformed inner destination-options header can then make
the HAO lookup and address swap run past the end of the quoted packet
and corrupt skb_shared_info.

Clear skb2->cb[] before pulling the quoted inner IPv6 packet so the
reply path does not reuse metadata left by the outer IPv6 stack.

Fixes: e490d1d ("[IPV6] IP6TUNNEL: Split out generic routine in ip6ip6_err().")
	Cc: stable@vger.kernel.org
	Reported-by: Vega <vega@nebusec.ai>
	Signed-off-by: Zhiling Zou <zhilinz@nebusec.ai>
	Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/fe1a5e765fbca88d69391887f0ed26a19e3e4d39.1785736562.git.zhilinz@nebusec.ai
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit f803c08)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
cve CVE-2026-52929
commit-author Wyatt Feng <bronzed_45_vested@icloud.com>
commit a5f8a90

When ADD_OUT_STREAMS is denied, SCTP only shrinks the queued chunks and
then lowers outcnt. That leaves removed stream metadata behind, so a
later re-add can reuse a stale ext and hit a null-pointer dereference in
the scheduler get path.

Fix the rollback by tearing down the removed stream state the same way
other stream resizes do. Unschedule the current scheduler state, drop
the removed stream ext state with sctp_stream_outq_migrate(), and then
reschedule the remaining streams.

This keeps scheduler-private RR/FC/PRIO lists consistent while fully
rolling back denied outgoing stream additions.

Fixes: 637784a ("sctp: introduce priority based stream scheduler")
	Cc: stable@kernel.org
	Reported-by: Yuan Tan <yuantan098@gmail.com>
	Reported-by: Yifan Wu <yifanwucs@gmail.com>
	Reported-by: Juefei Pu <tomapufckgml@gmail.com>
	Reported-by: Zhengchuan Liang <zcliangcn@gmail.com>
	Reported-by: Xin Liu <bird@lzu.edu.cn>
	Signed-off-by: Wyatt Feng <bronzed_45_vested@icloud.com>
	Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
	Acked-by: Xin Long <lucien.xin@gmail.com>
Link: https://patch.msgid.link/d78954ecd94954653ee299400e98d74a03a6f7d3.1780603399.git.bronzed_45_vested@icloud.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit a5f8a90)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
cve CVE-2026-43042
commit-author Sabrina Dubroca <sd@queasysnail.net>
commit 629ec78
upstream-diff Uses a file-scope seqcount_t instead of upstream's
  per-netns seqcount_mutex_t to avoid a kABI-breaking struct
  change. Write side uses local_bh_disable() with a conditional preempt_disable() on PREEMPT_RT
  for RT safety. Uses rcu_dereference_rtnl() instead of
  upstream's plain rcu_dereference() to stay lockdep-clean
  under RTNL. mpls_dump_routes() still runs under RTNL on
  this tree; the seqcount there is extra hardening.

The RCU-protected codepaths (mpls_forward, mpls_dump_routes) can have
an inconsistent view of platform_labels vs platform_label in case of a
concurrent resize (resize_platform_label_table, under
platform_mutex). This can lead to OOB accesses.

This patch adds a seqcount, so that we get a consistent snapshot.

Note that mpls_label_ok is also susceptible to this, so the check
against RTA_DST in rtm_to_route_config, done outside platform_mutex,
is not sufficient. This value gets passed to mpls_label_ok once more
in both mpls_route_add and mpls_route_del, so there is no issue, but
that additional check must not be removed.

	Reported-by: Yuan Tan <tanyuan98@outlook.com>
	Reported-by: Yifan Wu <yifanwucs@gmail.com>
	Reported-by: Juefei Pu <tomapufckgml@gmail.com>
	Reported-by: Xin Liu <bird@lzu.edu.cn>
Fixes: 7720c01 ("mpls: Add a sysctl to control the size of the mpls label table")
Fixes: dde1b38 ("mpls: Convert mpls_dump_routes() to RCU.")
	Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://patch.msgid.link/cd8fca15e3eb7e212b094064cd83652e20fd9d31.1774284088.git.sd@queasysnail.net
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 629ec78)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
cve-pre CVE-2026-99999
commit-author Antonio Ojea <aojea@google.com>
commit 26a77d0

when packet is enqueued with nfqueue and GSO is enabled, checksum
calculation has to take into account the protocol, as SCTP uses a
32 bits CRC checksum.

Enter skb_gso_segment() path in case of SCTP GSO packets because
skb_zerocopy() does not support for GSO_BY_FRAGS.

Joint work with Pablo.

	Signed-off-by: Antonio Ojea <aojea@google.com>
	Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
(cherry picked from commit 26a77d0)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
cve CVE-2026-99999
commit-author Michael S. Tsirkin <mst@redhat.com>
commit 6785011
upstream-diff Dropped the net/bridge/netfilter/nf_conntrack_bridge.c
  hunk: this tree predates bridge connection tracking (added
  upstream in 4.19 by 3c171f4 "netfilter: bridge: add
  connection tracking system"), so the guarded nf_br_ip_fragment()
  does not exist here. Also hand-resolved adding
  #include <net/ip.h> in net/netfilter/nfnetlink_queue.c: the 4.18
  include block lacks the newer context the upstream hunk anchors on
  (this tree predates include/net/gso.h, added upstream by
  d457a0e "net: move gso declarations and functions to their
  own files"); placed the include in the net/ group before
  <net/sock.h>.

If a packet with bad checksum metadata gets into the ipv4 stack,
skb_checksum_help can corrupt the network header and cause a bunch of
mischief.

This was discovered and reported by Paulos, and has been reporoduced
by others independently since.

We really shouldn't allow such packets in, but as a defence
in depth measure, let's also check before we complete the checksum.

A more complete validation at input is forthcoming, but needs more work.

Cc: stable@vger.kernel.org
Fixes: f43798c ("tun: Allow GSO using virtio_net_hdr")
Fixes: bfd5f4a ("packet: Add GSO/csum offload support.")
Reported-by: Paulos Yibelo <habte.yibelo@gmail.com>
Closes: https://lore.kernel.org/netdev/20260922030310.8684-2-habte.yibelo@gmail.com/
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/0a012b4923e189c4c593ef4f471e5ff0edbe9030.1791412497.git.mst@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 6785011)
	Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
@github-actions

Copy link
Copy Markdown

🔍 Diffofdiffs: 34 of 61 backports differ from upstream

View the diffofdiffs report.

Open to anyone signed in to GitHub. Report expires 2027-01-19 00:56 UTC.

# Subject Backport Upstream
1 xfrm: esp: avoid in-place decrypt on shared skb frags 6c53d38d4a5e f4c50a4034e6
2 nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu() 6beaf3841a24 ad95bab0cd28
3 gso: fix udp gso fraglist segmentation after pull from frag_list b96db771df7e a1e40ac5b5e9
4 net: fix udp gso skb_segment after pull from frag_list 28dc772414df 3382a1ed7f77
5 x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach cc2e5dd948c9 fbf6449f84bf
6 x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu() 949796921096 9a458198eba9
7 x86/cpu: Get rid of an unnecessary local variable in get_cpu_address_sizes() 9e0e82da1fc7 95bfb35269b2
8 net: mana: Enable MANA driver on ARM64 with 4K page size 0850167f60ce 40a1d11fc670
9 net: mana: Add support for page sizes other than 4KB on ARM64 adb939c74e97 382d1741b5b2
10 PCI: Batch BAR sizing operations 594dfde199bb 4453f360862e
11 idpf: convert to libeth Tx buffer completion c1e87120cc2f d9028db618a6
12 idpf: refactor Tx completion routines edb47a77480c 24eb35b15152
13 idpf: add support for Tx refillqs in flow scheduling mode 0e6047a9f703 cb83b559bea3
14 idpf: improve when to set RE bit logic a3f67ee2c7b0 f2d18e16479c
15 idpf: simplify and fix splitq Tx packet rollback error path 20c51226442f b61dfa9bc443
16 idpf: replace flow scheduling buffer ring with buffer pool ac15fd45c6a6 5f417d551324
17 idpf: stop Tx if there are insufficient buffer resources cacf0165deb2 0c3f135e840d
18 idpf: remove obsolete stashing code 2c1def019805 6c4e68480238
19 sched: fix exit_mm vs membarrier (v4) df39badc4b94 5bc78502322a
20 PCI: Fix BUILD_BUG_ON usage for old gcc d5e77b404933 472ff48e2c09
21 gve: Switch to config-aware queue allocation 5f19cfe44713 f13697cc7a19
22 gve: make the completion and buffer ring size equal for DQO e60ff2100ff6 5dee3c702c20
23 gve: set page count for RX QPL for GQI and DQO queue formats b886ff78dd30 b94d3703c1a6
24 gve: add support to read ring size ranges from the device 6c84930e960d ed4fb326947d
25 gve: add support to change ring size via ethtool a2faf47ccfb7 834f9458f2fd
26 gve: Fix use of netif_carrier_ok() 4558f3bc46f2 fba917b169be
27 gve: Remove unused declaration gve_rx_alloc_rings() 062c7a451057 359c5eb0f736
28 gve: fix XDP allocation path in edge cases a757089103aa de63ac44a527
29 gve: prevent ethtool ops after shutdown f66d9c770d0b 75a9a46d67f4
30 gve: defer interrupt enabling until NAPI registration 799c93e8d5ac 3d970eda0034
31 gve: fix incorrect buffer cleanup in gve_tx_clean_pending_packets for QPL 0ff4d807d8da fb868db5f4bc
32 gve: Update QPL page registration logic 4c890439d059 07993df56091
33 mpls: add seqcount to protect the platform_label{,s} pair c2c5fb83230d 629ec78ef860
34 ipv4: validate checksum_start before completing checksum 0a08b59aab23 6785011f8b16

22 additional commits have no upstream reference and were not compared.

Checked PR revision 0a08b59aab23 against base 0efddf9f5a18.

@github-actions

Copy link
Copy Markdown

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

@github-actions

Copy link
Copy Markdown

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit 6c53d38d4a5e (xfrm: esp: avoid in-place decrypt on shared skb frags) references upstream commit
    f4c50a4034e6 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    0dbc2398fca3 openvswitch: only skb_tx_error() a packet we are about to drop (Norbert Szetei) (CVE-2026-89487)
    48f6a5356a33 net: skbuff: propagate shared-frag marker through frag-transfer helpers (Hyunwoo Kim) (CVE-2026-43503)
    f84eca581739 net: skbuff: preserve shared-frag marker during coalescing (William Bowling) (CVE-2026-46300)

This is an automated message from the kernel commit checker workflow.

@github-actions

Copy link
Copy Markdown

JIRA PR Check Results

7 commit(s) with issues found:

Commit f0c845be1ef1

Summary: tipc: fix NULL deref in cleanup_bearer()

❌ Errors:

  • VULN-160088: Status is 'To Do', expected 'In Progress'
  • VULN-160088: LTS product 'fips-8-compliant' not found in release_map

⚠️ Warnings:

  • VULN-160088: No time logged - please log time manually

Commit 28dc772414df

Summary: net: fix udp gso skb_segment after pull from frag_list

❌ Errors:

  • VULN-156444: Status is 'Done', expected 'In Progress'
  • VULN-156444: LTS product 'fips-8.10' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'
  • VULN-156445: Status is 'Done', expected 'In Progress'
  • VULN-156445: LTS product 'fips-8.6' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'

Commit d3f43818057a

Summary: bpf: Fix a segment issue when downgrading gso_size

❌ Errors:

  • VULN-38750: Status is 'Done', expected 'In Progress'
  • VULN-38750: LTS product 'fips-8.10' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'
  • VULN-38751: Status is 'Done', expected 'In Progress'
  • VULN-38751: LTS product 'fips-8.6' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'

Commit b96db771df7e

Summary: gso: fix udp gso fraglist segmentation after pull from frag_list

❌ Errors:

  • VULN-45766: Status is 'Done', expected 'In Progress'
  • VULN-45766: LTS product 'fips-8.10' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'
  • VULN-45767: Status is 'Done', expected 'In Progress'
  • VULN-45767: LTS product 'fips-8.6' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'

Commit bf94108c45dd

Summary: netdevsim: Fix memory leak of nsim_dev->fa_cookie

❌ Errors:

  • VULN-65790: Status is 'Done', expected 'In Progress'
  • VULN-65790: LTS product 'fips-8.6' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'

Commit 6beaf3841a24

Summary: nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()

❌ Errors:

  • VULN-56026: Status is 'Done', expected 'In Progress'
  • VULN-56026: LTS product 'fips-8.6' expects branch 'fips-8-compliant/4.18.0-553.16.1', but merge target is 'rlc-8/4.18.0-553.176.1.el8_10'

Commit 3368cb5185c6

Summary: tipc: Fix use-after-free of kernel socket in cleanup_bearer().

❌ Errors:

  • VULN-12931: Status is 'Done', expected 'In Progress'
  • VULN-12931: LTS product 'fips-8-compliant' not found in release_map

Summary: Checked 83 commit(s) total.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ This PR contains VULN tickets that do not match the target LTS product. Please review the JIRA ticket assignments and ensure they match the merge target branch.

@github-actions

Copy link
Copy Markdown

❌ Validation checks completed with issues View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/39526552703

@PlaidCat PlaidCat self-assigned this Oct 21, 2026
@PlaidCat
PlaidCat requested a review from a team October 21, 2026 13:19
@PlaidCat
PlaidCat dismissed github-actions[bot]’s stale review October 21, 2026 13:19

Known issue with tooling

@bmastbergen bmastbergen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🥌

@bmastbergen
bmastbergen requested a review from a team October 21, 2026 13:25
@PlaidCat
PlaidCat merged commit 0a08b59 into rlc-8/4.18.0-553.176.1.el8_10 Oct 21, 2026
5 checks passed
@PlaidCat
PlaidCat deleted the jmaple_rlc-8/4.18.0-553.176.1.el8_10 branch October 21, 2026 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

10 participants