Skip to content

Conversation

@PlaidCat
Copy link
Collaborator

Update process (This kernel CentOS base for 4.18.0-553)

  • Kernel History Rebuild Process for all src.rpms hosted by RESF
  • Create sig-cloud-8/4.18.0-553.80.1.el8_10 branch
  • Check if any maintained code is included in the new el release.
  • Cherry-pick all code from previous branch into new branch (skipping unneeded code)
    • Fix conflicts as they arise
  • Build and Test

FIPS Integration

This is the integration of the FIPS changes from the 4.18.0-553.16.1 forked kernel into the rolling release 4.18.0-553.X.1 where X is the weekly / bi-weekly incrementing Red Hat number. Previously we were maintaining the 4.18.0-553.16.1 like an LTS fork. We are now merging the FIPS change into the rolling release process for kernel updates the volume changes that have happened to anything our lab is concerned about touch has been relatively low 3/1103+ commits. Each of these commit that have touched crypto related paths has been related to use after free, double free, and pointer math (not actual crypto math)

"ea7f8a5da93b44aa2e1c158373a7897d14e04742 Rebuild rocky8_10 with kernel-4.18.0-553.16.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 ea7f8a5da93b..HEAD
[rolling release update] Number of commits to check:  1103
[rolling release update] Checking modifications of shas
[rolling release update] Checked 110 of 1103 commits
[rolling release update] Checked 220 of 1103 commits
[rolling release update] Checked commit b'65dc923ed39079abf93a89a3d0e953f85917ed02' touched 1 FIPS protected files
  - b'crypto/'
[rolling release update] Checked 330 of 1103 commits
[rolling release update] Checked commit b'7bb94106f3ced78b2673ad26feb85eed55c4c44f' touched 1 FIPS protected files
  - b'crypto/'
[rolling release update] Checked 440 of 1103 commits
[rolling release update] Checked 550 of 1103 commits
[rolling release update] Checked 660 of 1103 commits
[rolling release update] Checked 770 of 1103 commits
[rolling release update] Checked 880 of 1103 commits
[rolling release update] Checked commit b'fadaefdb29e55ea34b45a3287f7b9fd35748324a' touched 1 FIPS protected files
  - b'drivers/crypto/'
[rolling release update] Checked 990 of 1103 commits
[rolling release update] Checked 1100 of 1103 commits
[rolling release update] 3 of 1103 commits have FIPS protected changes
  • crypto: seqiv - Handle EBUSY correctly - 65dc923
  • crypto: algif_hash - fix double free in hash_accept - 7bb9410
  • crypto: bcm - Fix pointer arithmetic - fadaefd

FIPS Integration process

Since 4.18.0-553.83.1.el8_10 is new for both rlc-8 and fips-8-compliant I approched this by doing fips-8-compliant first then and rlc-8 update, and finally rebasing the rlc-8 ontop of fips-8-compliant as they'll both be based off the same rocky8_10 4.18.0-553.83.1.el8_10 branch. Note without --fips-override it hard aborts when the rebase detects fips changes ... the reason being that we want someone to look at them then explicitly say yes this seems fine while we check with our FIPS Security team members.

python3 rolling-release-update.py --repo ../kernel-src-tree-rolling/ --new-base-branch rocky8_10 --old-rolling-branch fips-8-compliant/4.18.0-553.16.1 --interactive --fips-override

## Do a quick test compile and kselftests

python3 rolling-release-update.py --repo ../kernel-src-tree-rolling/ --new-base-branch rocky8_10 --old-rolling-branch rlc-8/4.18.0-553.82.1.el8_10 |tee ../RR.$(git -C ../kernel-src-tree-rolling describe origin/rocky8_10).log

git checkout jmaple_rlc-8/4.18.0-553.83.1.el8_10 
git rebase jmaple_fips-8-compliant/4.18.0-553.83.1.el8_10

## DO a build and test presented in this PR

git push --follow-tags origin rlc-8/4.18.0-553.83.1.el8_10 jmaple_rlc-8/4.18.0-553.83.1.el8_10

This process produces a git log like the following and notice the local build up of branch names.

52beeee4225a (HEAD -> jmaple_rlc-8/4.18.0-553.83.1.el8_10, origin/jmaple_rlc-8/4.18.0-553.83.1.el8_10) RDMA/mana_ib: use the correct page table index based on hardware page size
...
1696f0b14c9d (jmaple_fips-8-compliant/4.18.0-553.83.1.el8_10) net: fix udp gso skb_segment after pull from frag_list
...
d6bebad94beb (tag: resf_kernel-4.18.0-553.83.1.el8_10, origin/rocky8_10, origin/rlc-8/4.18.0-553.83.1.el8_10, rocky8_10, rlc-8/4.18.0-553.83.1.el8_10, fips-8-compliant/4.18.0-553.83.1.el8_10) Rebuild rocky8_10 with kernel-4.18.0-553.83.1.el8_10
52beeee4225a (HEAD -> jmaple_rlc-8/4.18.0-553.83.1.el8_10, origin/jmaple_rlc-8/4.18.0-553.83.1.el8_10) RDMA/mana_ib: use the correct page table index based on hardware page size
e187ba0b66c6 RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
6e1b086d3d9b RDMA/mana_ib: Fix bug in creation of dma regions
407adf7a9d68 net: mana: Add support for page sizes other than 4KB on ARM64
760b02249791 net: mana: Enable MANA driver on ARM64 with 4K page size
61bf0919ac71 x86/cpu: Provide default cache line size if not enumerated
a4ab2744693f x86/cpu: Get rid of an unnecessary local variable in get_cpu_address_sizes()
ef0e0c7f836a x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
83c05f63f864 x86/boot: Move x86_cache_alignment initialization to correct spot
6540ead1cb84 x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach
1696f0b14c9d (jmaple_fips-8-compliant/4.18.0-553.83.1.el8_10) net: fix udp gso skb_segment after pull from frag_list
6e65bd16bc2c bpf: Fix a segment issue when downgrading gso_size
6a59437ee785 gso: fix udp gso fraglist segmentation after pull from frag_list
b20cefbb86fb github actions: Fix process-pull-request for forks
1d2d7d3bfad0 github actions: Fix upstream commit check for forks
a59177bc1c23 github actions: Add kabi checks
254086c31314 github actions: Add upstream commit checker
a711a028959b netdevsim: Fix memory leak of nsim_dev->fa_cookie
8ca05b7de9d8 nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
d7ebe479a082 github actions: Remove push checks
f0313f028aa0 github actions: Remove demo job
786201a1647c configs: x86_64: Sync with dist-git
d72ba758de67 tipc: Fix use-after-free of kernel socket in cleanup_bearer().
f6b7f3148c15 github actions: Incorporate feedback on workflows
f02122fa2f0f net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets
c5d2400175b2 In essiv_aead_setkey(), use the same logic as crypto_authenc_esn_setkey() to zeroize keys on exit.
e52d6e4608c4 KEYS: use kfree_sensitive with key
bb2593508cd9 crypto: ecdh - explicitly zeroize private_key
71aa61154097     crypto: jitter - add oversampling of noise source
3efaf2843e9b SUSE: patch: crypto-ecdh-implement-FIPS-PCT.patch
7b7758f1252a SUSE: patch: crypto-dh-implement-FIPS-PCT.patch
feea8d1447fa crypto: aead,cipher - zeroize key buffer after use
68925efa2c54 crypto: jitter - replace LFSR with SHA3-256
d6bebad94beb (tag: resf_kernel-4.18.0-553.83.1.el8_10, origin/rocky8_10, origin/rlc-8/4.18.0-553.83.1.el8_10, rocky8_10, rlc-8/4.18.0-553.83.1.el8_10, fips-8-compliant/4.18.0-553.83.1.el8_10) Rebuild rocky8_10 with kernel-4.18.0-553.83.1.el8_10

Removed Commits

RLC-8 Rolling Release

None

[jmaple@devbox code]$ cat RR.resf_kernel-4.18.0-553.83.1.el8_10.log
[rolling release update] Rolling Product:  rlc-8
[rolling release update] Checking out branch:  rlc-8/4.18.0-553.82.1.el8_10
[rolling release update] Gathering all the RESF kernel Tags
[rolling release update] Found 40 RESF kernel tags
[rolling release update] Checking out branch:  rocky8_10
[rolling release update] Gathering all the RESF kernel Tags
[rolling release update] Found 41 RESF kernel tags
[rolling release update] Latest RESF tag sha:  b'48e11f31ca38'
"48e11f31ca385a8449e726009bcebe63a8f24052 Rebuild rocky8_10 with kernel-4.18.0-553.82.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 48e11f31ca38..HEAD
[rolling release update] Number of commits to check:  21
[rolling release update] Checking modifications of shas
[rolling release update] Checked 2 of 21 commits
[rolling release update] Checked 4 of 21 commits
[rolling release update] Checked 6 of 21 commits
[rolling release update] Checked 8 of 21 commits
[rolling release update] Checked 10 of 21 commits
[rolling release update] Checked 12 of 21 commits
[rolling release update] Checked 14 of 21 commits
[rolling release update] Checked 16 of 21 commits
[rolling release update] Checked 18 of 21 commits
[rolling release update] Checked 20 of 21 commits
[rolling release update] 0 of 21 commits have FIPS protected changes
[rolling release update] Checking out old rolling branch:  rlc-8/4.18.0-553.82.1.el8_10
[rolling release update] Finding the CIQ Kernel and Associated Upstream commits between the last resf tag and HEAD
[rolling release update] Last RESF tag sha:  b'48e11f31ca38'
[rolling release update] Total commits in old branch: 10
[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.83.1.el8_10
[rolling release update] Creating new branch: rlc-8/4.18.0-553.83.1.el8_10
[rolling release update] Creating new branch for PR:  jmaple_rlc-8/4.18.0-553.83.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: 20
[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 10 remaining commits to the new branch
  [1/10] 49c83fbec872 x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach
  [2/10] 040d56b85497 x86/boot: Move x86_cache_alignment initialization to correct spot
  [3/10] d7cfea9dabd1 x86/cpu: Allow reducing x86_phys_bits during early_identify_cpu()
  [4/10] 96bc5123df16 x86/cpu: Get rid of an unnecessary local variable in get_cpu_address_sizes()
  [5/10] f37dc16b37f6 x86/cpu: Provide default cache line size if not enumerated
  [6/10] 13bf2977c867 net: mana: Enable MANA driver on ARM64 with 4K page size
  [7/10] 8ccf7afc455b net: mana: Add support for page sizes other than 4KB on ARM64
  [8/10] 1596b895ce67 RDMA/mana_ib: Fix bug in creation of dma regions
  [9/10] 49eefe2fb185 RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
  [10/10] c3ccfa9bf5f1 RDMA/mana_ib: use the correct page table index based on hardware page size
[rolling release update] Successfully applied all 10 commits

FIPS-8-COMPLIANT/4.18.0-553.16.1 -> FIPS-8-COMPLIANT/4.18.0-553.83.1

Yes, CVEs managed in the 4.18.0-553.16.1 fork that were done beween 4.18.0-553.16.1 -> 4.18.0-553.83.1 in the upstream.

Additionally some changes in git hub actions that were not synced between the branches so they were remediated as needed.

The caveat was this one: d0acecbc56e0 mptcp: pm: Fix uaf in __timer_delete_syn which is actually contained in a "SPLAT" commit 657b4d2#diff-5034329f2f53076a33a053a2ec30269bd48e05d1ff4fef3be05314f04192b61dR31
The likely hood for this is the kernel mainline branch was stale at the time of cherry-picking Dec 16 2024 and MANY improvments have been made in this process to make sure we find as many upstream commits as possible.

  [24/27] d0acecbc56e0 mptcp: pm: Fix uaf in __timer_delete_sync
[rolling release update] ERROR: Failed to cherry-pick commit d0acecbc56e00a5fc0441e47b923393f80690fe1
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'
[jmaple@devbox kernel-src-tree-rolling]$ find . | xargs grep "mptcp: pm: Fix" 2>/dev/null
./.git/COMMIT_EDITMSG:mptcp: pm: Fix uaf in __timer_delete_sync
./ciq/ciq_backports/kernel-4.18.0-553.30.1.el8_10/rebuild.details.txt:mptcp: pm: Fix uaf in __timer_delete_sync
[jmaple@devbox kernel-src-tree-tools]$ python3 rolling-release-update.py --repo ../kernel-src-tree-rolling/ --new-base-branch rocky8_10 --old-rolling-branch fips-8-compliant/4.18.0-553.16.1 --interactive --fips-override
[rolling release update] Rolling Product:  fips-8-compliant
[rolling release update] Checking out branch:  fips-8-compliant/4.18.0-553.16.1
[rolling release update] Gathering all the RESF kernel Tags
[rolling release update] Found 4 RESF kernel tags
[rolling release update] Checking out branch:  rocky8_10
[rolling release update] Gathering all the RESF kernel Tags
[rolling release update] Found 41 RESF kernel tags
[rolling release update] Latest RESF tag sha:  b'ea7f8a5da93b'
"ea7f8a5da93b44aa2e1c158373a7897d14e04742 Rebuild rocky8_10 with kernel-4.18.0-553.16.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 ea7f8a5da93b..HEAD
[rolling release update] Number of commits to check:  1103
[rolling release update] Checking modifications of shas
[rolling release update] Checked 110 of 1103 commits
[rolling release update] Checked 220 of 1103 commits
[rolling release update] Checked commit b'65dc923ed39079abf93a89a3d0e953f85917ed02' touched 1 FIPS protected files
  - b'crypto/'
[rolling release update] Checked 330 of 1103 commits
[rolling release update] Checked commit b'7bb94106f3ced78b2673ad26feb85eed55c4c44f' touched 1 FIPS protected files
  - b'crypto/'
[rolling release update] Checked 440 of 1103 commits
[rolling release update] Checked 550 of 1103 commits
[rolling release update] Checked 660 of 1103 commits
[rolling release update] Checked 770 of 1103 commits
[rolling release update] Checked 880 of 1103 commits
[rolling release update] Checked commit b'fadaefdb29e55ea34b45a3287f7b9fd35748324a' touched 1 FIPS protected files
  - b'drivers/crypto/'
[rolling release update] Checked 990 of 1103 commits
[rolling release update] Checked 1100 of 1103 commits
[rolling release update] 3 of 1103 commits have FIPS protected changes
[rolling release update] Checking out old rolling branch:  fips-8-compliant/4.18.0-553.16.1
[rolling release update] Finding the CIQ Kernel and Associated Upstream commits between the last resf tag and HEAD
[rolling release update] Last RESF tag sha:  b'ea7f8a5da93b'
[rolling release update] Total commits in old branch: 102
[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: fips-8-compliant/4.18.0-553.83.1.el8_10
[rolling release update] Creating new branch: fips-8-compliant/4.18.0-553.83.1.el8_10
[rolling release update] Creating new branch for PR:  jmaple_fips-8-compliant/4.18.0-553.83.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: 1102
[rolling release update] Checking if any of the commits from the old rolling release are already present in the new base branch
- Commit 0b1eeafe3ef04f98aa7456272abbe48b5b61166f already present in new base branch: 0b1eeafe3ef04f98aa7456272abbe48b5b61166f efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare
- Commit c8c2886abdc1032191efe8b49d30337b129c95c5 already present in new base branch: c8c2886abdc1032191efe8b49d30337b129c95c5 ALSA: usb-audio: Fix size validation in convert_chmap_v3()
- Commit f7af68d74e78af0ec157c9d27c367178547b46b4 already present in new base branch: f7af68d74e78af0ec157c9d27c367178547b46b4 ALSA: usb-audio: Validate UAC3 cluster segment descriptors
- Commit 8bc67369817990a44fe83f4339883261ac38832d already present in new base branch: 8bc67369817990a44fe83f4339883261ac38832d ALSA: hda/ca0132: Fix buffer overflow in add_tuning_control
- Commit 2be65f16d110d87c30fbc27ac5cee3e4f039bc48 already present in new base branch: 2be65f16d110d87c30fbc27ac5cee3e4f039bc48 NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()
- Commit a3251a4e700d6bb6e33c0997f45427b19808bd38 already present in new base branch: a3251a4e700d6bb6e33c0997f45427b19808bd38 sctp: linearize cloned gso packets in sctp_rcv
- Commit 667626e755fc126ba01c6974d88ac2cdf38fa353 already present in new base branch: 667626e755fc126ba01c6974d88ac2cdf38fa353 net_sched: hfsc: Fix a UAF vulnerability in class handling
- Commit 223a7c8982f820355746c4d82393e4e8da5ba06d already present in new base branch: 223a7c8982f820355746c4d82393e4e8da5ba06d Bluetooth: Fix potential use-after-free when clear keys
- Commit 5f174e16ad313d14e63cce077b03f4fe539ea1c1 already present in new base branch: 5f174e16ad313d14e63cce077b03f4fe539ea1c1 crypto: seqiv - Handle EBUSY correctly
- Commit 2f9ee34af9da101b5ce08ddc7891d2478500fed7 already present in new base branch: 2f9ee34af9da101b5ce08ddc7891d2478500fed7 Bluetooth: L2CAP: Fix use-after-free
- Commit be9843e00659edcf099f08fb845ac779c61226d0 already present in new base branch: be9843e00659edcf099f08fb845ac779c61226d0 Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
- Commit 17f8974ecced88cce3bd9fd8965c1152fae42688 already present in new base branch: 17f8974ecced88cce3bd9fd8965c1152fae42688 Bluetooth: L2CAP: Fix user-after-free
- Commit 9a0abeeeac37aa97b147f2e89f3dfa99c8c7d42c already present in new base branch: 9a0abeeeac37aa97b147f2e89f3dfa99c8c7d42c KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
- Commit e8b4888527ffdfa2b09e80d440059e3f2b063195 already present in new base branch: e8b4888527ffdfa2b09e80d440059e3f2b063195 i2c/designware: Fix an initialization issue
- Commit f51d42ab35ac0d027840b2e35dc47981041218c3 already present in new base branch: f51d42ab35ac0d027840b2e35dc47981041218c3 media: uvcvideo: Remove dangling pointers
- Commit 204f2126c1ca7e0ec11847fa5f31a7a28a50e658 already present in new base branch: 204f2126c1ca7e0ec11847fa5f31a7a28a50e658 media: uvcvideo: Only save async fh if success
- Commit 181b6df858ac1bfad5b506125394d470d17cdd4c already present in new base branch: 181b6df858ac1bfad5b506125394d470d17cdd4c media: uvcvideo: Refactor iterators
- Commit 106adb1d0a8fc3fb9f0e12e5522a69458b879734 already present in new base branch: 106adb1d0a8fc3fb9f0e12e5522a69458b879734 use uniform permission checks for all mount propagation changes
- Commit 07a50aedff303e19b11c2cce01f28035c62407a7 already present in new base branch: 07a50aedff303e19b11c2cce01f28035c62407a7 do_change_type(): refuse to operate on unmounted/not ours mounts
- Commit 64e3a83a7a78638114641b8dc1a2d3beeb22f96d already present in new base branch: 64e3a83a7a78638114641b8dc1a2d3beeb22f96d vsock: Fix transport_* TOCTOU     - Commit 9a068aa4ddced96a698050699c0a66d12d3ff137 already present in new base branch: 9a068aa4ddced96a698050699c0a66d12d3ff137 net/sched: sch_qfq: Avoid triggering might_sleep in atomic context in qfq_delete_class                                                                                                             - Commit c1bf8405c8505bc862f92de9b084cd8c33e56fe6 already present in new base branch: c1bf8405c8505bc862f92de9b084cd8c33e56fe6 net/sched: sch_qfq: Fix race condition on qfq_aggregate
- Commit 325a6c52fc2fb9c29cd13ed6bc300e817e77a49d already present in new base branch: 325a6c52fc2fb9c29cd13ed6bc300e817e77a49d tipc: Fix use-after-free in tipc_conn_close().
- Commit f1751875e7b1b130187d82fea19a54ed5eb8f8be already present in new base branch: f1751875e7b1b130187d82fea19a54ed5eb8f8be idpf: convert control queue mutex to a spinlock
- Commit f9118e5321a93f53be9b42ce1e2ba4609eb63d10 already present in new base branch: f9118e5321a93f53be9b42ce1e2ba4609eb63d10 scsi: lpfc: Use memcpy() for BIOS version
- Commit d70efbfd04c4253ae339b2159d2d9484ae7c6b71 already present in new base branch: d70efbfd04c4253ae339b2159d2d9484ae7c6b71 net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull
- Commit 3d204c0ed15499d0547206f209305d321444a268 already present in new base branch: 3d204c0ed15499d0547206f209305d321444a268 i40e: fix MMIO write access to an invalid page in i40e_clear_hw
- Commit a3a0b133d554e36a3ac671a2cb80c1ceaed4dcf2 already present in new base branch: a3a0b133d554e36a3ac671a2cb80c1ceaed4dcf2 wifi: rtw88: fix the 'para' buffer size to avoid reading out of bounds
- Commit 12ac28364dd3ab406c8fd2a4c42c1681a6b6dd69 already present in new base branch: 12ac28364dd3ab406c8fd2a4c42c1681a6b6dd69 net: ch9200: fix uninitialised access during mii_nway_restart
- Commit 64ea2c322637239ada43691cd935fe650f834843 already present in new base branch: 64ea2c322637239ada43691cd935fe650f834843 crypto: algif_hash - fix double free in hash_accept
- Commit e71b343bad16a25939ac72ea1c45a0e0b88bdafa already present in new base branch: e71b343bad16a25939ac72ea1c45a0e0b88bdafa net_sched: ets: Fix double list add in class with netem as child qdisc
- Commit 2ab16fcea0504d2d309212d5b489eab5885fbd4c already present in new base branch: 2ab16fcea0504d2d309212d5b489eab5885fbd4c ext4: ignore xattrs past end
- Commit ebabeaadfdc23594427a8aeac3a9aece090ee13f already present in new base branch: ebabeaadfdc23594427a8aeac3a9aece090ee13f ext4: fix off-by-one error in do_split
- Commit 65ce0e854573f16ce31152e0bc9fddaec04a9e17 already present in new base branch: 65ce0e854573f16ce31152e0bc9fddaec04a9e17 memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
- Commit 9fb4581d257b6861e95dc8b852710b2807997b48 already present in new base branch: 9fb4581d257b6861e95dc8b852710b2807997b48 net: atm: fix use after free in lec_send()
- Commit c078ee65b95a1aae13c3f920217a2cd5a6bc7312 already present in new base branch: c078ee65b95a1aae13c3f920217a2cd5a6bc7312 sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
- Commit 47873647b609a65c844c7ebfed160259cde2f719 already present in new base branch: 47873647b609a65c844c7ebfed160259cde2f719 ndisc: use RCU protection in ndisc_alloc_skb()
- Commit 34e856a4e463f83e1800cd24f8f5dcc287a1d4cd already present in new base branch: 34e856a4e463f83e1800cd24f8f5dcc287a1d4cd net: add dev_net_rcu() helper
- Commit ed1ca9d753deda057f8ac37bca55b501a67e7c6e already present in new base branch: ed1ca9d753deda057f8ac37bca55b501a67e7c6e net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu()
- Commit 1cc79719c34636719a67fe0a5450f5796a4af7ee already present in new base branch: 1cc79719c34636719a67fe0a5450f5796a4af7ee net: usb: smsc75xx: Limit packet length to skb->len
- Commit acb5388222c459fc9e176aee5c6907aa1043610a already present in new base branch: acb5388222c459fc9e176aee5c6907aa1043610a security/keys: fix slab-out-of-bounds in key_task_permission
- Commit 7baaa32f33fd1c883c82137a475a271ac6bb6104 already present in new base branch: 7baaa32f33fd1c883c82137a475a271ac6bb6104 net/mlx5e: SHAMPO, Fix invalid WQ linked list unlink
- Commit 8a3eb053ff3db4b2058e3aa26a26bfe3b5bed31d already present in new base branch: 8a3eb053ff3db4b2058e3aa26a26bfe3b5bed31d wifi: rtw89: Fix array index mistake in rtw89_sta_info_get_iter()
- Commit 0ea5a8df15f103c93b7eb52be1c2764a8a504e9f already present in new base branch: 0ea5a8df15f103c93b7eb52be1c2764a8a504e9f tipc: Return non-zero value from tipc_udp_addr2str() on error
- Commit ee8d0bb0e1fee0b9b480686368e2d6e87d414a04 already present in new base branch: ee8d0bb0e1fee0b9b480686368e2d6e87d414a04 net/iucv: Avoid explicit cpumask var allocation on stack
- Commit a8d1842179669b179b43f89ec0d380b2e096cfe8 already present in new base branch: a8d1842179669b179b43f89ec0d380b2e096cfe8 xfs: don't walk off the end of a directory data block
- Commit 013342843609af5a72e3881b392262191ff83718 already present in new base branch: 013342843609af5a72e3881b392262191ff83718 drm/amdgpu/mes: fix use-after-free issue
- Commit 22b9fdd8015ca98fec74db668ab3863480487b73 already present in new base branch: 22b9fdd8015ca98fec74db668ab3863480487b73 net: fix out-of-bounds access in ops_init
- Commit 420dfadc4d9a1f1e3822a28eaecd9a8013014c67 already present in new base branch: 420dfadc4d9a1f1e3822a28eaecd9a8013014c67 tunnels: fix out of bounds access when building IPv6 PMTU error
- Commit 2310ea3462399a6193d224bd46be8e668c550c00 already present in new base branch: 2310ea3462399a6193d224bd46be8e668c550c00 ext4: avoid resizing to a partial cluster size
- Commit 1b778bfc70e58d76efde27ab1b412ec4c4523d3e already present in new base branch: 1b778bfc70e58d76efde27ab1b412ec4c4523d3e bpf: Don't use tnum_range on array range checking for poke descriptors
- Commit 51dd39cc28f0ecde99a6345dddacc6c5e5bbf51c already present in new base branch: 51dd39cc28f0ecde99a6345dddacc6c5e5bbf51c Bluetooth: hci_sync: add lock to protect HCI_UNREGISTER
- Commit e75b49c17364ef154e501f2eba3345834b9d0cf6 already present in new base branch: e75b49c17364ef154e501f2eba3345834b9d0cf6 ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is dead
- Commit 87b03e33d4b0349ad44074c43f74ca3ed7665514 already present in new base branch: 87b03e33d4b0349ad44074c43f74ca3ed7665514 misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
- Commit a735bb19801ff1131a9945e86b703ff6dc506e58 already present in new base branch: a735bb19801ff1131a9945e86b703ff6dc506e58 Bluetooth: hci_sync: Fix queuing commands when HCI_UNREGISTER is set
- Commit 694d1e030370b3abe0b8678868b3f9aa138baf83 already present in new base branch: 694d1e030370b3abe0b8678868b3f9aa138baf83 Bluetooth: Fix use after free in hci_send_acl
- Commit 2458901870d2ffafacae5be2e106306b4f7719ae already present in new base branch: 2458901870d2ffafacae5be2e106306b4f7719ae cifs: potential buffer overflow in handling symlinks
- Commit b47bdf4ea59374e67134d1722d7438b4982d780f already present in new base branch: b47bdf4ea59374e67134d1722d7438b4982d780f hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
- Commit 49082606024b79281d0c9926c757124e681990d5 already present in new base branch: 49082606024b79281d0c9926c757124e681990d5 cifs: fix double free race when mount fails in cifs_get_root()
- Commit c1cc772e8359a6acfb430f8f798b67ba86082c1f already present in new base branch: c1cc772e8359a6acfb430f8f798b67ba86082c1f can: peak_usb: fix use after free bugs
- Commit e0d3c4eebfcadaa26a5ba82eca906ba309dafdd4 already present in new base branch: e0d3c4eebfcadaa26a5ba82eca906ba309dafdd4 posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()
- Commit 55799d054f7735c95167ad4dbae27e13e32aad7f already present in new base branch: 55799d054f7735c95167ad4dbae27e13e32aad7f net_sched: hfsc: Address reentrant enqueue adding class to eltree twice
- Commit 1bd2a493a5b44151eead81006ec174d5f7150e6f already present in new base branch: 1bd2a493a5b44151eead81006ec174d5f7150e6f net_sched: hfsc: Fix a UAF vulnerability in class with netem as child qdisc
- Commit f1f09f04a5cce49e6d1e90d9be773c0f95b284e5 already present in new base branch: f1f09f04a5cce49e6d1e90d9be773c0f95b284e5 netfilter: nf_tables: Reject tables of unsupported family
- Commit 38e135a0864ed028009cfcfc64571e7e2819c787 already present in new base branch: 38e135a0864ed028009cfcfc64571e7e2819c787 net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done
- Commit 5ca6408bf40a0d4e903c3425778c8e6c3c1aa89b already present in new base branch: 5ca6408bf40a0d4e903c3425778c8e6c3c1aa89b can: bcm: Fix UAF in bcm_proc_show()
- Commit 2e1320ac739b0d0265f94c1f4a33e72b4124cc4d already present in new base branch: 2e1320ac739b0d0265f94c1f4a33e72b4124cc4d udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
- Commit 4f61f985eb0b4a4b3979be0edb863ce211535dd3 already present in new base branch: 4f61f985eb0b4a4b3979be0edb863ce211535dd3 netfilter: ipset: add missing range check in bitmap_ip_uadt
- Commit 692349bf2be17460e35024a12166aefadf5eb066 already present in new base branch: 692349bf2be17460e35024a12166aefadf5eb066 tap: add missing verification for short frame
- Commit 5f9271b753276ae27fb6956ea5a1c88b64e32933 already present in new base branch: 5f9271b753276ae27fb6956ea5a1c88b64e32933 ALSA: usb-audio: Fix out of bounds reads when finding clock sources
- Commit 0a057db15d3827261afdfaf9013b2d402984b6ec already present in new base branch: 0a057db15d3827261afdfaf9013b2d402984b6ec tun: add missing verification for short frame
- Commit f4e668dc8b82715d15a3f8a1c58f64d6cebae89e already present in new base branch: f4e668dc8b82715d15a3f8a1c58f64d6cebae89e arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array
- Commit 727af465bb0a932e7a15f3e16f8d289dc97a6571 already present in new base branch: 727af465bb0a932e7a15f3e16f8d289dc97a6571 vsock: Orphan socket after transport release
- Commit 9e9361d4abc27999bdc5e0851fb17bf4ad4fa7a9 already present in new base branch: 9e9361d4abc27999bdc5e0851fb17bf4ad4fa7a9 vsock: Keep the binding until socket destruction
- Commit 12880517a5e0b65c09869eb00d151369de3b7278 already present in new base branch: 12880517a5e0b65c09869eb00d151369de3b7278 media: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_format
[rolling release update] Found 75 duplicate commits to remove
[rolling release update] Removing duplicate commits:
  - 0b1eeafe3ef04f98aa7456272abbe48b5b61166f efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare
  - c8c2886abdc1032191efe8b49d30337b129c95c5 ALSA: usb-audio: Fix size validation in convert_chmap_v3()
  - f7af68d74e78af0ec157c9d27c367178547b46b4 ALSA: usb-audio: Validate UAC3 cluster segment descriptors
  - 8bc67369817990a44fe83f4339883261ac38832d ALSA: hda/ca0132: Fix buffer overflow in add_tuning_control
  - 2be65f16d110d87c30fbc27ac5cee3e4f039bc48 NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()
  - a3251a4e700d6bb6e33c0997f45427b19808bd38 sctp: linearize cloned gso packets in sctp_rcv
  - 667626e755fc126ba01c6974d88ac2cdf38fa353 net_sched: hfsc: Fix a UAF vulnerability in class handling
  - 223a7c8982f820355746c4d82393e4e8da5ba06d Bluetooth: Fix potential use-after-free when clear keys
  - 5f174e16ad313d14e63cce077b03f4fe539ea1c1 crypto: seqiv - Handle EBUSY correctly
  - 2f9ee34af9da101b5ce08ddc7891d2478500fed7 Bluetooth: L2CAP: Fix use-after-free
  - be9843e00659edcf099f08fb845ac779c61226d0 Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp
  - 17f8974ecced88cce3bd9fd8965c1152fae42688 Bluetooth: L2CAP: Fix user-after-free
  - 9a0abeeeac37aa97b147f2e89f3dfa99c8c7d42c KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
  - e8b4888527ffdfa2b09e80d440059e3f2b063195 i2c/designware: Fix an initialization issue
  - f51d42ab35ac0d027840b2e35dc47981041218c3 media: uvcvideo: Remove dangling pointers
  - 204f2126c1ca7e0ec11847fa5f31a7a28a50e658 media: uvcvideo: Only save async fh if success
  - 181b6df858ac1bfad5b506125394d470d17cdd4c media: uvcvideo: Refactor iterators
  - 106adb1d0a8fc3fb9f0e12e5522a69458b879734 use uniform permission checks for all mount propagation changes
  - 07a50aedff303e19b11c2cce01f28035c62407a7 do_change_type(): refuse to operate on unmounted/not ours mounts
  - 64e3a83a7a78638114641b8dc1a2d3beeb22f96d vsock: Fix transport_* TOCTOU
  - 9a068aa4ddced96a698050699c0a66d12d3ff137 net/sched: sch_qfq: Avoid triggering might_sleep in atomic context in qfq_delete_class
  - c1bf8405c8505bc862f92de9b084cd8c33e56fe6 net/sched: sch_qfq: Fix race condition on qfq_aggregate
  - 325a6c52fc2fb9c29cd13ed6bc300e817e77a49d tipc: Fix use-after-free in tipc_conn_close().
  - f1751875e7b1b130187d82fea19a54ed5eb8f8be idpf: convert control queue mutex to a spinlock
  - f9118e5321a93f53be9b42ce1e2ba4609eb63d10 scsi: lpfc: Use memcpy() for BIOS version
  - d70efbfd04c4253ae339b2159d2d9484ae7c6b71 net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull
  - 3d204c0ed15499d0547206f209305d321444a268 i40e: fix MMIO write access to an invalid page in i40e_clear_hw
  - a3a0b133d554e36a3ac671a2cb80c1ceaed4dcf2 wifi: rtw88: fix the 'para' buffer size to avoid reading out of bounds
  - 12ac28364dd3ab406c8fd2a4c42c1681a6b6dd69 net: ch9200: fix uninitialised access during mii_nway_restart
  - 64ea2c322637239ada43691cd935fe650f834843 crypto: algif_hash - fix double free in hash_accept
  - e71b343bad16a25939ac72ea1c45a0e0b88bdafa net_sched: ets: Fix double list add in class with netem as child qdisc
  - 2ab16fcea0504d2d309212d5b489eab5885fbd4c ext4: ignore xattrs past end
  - ebabeaadfdc23594427a8aeac3a9aece090ee13f ext4: fix off-by-one error in do_split
  - 65ce0e854573f16ce31152e0bc9fddaec04a9e17 memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
  - 9fb4581d257b6861e95dc8b852710b2807997b48 net: atm: fix use after free in lec_send()
  - c078ee65b95a1aae13c3f920217a2cd5a6bc7312 sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
  - 47873647b609a65c844c7ebfed160259cde2f719 ndisc: use RCU protection in ndisc_alloc_skb()
  - 34e856a4e463f83e1800cd24f8f5dcc287a1d4cd net: add dev_net_rcu() helper
  - ed1ca9d753deda057f8ac37bca55b501a67e7c6e net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu()
  - 1cc79719c34636719a67fe0a5450f5796a4af7ee net: usb: smsc75xx: Limit packet length to skb->len
  - acb5388222c459fc9e176aee5c6907aa1043610a security/keys: fix slab-out-of-bounds in key_task_permission
  - 7baaa32f33fd1c883c82137a475a271ac6bb6104 net/mlx5e: SHAMPO, Fix invalid WQ linked list unlink
  - 8a3eb053ff3db4b2058e3aa26a26bfe3b5bed31d wifi: rtw89: Fix array index mistake in rtw89_sta_info_get_iter()
  - 0ea5a8df15f103c93b7eb52be1c2764a8a504e9f tipc: Return non-zero value from tipc_udp_addr2str() on error
  - ee8d0bb0e1fee0b9b480686368e2d6e87d414a04 net/iucv: Avoid explicit cpumask var allocation on stack
  - a8d1842179669b179b43f89ec0d380b2e096cfe8 xfs: don't walk off the end of a directory data block
  - 013342843609af5a72e3881b392262191ff83718 drm/amdgpu/mes: fix use-after-free issue
  - 22b9fdd8015ca98fec74db668ab3863480487b73 net: fix out-of-bounds access in ops_init
  - 420dfadc4d9a1f1e3822a28eaecd9a8013014c67 tunnels: fix out of bounds access when building IPv6 PMTU error
  - 2310ea3462399a6193d224bd46be8e668c550c00 ext4: avoid resizing to a partial cluster size
  - 1b778bfc70e58d76efde27ab1b412ec4c4523d3e bpf: Don't use tnum_range on array range checking for poke descriptors
  - 51dd39cc28f0ecde99a6345dddacc6c5e5bbf51c Bluetooth: hci_sync: add lock to protect HCI_UNREGISTER
  - e75b49c17364ef154e501f2eba3345834b9d0cf6 ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is dead
  - 87b03e33d4b0349ad44074c43f74ca3ed7665514 misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
  - a735bb19801ff1131a9945e86b703ff6dc506e58 Bluetooth: hci_sync: Fix queuing commands when HCI_UNREGISTER is set
  - 694d1e030370b3abe0b8678868b3f9aa138baf83 Bluetooth: Fix use after free in hci_send_acl
  - 2458901870d2ffafacae5be2e106306b4f7719ae cifs: potential buffer overflow in handling symlinks
  - b47bdf4ea59374e67134d1722d7438b4982d780f hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
  - 49082606024b79281d0c9926c757124e681990d5 cifs: fix double free race when mount fails in cifs_get_root()
  - c1cc772e8359a6acfb430f8f798b67ba86082c1f can: peak_usb: fix use after free bugs
  - e0d3c4eebfcadaa26a5ba82eca906ba309dafdd4 posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()
  - 55799d054f7735c95167ad4dbae27e13e32aad7f net_sched: hfsc: Address reentrant enqueue adding class to eltree twice
  - 1bd2a493a5b44151eead81006ec174d5f7150e6f net_sched: hfsc: Fix a UAF vulnerability in class with netem as child qdisc
  - f1f09f04a5cce49e6d1e90d9be773c0f95b284e5 netfilter: nf_tables: Reject tables of unsupported family
  - 38e135a0864ed028009cfcfc64571e7e2819c787 net/tipc: fix slab-use-after-free Read in tipc_aead_encrypt_done
  - 5ca6408bf40a0d4e903c3425778c8e6c3c1aa89b can: bcm: Fix UAF in bcm_proc_show()
  - 2e1320ac739b0d0265f94c1f4a33e72b4124cc4d udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
  - 4f61f985eb0b4a4b3979be0edb863ce211535dd3 netfilter: ipset: add missing range check in bitmap_ip_uadt
  - 692349bf2be17460e35024a12166aefadf5eb066 tap: add missing verification for short frame
  - 5f9271b753276ae27fb6956ea5a1c88b64e32933 ALSA: usb-audio: Fix out of bounds reads when finding clock sources
  - 0a057db15d3827261afdfaf9013b2d402984b6ec tun: add missing verification for short frame
  - f4e668dc8b82715d15a3f8a1c58f64d6cebae89e arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array
  - 727af465bb0a932e7a15f3e16f8d289dc97a6571 vsock: Orphan socket after transport release
  - 9e9361d4abc27999bdc5e0851fb17bf4ad4fa7a9 vsock: Keep the binding until socket destruction
  - 12880517a5e0b65c09869eb00d151369de3b7278 media: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_format
[rolling release update] Applying 27 remaining commits to the new branch
  [1/27] 4c8ad45339cc crypto: jitter - replace LFSR with SHA3-256
  [2/27] 0be9f27efdc7 crypto: aead,cipher - zeroize key buffer after use
  [3/27] 7d657e1130f2 SUSE: patch: crypto-dh-implement-FIPS-PCT.patch
  [4/27] 6721b84e41f4 SUSE: patch: crypto-ecdh-implement-FIPS-PCT.patch
  [5/27] f1516f04585c     crypto: jitter - add oversampling of noise source
  [6/27] c5e906899c01 crypto: ecdh - explicitly zeroize private_key
  [7/27] 508c93a3895c KEYS: use kfree_sensitive with key
  [8/27] 213958108b7c In essiv_aead_setkey(), use the same logic as crypto_authenc_esn_setkey() to zeroize keys on exit.
  [9/27] bf8af9c35531 net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets
  [10/27] 47c493f1efbb github actions: Incorporate feedback on workflows
  [11/27] 56ab0ac042b7 tipc: Fix use-after-free of kernel socket in cleanup_bearer().
  [12/27] ba251146f2d2 github actions: Make builds on Merge Request
[rolling release update] ERROR: Failed to cherry-pick commit ba251146f2d2820c61a1f1cd120cfdc36c097728
error: could not apply ba251146f2d2... github actions: Make builds on Merge Request
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
hint: Disable this message with "git config advice.mergeConflict false"

[rolling release update] ========================================
[rolling release update] INTERACTIVE MODE: Merge conflict detected
[rolling release update] ========================================
[rolling release update] To resolve:
[rolling release update]   1. Fix merge conflicts in the working directory
[rolling release update]   2. Stage resolved files: git add <files>
[rolling release update]   3. Complete cherry-pick: git cherry-pick --continue
[rolling release update]      (or commit manually if needed)
[rolling release update] ========================================
[rolling release update] Press Enter when resolved (or type "stop"/"abort" to exit): 1
[rolling release update] ERROR: Cherry-pick not completed (.git/CHERRY_PICK_HEAD still exists)
[rolling release update] Please complete the cherry-pick with:
[rolling release update]   git cherry-pick --continue
[rolling release update] or abort with:
[rolling release update]   git cherry-pick --abort
[rolling release update] Type "stop" or "abort" to exit, or press Enter to check again
[rolling release update] Press Enter when resolved (or type "stop"/"abort" to exit): 1
[rolling release update] Cherry-pick resolved successfully, continuing...
  [13/27] 64d4091d25a1 configs: x86_64: Sync with dist-git
  [14/27] 967905117bf3 github actions: Remove demo job
  [15/27] 4980b66e723c github actions: Remove push checks
  [16/27] c2bbf41f7675 github actions: build-check: Use unversioned config
[rolling release update] ERROR: Failed to cherry-pick commit c2bbf41f76757622084a54f656fc84ab90d126fc
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'

[rolling release update] ========================================
[rolling release update] INTERACTIVE MODE: Merge conflict detected
[rolling release update] ========================================
[rolling release update] To resolve:
[rolling release update]   1. Fix merge conflicts in the working directory
[rolling release update]   2. Stage resolved files: git add <files>
[rolling release update]   3. Complete cherry-pick: git cherry-pick --continue
[rolling release update]      (or commit manually if needed)
[rolling release update] ========================================
[rolling release update] Press Enter when resolved (or type "stop"/"abort" to exit): 1
[rolling release update] Cherry-pick resolved successfully, continuing...
  [17/27] 3e5a132dd70c configs: Remove kernel-4.18.0-*.config
[rolling release update] ERROR: Failed to cherry-pick commit 3e5a132dd70ccc39669203eba8c98aa6bd066cfb
error: could not apply 3e5a132dd70c... configs: Remove kernel-4.18.0-*.config
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
hint: Disable this message with "git config advice.mergeConflict false"

[rolling release update] ========================================
[rolling release update] INTERACTIVE MODE: Merge conflict detected
[rolling release update] ========================================
[rolling release update] To resolve:
[rolling release update]   1. Fix merge conflicts in the working directory
[rolling release update]   2. Stage resolved files: git add <files>
[rolling release update]   3. Complete cherry-pick: git cherry-pick --continue
[rolling release update]      (or commit manually if needed)
[rolling release update] ========================================
[rolling release update] Press Enter when resolved (or type "stop"/"abort" to exit): 1
[rolling release update] Cherry-pick resolved successfully, continuing...
  [18/27] 44e2b63cfb22 nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
  [19/27] e6cadc48a901 netdevsim: Fix memory leak of nsim_dev->fa_cookie
  [20/27] c921388acaa7 github actions: Add upstream commit checker
  [21/27] 7f764573a73d github actions: Add kabi checks
  [22/27] 0da74d6aa519 github actions: Fix upstream commit check for forks
  [23/27] fbb8ea179925 github actions: Fix process-pull-request for forks
  [24/27] d0acecbc56e0 mptcp: pm: Fix uaf in __timer_delete_sync
[rolling release update] ERROR: Failed to cherry-pick commit d0acecbc56e00a5fc0441e47b923393f80690fe1
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'

[rolling release update] ========================================
[rolling release update] INTERACTIVE MODE: Merge conflict detected
[rolling release update] ========================================
[rolling release update] To resolve:
[rolling release update]   1. Fix merge conflicts in the working directory
[rolling release update]   2. Stage resolved files: git add <files>
[rolling release update]   3. Complete cherry-pick: git cherry-pick --continue
[rolling release update]      (or commit manually if needed)
[rolling release update] ========================================
[rolling release update] Press Enter when resolved (or type "stop"/"abort" to exit):
[rolling release update] Cherry-pick resolved successfully, continuing...
  [25/27] 51deadb613fb gso: fix udp gso fraglist segmentation after pull from frag_list
  [26/27] 70d4b79763c3 bpf: Fix a segment issue when downgrading gso_size
  [27/27] 6436952e059e net: fix udp gso skb_segment after pull from frag_list
[rolling release update] Successfully applied all 27 commits

BUILD

[jmaple@devbox code]$ egrep -B 5 -A 5 "\[TIMER\]|^Starting Build" $(ls -t kbuild* | head -n1)
/mnt/code/kernel-src-tree-build
Running make mrproper...
[TIMER]{MRPROPER}: 4s
x86_64 architecture detected, copying config
'configs/kernel-x86_64.config' -> '.config'
Setting Local Version for build
CONFIG_LOCALVERSION="-jmaple_rlc-8_4.18.0-553.83.1.el8_10-52beeee4225a"
Making olddefconfig
--
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --olddefconfig Kconfig
#
# configuration written to .config
#
Starting Build
scripts/kconfig/conf  --syncconfig Kconfig
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  SYSHDR  arch/x86/include/generated/asm/unistd_32_ia32.h
  SYSHDR  arch/x86/include/generated/asm/unistd_64_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_64.h
--
  LD [M]  sound/usb/usx2y/snd-usb-usx2y.ko
  LD [M]  sound/virtio/virtio_snd.ko
  LD [M]  sound/x86/snd-hdmi-lpe-audio.ko
  LD [M]  sound/xen/snd_xen_front.ko
  LD [M]  virt/lib/irqbypass.ko
[TIMER]{BUILD}: 1825s
Making Modules
  INSTALL arch/x86/crypto/blowfish-x86_64.ko
  INSTALL arch/x86/crypto/camellia-aesni-avx-x86_64.ko
  INSTALL arch/x86/crypto/camellia-aesni-avx2.ko
  INSTALL arch/x86/crypto/camellia-x86_64.ko
--
  INSTALL sound/virtio/virtio_snd.ko
  INSTALL sound/x86/snd-hdmi-lpe-audio.ko
  INSTALL sound/xen/snd_xen_front.ko
  INSTALL virt/lib/irqbypass.ko
  DEPMOD  4.18.0-jmaple_rlc-8_4.18.0-553.83.1.el8_10-52beeee4225a+
[TIMER]{MODULES}: 13s
Making Install
sh ./arch/x86/boot/install.sh 4.18.0-jmaple_rlc-8_4.18.0-553.83.1.el8_10-52beeee4225a+ arch/x86/boot/bzImage \
        System.map "/boot"
[TIMER]{INSTALL}: 19s
Checking kABI
kABI check passed
Setting Default Kernel to /boot/vmlinuz-4.18.0-jmaple_rlc-8_4.18.0-553.83.1.el8_10-52beeee4225a+ and Index to 1
Hopefully Grub2.0 took everything ... rebooting after time metrices
[TIMER]{MRPROPER}: 4s
[TIMER]{BUILD}: 1825s
[TIMER]{MODULES}: 13s
[TIMER]{INSTALL}: 19s
[TIMER]{TOTAL} 1866s
Rebooting in 10 seconds

KSelfTests

[jmaple@devbox code]$ ~/workspace/auto_kernel_history_rebuild/Rocky10/rocky10/code/get_kselftest_diff.sh
kselftest.4.18.0-rlc-8_4.18.0-553.81.1.el8_10-ed216b7115b9+.log
206
kselftest.4.18.0-jmaple_rlc-8_4.18.0-553.82.1.el8_10-c3ccfa9bf5f1+.log
206
kselftest.4.18.0-jmaple_fips-8-compliant_4.18.0-553.83.1.el8_10-1696f0+.log
206
kselftest.4.18.0-jmaple_rlc-8_4.18.0-553.83.1.el8_10-52beeee4225a+.log
206
Before: kselftest.4.18.0-jmaple_fips-8-compliant_4.18.0-553.83.1.el8_10-1696f0+.log
After: kselftest.4.18.0-jmaple_rlc-8_4.18.0-553.83.1.el8_10-52beeee4225a+.log
Diff:
No differences found.

jallisonciq and others added 30 commits November 12, 2025 12:56
        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>
Signed-off-by: Jonathan Maple <jmaple@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: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Jeremy Allison <jallison@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Jeremy Allison <jallison@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@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>
Signed-off-by: Jonathan Maple <jmaple@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>
Signed-off-by: Jonathan Maple <jmaple@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>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
…ey() to zeroize keys on exit.

Signed-off-by: Jeremy Allison <jallison@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@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>
Add workflows for pushes and pull requests.

Signed-off-by: Greg Rose <g.v.rose@ciq.com>
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>
Signed-off-by: Jonathan Maple <jmaple@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>
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>
Signed-off-by: Jonathan Maple <jmaple@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>
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>
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>
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>
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>
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>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira roc-2673
commit 3e32552

c->x86_cache_alignment is initialized from c->x86_clflush_size.
However, commit fbf6449 moved c->x86_clflush_size initialization
to later in boot without moving the c->x86_cache_alignment assignment:

  fbf6449 ("x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach")

This presumably left c->x86_cache_alignment set to zero for longer
than it should be.

The result was an oops on 32-bit kernels while accessing a pointer
at 0x20.  The 0x20 came from accessing a structure member at offset
0x10 (buffer->cpumask) from a ZERO_SIZE_PTR=0x10.  kmalloc() can
evidently return ZERO_SIZE_PTR when it's given 0 as its alignment
requirement.

Move the c->x86_cache_alignment initialization to be after
c->x86_clflush_size has an actual value.

    Fixes: fbf6449 ("x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach")
    Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Link: https://lore.kernel.org/r/20231002220045.1014760-1-dave.hansen@linux.intel.com
    (cherry picked from commit 3e32552)
Signed-off-by: Ronnie Sahlberg <rsahlberg@ciq.com>

Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira LE-2183
bug-fix x86/sev-es: Set x86_virt_bits
commit-author Paolo Bonzini <pbonzini@redhat.com>
commit 9a45819

In commit fbf6449 ("x86/sev-es: Set x86_virt_bits to the correct
value straight away, instead of a two-phase approach"), the initialization
of c->x86_phys_bits was moved after this_cpu->c_early_init(c).  This is
incorrect because early_init_amd() expected to be able to reduce the
value according to the contents of CPUID leaf 0x8000001f.

Fortunately, the bug was negated by init_amd()'s call to early_init_amd(),
which does reduce x86_phys_bits in the end.  However, this is very
late in the boot process and, most notably, the wrong value is used for
x86_phys_bits when setting up MTRRs.

To fix this, call get_cpu_address_sizes() as soon as X86_FEATURE_CPUID is
set/cleared, and c->extended_cpuid_level is retrieved.

Fixes: fbf6449 ("x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach")
	Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
	Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
	Cc:stable@vger.kernel.org
Link: https://lore.kernel.org/all/20240131230902.1867092-2-pbonzini%40redhat.com
(cherry picked from commit 9a45819)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
…sizes()

jira LE-2183
bug-fix-prereq x86/sev-es: Set x86_virt_bits
commit-author Borislav Petkov (AMD) <bp@alien8.de>
commit 95bfb35

Drop 'vp_bits_from_cpuid' as it is not really needed.

No functional changes.

	Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
	Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240316120706.4352-1-bp@alien8.de
(cherry picked from commit 95bfb35)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira LE-2183
bug-fix x86/sev-es: Set x86_virt_bits
commit-author Dave Hansen <dave.hansen@linux.intel.com>
commit 2a38e4c

tl;dr: CPUs with CPUID.80000008H but without CPUID.01H:EDX[CLFSH]
will end up reporting cache_line_size()==0 and bad things happen.
Fill in a default on those to avoid the problem.

Long Story:

The kernel dies a horrible death if c->x86_cache_alignment (aka.
cache_line_size() is 0.  Normally, this value is populated from
c->x86_clflush_size.

Right now the code is set up to get c->x86_clflush_size from two
places.  First, modern CPUs get it from CPUID.  Old CPUs that don't
have leaf 0x80000008 (or CPUID at all) just get some sane defaults
from the kernel in get_cpu_address_sizes().

The vast majority of CPUs that have leaf 0x80000008 also get
->x86_clflush_size from CPUID.  But there are oddballs.

Intel Quark CPUs[1] and others[2] have leaf 0x80000008 but don't set
CPUID.01H:EDX[CLFSH], so they skip over filling in ->x86_clflush_size:

	cpuid(0x00000001, &tfms, &misc, &junk, &cap0);
	if (cap0 & (1<<19))
		c->x86_clflush_size = ((misc >> 8) & 0xff) * 8;

So they: land in get_cpu_address_sizes() and see that CPUID has level
0x80000008 and jump into the side of the if() that does not fill in
c->x86_clflush_size.  That assigns a 0 to c->x86_cache_alignment, and
hilarity ensues in code like:

        buffer = kzalloc(ALIGN(sizeof(*buffer), cache_line_size()),
                         GFP_KERNEL);

To fix this, always provide a sane value for ->x86_clflush_size.

Big thanks to Andy Shevchenko for finding and reporting this and also
providing a first pass at a fix. But his fix was only partial and only
worked on the Quark CPUs.  It would not, for instance, have worked on
the QEMU config.

1. https://raw.githubusercontent.com/InstLatx64/InstLatx64/master/GenuineIntel/GenuineIntel0000590_Clanton_03_CPUID.txt
2. You can also get this behavior if you use "-cpu 486,+clzero"
   in QEMU.

[ dhansen: remove 'vp_bits_from_cpuid' reference in changelog
	   because bpetkov brutally murdered it recently. ]

Fixes: fbf6449 ("x86/sev-es: Set x86_virt_bits to the correct value straight away, instead of a two-phase approach")
	Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
	Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
	Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
	Tested-by: Jörn Heusipp <osmanx@heusipp.de>
	Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/all/20240516173928.3960193-1-andriy.shevchenko@linux.intel.com/
Link: https://lore.kernel.org/lkml/5e31cad3-ad4d-493e-ab07-724cfbfaba44@heusipp.de/
Link: https://lore.kernel.org/all/20240517200534.8EC5F33E%40davehans-spike.ostc.intel.com
(cherry picked from commit 2a38e4c)
	Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira LE-3812
commit-author Haiyang Zhang <haiyangz@microsoft.com>
commit 40a1d11

Change the Kconfig dependency, so this driver can be built and run on ARM64
with 4K page size.
16/64K page sizes are not supported yet.

	Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Link: https://lore.kernel.org/r/1715632141-8089-1-git-send-email-haiyangz@microsoft.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 40a1d11)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira LE-3812
commit-author Haiyang Zhang <haiyangz@microsoft.com>
commit 382d174

As defined by the MANA Hardware spec, the queue size for DMA is 4KB
minimal, and power of 2. And, the HWC queue size has to be exactly
4KB.

To support page sizes other than 4KB on ARM64, define the minimal
queue size as a macro separately from the PAGE_SIZE, which we always
assumed it to be 4KB before supporting ARM64.

Also, add MANA specific macros and update code related to size
alignment, DMA region calculations, etc.

	Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
	Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Link: https://lore.kernel.org/r/1718655446-6576-1-git-send-email-haiyangz@microsoft.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 382d174)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
jira LE-3812
commit-author Konstantin Taranov <kotaranov@microsoft.com>
commit e02497f

Use ib_umem_dma_offset() helper to calculate correct dma offset.

Fixes: 0266a17 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
	Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com>
Link: https://lore.kernel.org/r/1709560361-26393-2-git-send-email-kotaranov@linux.microsoft.com
	Signed-off-by: Leon Romanovsky <leon@kernel.org>
(cherry picked from commit e02497f)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
…l page

jira LE-3812
commit-author Long Li <longli@microsoft.com>
commit 4a3b99b

When mapping doorbell page from user-mode, the driver should use the system
page size as this memory is allocated via mmap() from user-mode.

	Cc: stable@vger.kernel.org
Fixes: 0266a17 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
	Signed-off-by: Long Li <longli@microsoft.com>
Link: https://patch.msgid.link/1725030993-16213-2-git-send-email-longli@linuxonhyperv.com
	Signed-off-by: Leon Romanovsky <leon@kernel.org>
(cherry picked from commit 4a3b99b)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
… size

jira LE-3812
commit-author Long Li <longli@microsoft.com>
commit 9e517a8

MANA hardware uses 4k page size. When calculating the page table index,
it should use the hardware page size, not the system page size.

	Cc: stable@vger.kernel.org
Fixes: 0266a17 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
	Signed-off-by: Long Li <longli@microsoft.com>
Link: https://patch.msgid.link/1725030993-16213-1-git-send-email-longli@linuxonhyperv.com
	Signed-off-by: Leon Romanovsky <leon@kernel.org>
(cherry picked from commit 9e517a8)
	Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
Signed-off-by: Shreeya Patel <spatel@ciq.com>
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
@github-actions
Copy link

🔍 Upstream Linux Kernel Commit Check

  • ⚠️ PR commit d72ba758de67 (tipc: Fix use-after-free of kernel socket in cleanup_bearer().) references upstream commit
    6a2fa13312e5 which has been referenced by a Fixes: tag in the upstream
    Linux kernel:
    b04d86fff66b tipc: fix NULL deref in cleanup_bearer() (Eric Dumazet)

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

@jason-rodri
Copy link

This is very interesting: fadaefd
bcm = broadcom I don't think we certified on that hardware, so I think we are good

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.

9 participants