Skip to content

[rocky10_0] History Rebuild to kernel-6.12.0-55.21.1.el10_0 #429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jul 21, 2025

Conversation

PlaidCat
Copy link
Collaborator

  • Download all unprocessed src.rpm
  • for each src,pm
    • Find all commits in changelog up to last known tag ... in this case 6.12.0-55
    • Re-play commits in reverse order (oldest in change log to newest) with git cherry-pick
    • After replay replace ENTIRE code in branch with rpmbuild -bp from corresponding src.rpm.
    • Tag Rebuild branch
  • Use New Local Build with prodman and test (note test results will be different than usual)

Checking Rebuild Commits for potentially missing commits:

kernel-6.12.0-55.21.1.el10_0

[jmaple@devbox kernel-src-tree]$ cat ciq/ciq_backports/kernel-6.12.0-55.21.1.el10_0/rebuild.details.txt
Rebuild_History BUILDABLE
Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50%
Number of commits in upstream range v6.12~1..kernel-mainline: 52012
Number of commits in rpm: 19
Number of commits matched with upstream: 16 (84.21%)
Number of commits in upstream but not in rpm: 51996
Number of commits NOT found in upstream: 3 (15.79%)

Rebuilding Kernel on Branch rocky10_0_rebuild_kernel-6.12.0-55.21.1.el10_0 for kernel-6.12.0-55.21.1.el10_0
Clean Cherry Picks: 16 (100.00%)
Empty Cherry Picks: 0 (0.00%)
_______________________________

__EMPTY COMMITS__________________________

__CHANGES NOT IN UPSTREAM________________
Porting to Rocky Linux 10, debranding and Rocky Linux branding'
Add partial riscv64 support for build root'
Provide basic VisionFive 2 support'

Build

[jmaple@devbox code]$ egrep -B 5 -A 5 "\[TIMER\]|^Starting Build" $(ls -t kbuild* | head -n1)
/mnt/code/kernel-src-tree
no .config file found, moving on
[TIMER]{MRPROPER}: 0s
x86_64 architecture detected, copying config
'configs/kernel-x86_64-rhel.config' -> '.config'
Setting Local Version for build
CONFIG_LOCALVERSION="-rocky10_0_rebuild-fef28841a44f"
Making olddefconfig
--
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
Starting Build
  SYNC    include/config/auto.conf
  GEN     arch/x86/include/generated/asm/orc_hash.h
  WRAP    arch/x86/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/x86/include/generated/uapi/asm/errno.h
  WRAP    arch/x86/include/generated/uapi/asm/fcntl.h
--
  LD [M]  net/qrtr/qrtr.ko
  LD [M]  net/qrtr/qrtr-mhi.ko
  BTF [M] net/qrtr/qrtr-mhi.ko
  BTF [M] net/hsr/hsr.ko
  BTF [M] net/qrtr/qrtr.ko
[TIMER]{BUILD}: 2144s
Making Modules
  SYMLINK /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/build
  INSTALL /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/modules.order
  INSTALL /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/modules.builtin
  INSTALL /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/modules.builtin.modinfo
--
  STRIP   /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/kernel/net/qrtr/qrtr-mhi.ko
  SIGN    /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/kernel/net/qrtr/qrtr-mhi.ko
  SIGN    /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/kernel/net/hsr/hsr.ko
  SIGN    /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+/kernel/net/qrtr/qrtr.ko
  DEPMOD  /lib/modules/6.12.0-rocky10_0_rebuild-fef28841a44f+
[TIMER]{MODULES}: 8s
Making Install
  INSTALL /boot
[TIMER]{INSTALL}: 17s
Checking kABI
Checking kABI
kABI check passed
Setting Default Kernel to /boot/vmlinuz-6.12.0-rocky10_0_rebuild-3381775694c1+ and Index to 2
Hopefully Grub2.0 took everything ... rebooting after time metrices
[TIMER]{MRPROPER}: 0s
[TIMER]{BUILD}: 2144s
[TIMER]{MODULES}: 8s
[TIMER]{INSTALL}: 17s
[TIMER]{TOTAL} 2173s
Rebooting in 10 seconds

KSelfTests

[jmaple@devbox code]$ ls -rt kselftest.*rebuild* | tail -n2 | while read line; do echo $line; grep '^ok ' $line | wc -l ; done
kselftest.6.12.0-rocky10_0_rebuild-3381775694c1+.log
498
kselftest.6.12.0-rocky10_0_rebuild-fef28841a44f+.log
498

PlaidCat added 17 commits July 15, 2025 02:01
jira LE-3564
cve CVE-2025-22036
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Sungjong Seo <[email protected]>
commit 1bb7ff4

When get_block is called with a buffer_head allocated on the stack, such
as do_mpage_readpage, stack corruption due to buffer_head UAF may occur in
the following race condition situation.

     <CPU 0>                      <CPU 1>
mpage_read_folio
  <<bh on stack>>
  do_mpage_readpage
    exfat_get_block
      bh_read
        __bh_read
	  get_bh(bh)
          submit_bh
          wait_on_buffer
                              ...
                              end_buffer_read_sync
                                __end_buffer_read_notouch
                                   unlock_buffer
          <<keep going>>
        ...
      ...
    ...
  ...
<<bh is not valid out of mpage_read_folio>>
   .
   .
another_function
  <<variable A on stack>>
                                   put_bh(bh)
                                     atomic_dec(bh->b_count)
  * stack corruption here *

This patch returns -EAGAIN if a folio does not have buffers when bh_read
needs to be called. By doing this, the caller can fallback to functions
like block_read_full_folio(), create a buffer_head in the folio, and then
call get_block again.

Let's do not call bh_read() with on-stack buffer_head.

Fixes: 11a347f ("exfat: change to get file size from DataLength")
	Cc: [email protected]
	Tested-by: Yeongjin Gil <[email protected]>
	Signed-off-by: Sungjong Seo <[email protected]>
	Reviewed-by: Yuezhang Mo <[email protected]>
	Signed-off-by: Namjae Jeon <[email protected]>
(cherry picked from commit 1bb7ff4)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Przemek Kitszel <[email protected]>
commit c37dd67

Move call to ice_wait_for_fw() from ice_init_dev() into ice_init_hw(),
where it fits better. This requires also to move ice_wait_for_fw()
to ice_common.c.

ice_is_pf_c827() is now used only in ice_common.c, so it could be static.

CC: Arkadiusz Kubalewski <[email protected]>
	Reviewed-by: Marcin Szycik <[email protected]>
	Signed-off-by: Przemek Kitszel <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit c37dd67)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Przemek Kitszel <[email protected]>
commit 4d3f59b

Split ice_init_hw() call out from ice_init_dev(). Such move enables
pulling the former to be even earlier on call path, what would enable
moving ice_adapter init to be between the two (in subsequent commit).
Such move enables ice_adapter to know about number of PFs.

Do the same for ice_deinit_hw(), so the init and deinit calls could
be easily mirrored.
Next commit will rename unrelated goto labels to unroll prefix.

	Reviewed-by: Marcin Szycik <[email protected]>
	Signed-off-by: Przemek Kitszel <[email protected]>
	Reviewed-by: Kalesh AP <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit 4d3f59b)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Przemek Kitszel <[email protected]>
commit 5d5d9c2

Clean up goto labels after previous commit, to conform to single naming
scheme in ice_probe() and ice_init_dev().

	Reviewed-by: Marcin Szycik <[email protected]>
	Signed-off-by: Przemek Kitszel <[email protected]>
	Reviewed-by: Kalesh AP <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit 5d5d9c2)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Przemek Kitszel <[email protected]>
commit fb59a52

Move ice_adapter initialization to be after HW init, so it could use HW
capabilities, like number of PFs. This is needed for devlink-resource
based RSS LUT size management for PF/VF (not in this series).

	Reviewed-by: Marcin Szycik <[email protected]>
	Signed-off-by: Przemek Kitszel <[email protected]>
	Reviewed-by: Kalesh AP <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]> (A Contingent worker at Intel)
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit fb59a52)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit b265725

Use generic devlink PF MSI-X parameter to allow user to change MSI-X
range.

Add notes about this parameters into ice devlink documentation.

	Tested-by: Pucha Himasekhar Reddy <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit b265725)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit 79d97b8

With dynamic approach to alloc MSI-X there is no sense to statically
split MSI-X between PF features.

Splitting was also calculating needed MSI-X. Move this part to separate
function and use as max value.

Remove ICE_ESWITCH_MSIX, as there is no need for additional MSI-X for
switchdev.

	Reviewed-by: Jacob Keller <[email protected]>
	Reviewed-by: Wojciech Drewek <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit 79d97b8)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit ad61cd9

Remove the field to allow having more queues than MSI-X on VSI. As
default the number will be the same, but if there won't be more MSI-X
available VSI can run with at least one MSI-X.

	Reviewed-by: Jacob Keller <[email protected]>
	Reviewed-by: Wojciech Drewek <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit ad61cd9)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit 3e0d3cb

Move responsibility of MSI-X requesting for RDMA feature from ice driver
to irdma driver. It is done to allow simple fallback when there is not
enough MSI-X available.

Change amount of MSI-X used for control from 4 to 1, as it isn't needed
to have more than one MSI-X for this purpose.

	Reviewed-by: Jacob Keller <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit 3e0d3cb)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit a8c2d39

It can be needed to have some MSI-X allocated as static and rest as
dynamic. For example on PF VSI. We want to always have minimum one MSI-X
on it, because of that it is allocated as a static one, rest can be
dynamic if it is supported.

Change the ice_get_irq_res() to allow using static entries if they are
free even if caller wants dynamic one.

Adjust limit values to the new approach. Min and max in limit means the
values that are valid, so decrease max and num_static by one.

Set vsi::irq_dyn_alloc if dynamic allocation is supported.

	Reviewed-by: Jacob Keller <[email protected]>
	Reviewed-by: Wojciech Drewek <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit a8c2d39)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit 87181cd

Implement enable_rdma devlink parameter to allow user to turn RDMA
feature on and off.

It is useful when there is no enough interrupts and user doesn't need
RDMA feature.

	Reviewed-by: Jacob Keller <[email protected]>
	Reviewed-by: Jan Sokolowski <[email protected]>
	Reviewed-by: Przemek Kitszel <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit 87181cd)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit a203163

After implementing pf->msix.max field, base vector for other use cases
(like VFs) can be fixed. This simplify code when changing MSI-X amount
on particular VF, because there is no need to move a base vector.

A fixed base vector allows to reserve vectors from the beginning
instead of from the end, which is also simpler in code.

Store total and rest value in the same struct as max and min for PF.
Move tracking vectors from ice_sriov.c to ice_irq.c as it can be also
use for other none PF use cases (SIOV).

	Tested-by: Rafal Romanowski <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit a203163)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit d67627e

Flow director needs only one MSI-X. Load it before RDMA to save MSI-X
for it.

	Reviewed-by: Jacob Keller <[email protected]>
	Tested-by: Pucha Himasekhar Reddy <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tony Nguyen <[email protected]>
(cherry picked from commit d67627e)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Dan Carpenter <[email protected]>
commit c2ddb61

If pci_alloc_irq_vectors() can't allocate the minimum number of vectors
then it returns -ENOSPC so there is no need to check for that in the
caller.  In fact, because pf->msix.min is an unsigned int, it means that
any negative error codes are type promoted to high positive values and
treated as success.  So here, the "return -ENOMEM;" is unreachable code.
Check for negatives instead.

Now that we're only dealing with error codes, it's easier to propagate
the error code from pci_alloc_irq_vectors() instead of hardcoding
-ENOMEM.

Fixes: 79d97b8 ("ice: remove splitting MSI-X between features")
	Signed-off-by: Dan Carpenter <[email protected]>
	Reviewed-by: Michal Swiatkowski <[email protected]>
Link: https://patch.msgid.link/[email protected]
	Signed-off-by: Jakub Kicinski <[email protected]>
(cherry picked from commit c2ddb61)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Michal Swiatkowski <[email protected]>
commit 80f2ab4

Currently iwdev->rf is allocated in irdma_probe(), but free in
irdma_ib_dealloc_device(). It can be misleading. Move the free to
irdma_remove() to be more obvious.

Freeing in irdma_ib_dealloc_device() leads to KASAN use-after-free
issue. Which can also lead to NULL pointer dereference. Fix this.

irdma_deinit_interrupts() can't be moved before freeing iwdef->rf,
because in this case deinit interrupts will be done before freeing irqs.
The simplest solution is to move kfree(iwdev->rf) to irdma_remove().

Reproducer:
  sudo rmmod irdma

Minified splat(s):
  BUG: KASAN: use-after-free in irdma_remove+0x257/0x2d0 [irdma]
  Call Trace:
   <TASK>
   ? __pfx__raw_spin_lock_irqsave+0x10/0x10
   ? kfree+0x253/0x450
   ? irdma_remove+0x257/0x2d0 [irdma]
   kasan_report+0xed/0x120
   ? irdma_remove+0x257/0x2d0 [irdma]
   irdma_remove+0x257/0x2d0 [irdma]
   auxiliary_bus_remove+0x56/0x80
   device_release_driver_internal+0x371/0x530
   ? kernfs_put.part.0+0x147/0x310
   driver_detach+0xbf/0x180
   bus_remove_driver+0x11b/0x2a0
   auxiliary_driver_unregister+0x1a/0x50
   irdma_exit_module+0x40/0x4c [irdma]

  Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN NOPTI
  KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
  RIP: 0010:ice_free_rdma_qvector+0x2a/0xa0 [ice]
  Call Trace:
   ? ice_free_rdma_qvector+0x2a/0xa0 [ice]
   irdma_remove+0x179/0x2d0 [irdma]
   auxiliary_bus_remove+0x56/0x80
   device_release_driver_internal+0x371/0x530
   ? kobject_put+0x61/0x4b0
   driver_detach+0xbf/0x180
   bus_remove_driver+0x11b/0x2a0
   auxiliary_driver_unregister+0x1a/0x50
   irdma_exit_module+0x40/0x4c [irdma]

	Reported-by: Marcin Szycik <[email protected]>
Closes: https://lore.kernel.org/netdev/[email protected]/
Fixes: 3e0d3cb ("ice, irdma: move interrupts code to irdma")
	Reviewed-by: Marcin Szycik <[email protected]>
	Signed-off-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Tatyana Nikolova <[email protected]>
Link: https://patch.msgid.link/[email protected]
	Signed-off-by: Leon Romanovsky <[email protected]>
(cherry picked from commit 80f2ab4)
	Signed-off-by: Jonathan Maple <[email protected]>
jira LE-3564
Rebuild_History Non-Buildable kernel-6.12.0-55.21.1.el10_0
commit-author Dan Carpenter <[email protected]>
commit 4bcc063

If we don't allocate the MIN number of IRQs then we need to free what
we have and return -ENOMEM.  The problem is this loop is off by one
so it frees an entry that wasn't allocated and it doesn't free the
first entry where i == 0.

Fixes: 3e0d3cb ("ice, irdma: move interrupts code to irdma")
	Signed-off-by: Dan Carpenter <[email protected]>
	Signed-off-by: Tatyana Nikolova <[email protected]>
Link: https://patch.msgid.link/[email protected]
	Reviewed-by: Michal Swiatkowski <[email protected]>
	Signed-off-by: Leon Romanovsky <[email protected]>
(cherry picked from commit 4bcc063)
	Signed-off-by: Jonathan Maple <[email protected]>
Rebuild_History BUILDABLE
Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50%
Number of commits in upstream range v6.12~1..kernel-mainline: 52012
Number of commits in rpm: 19
Number of commits matched with upstream: 16 (84.21%)
Number of commits in upstream but not in rpm: 51996
Number of commits NOT found in upstream: 3 (15.79%)

Rebuilding Kernel on Branch rocky10_0_rebuild_kernel-6.12.0-55.21.1.el10_0 for kernel-6.12.0-55.21.1.el10_0
Clean Cherry Picks: 16 (100.00%)
Empty Cherry Picks: 0 (0.00%)
_______________________________

Full Details Located here:
ciq/ciq_backports/kernel-6.12.0-55.21.1.el10_0/rebuild.details.txt

Includes:
* git commit header above
* Empty Commits with upstream SHA
* RPM ChangeLog Entries that could not be matched

Individual Empty Commit failures contained in the same containing directory.
The git message for empty commits will have the path for the failed commit.
File names are the first 8 characters of the upstream SHA
Copy link

@thefossguy-ciq thefossguy-ciq left a comment

Choose a reason for hiding this comment

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

🚤

@PlaidCat PlaidCat merged commit fef2884 into rocky10_0 Jul 21, 2025
4 checks passed
@PlaidCat PlaidCat deleted the rocky10_0_rebuild branch July 21, 2025 12:45
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.

3 participants