# All Global changes to build and install go here. # Per the below section about __spec_install_pre, any rpm # environment changes that affect %%install need to go # here before the %%install macro is pre-built. # Disable LTO in userspace packages. %global _lto_cflags %{nil} # Option to enable compiling with clang instead of gcc. %bcond_with toolchain_clang %if %{with toolchain_clang} %global toolchain clang %endif # Compile the kernel with LTO (only supported when building with clang). %bcond_with clang_lto %if %{with clang_lto} && %{without toolchain_clang} {error:clang_lto requires --with toolchain_clang} %endif # Cross compile on copr for arm # See https://bugzilla.redhat.com/1879599 %if 0%{?_with_cross_arm:1} %global _target_cpu armv7hl %global _arch arm %global _build_arch arm %global _with_cross 1 %endif # RPM macros strip everything in BUILDROOT, either with __strip # or find-debuginfo.sh. Make use of __spec_install_post override # and save/restore binaries we want to package as unstripped. %define buildroot_unstripped %{_builddir}/root_unstripped %define buildroot_save_unstripped() \ (cd %{buildroot}; cp -rav --parents -t %{buildroot_unstripped}/ %1 || true) \ %{nil} %define __restore_unstripped_root_post \ echo "Restoring unstripped artefacts %{buildroot_unstripped} -> %{buildroot}" \ cp -rav %{buildroot_unstripped}/. %{buildroot}/ \ %{nil} # The kernel's %%install section is special # Normally the %%install section starts by cleaning up the BUILD_ROOT # like so: # # %%__spec_install_pre %%{___build_pre}\ # [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"\ # mkdir -p `dirname "$RPM_BUILD_ROOT"`\ # mkdir "$RPM_BUILD_ROOT"\ # %%{nil} # # But because of kernel variants, the %%build section, specifically # BuildKernel(), moves each variant to its final destination as the # variant is built. This violates the expectation of the %%install # section. As a result we snapshot the current env variables and # purposely leave out the removal section. All global wide changes # should be added above this line otherwise the %%install section # will not see them. %global __spec_install_pre %{___build_pre} # Replace '-' with '_' where needed so that variants can use '-' in # their name. %define uname_suffix() %{lua: local flavour = rpm.expand('%{?1:+%{1}}') flavour = flavour:gsub('-', '_') if flavour ~= '' then print(flavour) end } # This returns the main kernel tied to a debug variant. For example, # kernel-debug is the debug version of kernel, so we return an empty # string. However, kernel-64k-debug is the debug version of kernel-64k, # in this case we need to return "64k", and so on. This is used in # macros below where we need this for some uname based requires. %define uname_variant() %{lua: local flavour = rpm.expand('%{?1:%{1}}') _, _, main, sub = flavour:find("(%w+)-(.*)") if main then print("+" .. main) end } # At the time of this writing (2019-03), RHEL8 packages use w2.xzdio # compression for rpms (xz, level 2). # Kernel has several large (hundreds of mbytes) rpms, they take ~5 mins # to compress by single-threaded xz. Switch to threaded compression, # and from level 2 to 3 to keep compressed sizes close to "w2" results. # # NB: if default compression in /usr/lib/rpm/redhat/macros ever changes, # this one might need tweaking (e.g. if default changes to w3.xzdio, # change below to w4T.xzdio): # # This is disabled on i686 as it triggers oom errors %ifnarch i686 %define _binary_payload w3T.xzdio %endif Summary: The Linux kernel %if 0%{?fedora} %define secure_boot_arch x86_64 %else %define secure_boot_arch x86_64 aarch64 s390x ppc64le %endif # Signing for secure boot authentication %ifarch %{secure_boot_arch} %global signkernel 1 %else %global signkernel 0 %endif # Sign modules on all arches %global signmodules 1 # Compress modules only for architectures that build modules %ifarch noarch %global zipmodules 0 %else %global zipmodules 1 %endif %ifarch x86_64 %global efiuki 1 %else %global efiuki 0 %endif # Default compression algorithm %global compression xz %global compression_flags --compress %global compext xz %if %{zipmodules} %global zipsed -e 's/\.ko$/\.ko.%compext/' # for parallel xz processes, replace with 1 to go back to single process %endif %if 0%{?fedora} %define primary_target fedora %else %define primary_target rhel %endif # # genspec.sh variables # # Include Fedora files %global include_fedora 0 # Include RHEL files %global include_rhel 1 # Provide Patchlist.changelog file %global patchlist_changelog 0 # Set debugbuildsenabled to 1 to build separate base and debug kernels # (on supported architectures). The kernel-debug-* subpackages will # contain the debug kernel. # Set debugbuildsenabled to 0 to not build a separate debug kernel, but # to build the base kernel using the debug configuration. (Specifying # the --with-release option overrides this setting.) %define debugbuildsenabled 1 # define buildid .local %define specversion 5.14.0 %define patchversion 5.14 %define pkgrelease 631 %define kversion 5 %define tarfile_release 5.14.0-631.el9 # This is needed to do merge window version magic %define patchlevel 14 # This allows pkg_release to have configurable %%{?dist} tag %define specrelease 631%{?buildid}%{?dist} # This defines the kabi tarball version %define kabiversion 5.14.0-631.el9 # # End of genspec.sh variables # %define pkg_release %{specrelease} # libexec dir is not used by the linker, so the shared object there # should not be exported to RPM provides %global __provides_exclude_from ^%{_libexecdir}/kselftests # The following build options are enabled by default, but may become disabled # by later architecture-specific checks. These can also be disabled by using # --without in the rpmbuild command, or by forcing these values to 0. # # standard kernel %define with_up %{?_without_up: 0} %{?!_without_up: 1} # kernel PAE (only valid for ARM (lpae)) %define with_pae %{?_without_pae: 0} %{?!_without_pae: 1} # kernel-debug %define with_debug %{?_without_debug: 0} %{?!_without_debug: 1} # kernel-zfcpdump (s390 specific kernel for zfcpdump) %define with_zfcpdump %{?_without_zfcpdump: 0} %{?!_without_zfcpdump: 1} # kernel-64k (aarch64 kernel with 64K page_size) %define with_arm64_64k %{?_without_arm64_64k: 0} %{?!_without_arm64_64k: 1} # kernel-rt (x86_64 and aarch64 only PREEMPT_RT enabled kernel) %define with_realtime %{?_without_realtime: 0} %{?!_without_realtime: 1} # kernel-rt-64k (aarch64 RT kernel with 64K page_size) %define with_realtime_arm64_64k %{?_without_realtime_arm64_64k: 0} %{?!_without_realtime_arm64_64k: 1} # kernel-doc %define with_doc %{?_without_doc: 0} %{?!_without_doc: 1} # kernel-headers %define with_headers %{?_without_headers: 0} %{?!_without_headers: 1} %define with_cross_headers %{?_without_cross_headers: 0} %{?!_without_cross_headers: 1} # perf %define with_perf %{?_without_perf: 0} %{?!_without_perf: 1} # tools %define with_tools %{?_without_tools: 0} %{?!_without_tools: 1} # kernel-debuginfo %define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1} # kernel-abi-stablelists %define with_kernel_abi_stablelists %{?_without_kernel_abi_stablelists: 0} %{?!_without_kernel_abi_stablelists: 1} # internal samples and selftests %define with_selftests %{?_without_selftests: 0} %{?!_without_selftests: 1} # # Additional options for user-friendly one-off kernel building: # # Only build the base kernel (--with baseonly): %define with_baseonly %{?_with_baseonly: 1} %{?!_with_baseonly: 0} # Only build the pae kernel (--with paeonly): %define with_paeonly %{?_with_paeonly: 1} %{?!_with_paeonly: 0} # Only build the debug kernel (--with dbgonly): %define with_dbgonly %{?_with_dbgonly: 1} %{?!_with_dbgonly: 0} # Only build the realtime kernel (--with rtonly): %define with_rtonly %{?_with_rtonly: 1} %{?!_with_rtonly: 0} # Control whether we perform a compat. check against published ABI. %define with_kabichk %{?_without_kabichk: 0} %{?!_without_kabichk: 1} # Temporarily disable kabi checks until RC. %define with_kabichk 0 # Control whether we perform a compat. check against DUP ABI. %define with_kabidupchk %{?_with_kabidupchk: 1} %{?!_with_kabidupchk: 0} # # Control whether to run an extensive DWARF based kABI check. # Note that this option needs to have baseline setup in SOURCE300. %define with_kabidwchk %{?_without_kabidwchk: 0} %{?!_without_kabidwchk: 1} %define with_kabidw_base %{?_with_kabidw_base: 1} %{?!_with_kabidw_base: 0} # # Control whether to install the vdso directories. %define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1} # # should we do C=1 builds with sparse %define with_sparse %{?_with_sparse: 1} %{?!_with_sparse: 0} # # Cross compile requested? %define with_cross %{?_with_cross: 1} %{?!_with_cross: 0} # # build a release kernel on rawhide %define with_release %{?_with_release: 1} %{?!_with_release: 0} # verbose build, i.e. no silent rules and V=1 %define with_verbose %{?_with_verbose: 1} %{?!_with_verbose: 0} # # check for mismatched config options %define with_configchecks %{?_without_configchecks: 0} %{?!_without_configchecks: 1} # # gcov support %define with_gcov %{?_with_gcov:1}%{?!_with_gcov:0} # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} %if 0%{?fedora} # Kernel headers are being split out into a separate package %define with_headers 0 %define with_cross_headers 0 # no stablelist %define with_kernel_abi_stablelists 0 # Fedora builds these separately %define with_perf 0 %define with_tools 0 %endif %if %{with_verbose} %define make_opts V=1 %else %define make_opts -s %endif %if %{with toolchain_clang} %ifarch s390x ppc64le %global llvm_ias 0 %else %global llvm_ias 1 %endif %global clang_make_opts HOSTCC=clang CC=clang LLVM_IAS=%{llvm_ias} %if %{with clang_lto} %global clang_make_opts %{clang_make_opts} LD=ld.lld HOSTLD=ld.lld AR=llvm-ar NM=llvm-nm HOSTAR=llvm-ar HOSTNM=llvm-nm %endif %global make_opts %{make_opts} %{clang_make_opts} %endif # turn off debug kernel and kabichk for gcov builds %if %{with_gcov} %define with_debug 0 %define with_kabichk 0 %define with_kabidupchk 0 %define with_kabidwchk 0 %define with_kabidw_base 0 %define with_kernel_abi_stablelists 0 %endif # turn off kABI DWARF-based check if we're generating the base dataset %if %{with_kabidw_base} %define with_kabidwchk 0 %endif %define make_target bzImage %define image_install_path boot %define KVERREL %{version}-%{release}.%{_target_cpu} %define KVERREL_RE %(echo %KVERREL | sed 's/+/[+]/g') %define hdrarch %_target_cpu %define asmarch %_target_cpu %if 0%{!?nopatches:1} %define nopatches 0 %endif %if %{with_vanilla} %define nopatches 1 %endif %if %{with_release} %define debugbuildsenabled 1 %endif %if !%{with_debuginfo} %define _enable_debug_packages 0 %endif %define debuginfodir /usr/lib/debug # Needed because we override almost everything involving build-ids # and debuginfo generation. Currently we rely on the old alldebug setting. %global _build_id_links alldebug # kernel PAE is only built on ARMv7 %ifnarch armv7hl %define with_pae 0 %endif # RT kernel is only built on x86_64 and aarch64 %ifnarch x86_64 aarch64 %define with_realtime 0 %endif # if requested, only build base kernel %if %{with_baseonly} %define with_pae 0 %define with_debug 0 %define with_realtime 0 %define with_vdso_install 0 %define with_perf 0 %define with_tools 0 %define with_kernel_abi_stablelists 0 %define with_selftests 0 %define with_cross 0 %define with_cross_headers 0 %endif # if requested, only build pae kernel %if %{with_paeonly} %define with_up 0 %define with_debug 0 %define with_realtime 0 %endif # if requested, only build debug kernel %if %{with_dbgonly} %define with_up 0 %define with_realtime 0 %define with_vdso_install 0 %define with_perf 0 %define with_tools 0 %define with_kernel_abi_stablelists 0 %define with_selftests 0 %define with_cross 0 %define with_cross_headers 0 %endif # if requested, only build realtime kernel %if %{with_rtonly} %define with_up 0 %define with_pae 0 %define with_debug 0 %define with_vdso_install 0 %define with_perf 0 %define with_tools 0 %define with_kernel_abi_stablelists 0 %define with_selftests 0 %define with_cross 0 %define with_cross_headers 0 %endif # turn off kABI DUP check and DWARF-based check if kABI check is disabled %if !%{with_kabichk} %define with_kabidupchk 0 %define with_kabidwchk 0 %endif %if %{with_vdso_install} %define use_vdso 1 %endif %ifnarch noarch %define with_kernel_abi_stablelists 0 %endif # Overrides for generic default options # only package docs noarch %ifnarch noarch %define with_doc 0 %define doc_build_fail true %endif %if 0%{?fedora} # don't do debug builds on anything but i686 and x86_64 %ifnarch i686 x86_64 %define with_debug 0 %endif %endif # don't build noarch kernels or headers (duh) %ifarch noarch %define with_up 0 %define with_realtime 0 %define with_headers 0 %define with_cross_headers 0 %define with_tools 0 %define with_perf 0 %define with_selftests 0 %define with_debug 0 %define all_arch_configs kernel-%{version}-*.config %endif # sparse blows up on ppc %ifnarch ppc64le %define with_sparse 0 %endif # zfcpdump mechanism is s390 only %ifnarch s390x %define with_zfcpdump 0 %endif # 64k variant only for aarch64 %ifnarch aarch64 %define with_arm64_64k 0 %define with_realtime_arm64_64k 0 %endif %if 0%{?fedora} # This is not for Fedora %define with_zfcpdump 0 %endif # Per-arch tweaks %ifarch i686 %define asmarch x86 %define hdrarch i386 %define all_arch_configs kernel-%{version}-i?86*.config %define kernel_image arch/x86/boot/bzImage %endif %ifarch x86_64 %define asmarch x86 %define all_arch_configs kernel-%{version}-x86_64*.config %define kernel_image arch/x86/boot/bzImage %endif %ifarch ppc64le %define asmarch powerpc %define hdrarch powerpc %define make_target vmlinux %define kernel_image vmlinux %define kernel_image_elf 1 %define use_vdso 0 %define all_arch_configs kernel-%{version}-ppc64le*.config %endif %ifarch s390x %define asmarch s390 %define hdrarch s390 %define all_arch_configs kernel-%{version}-s390x.config %define kernel_image arch/s390/boot/bzImage %define vmlinux_decompressor arch/s390/boot/compressed/vmlinux %endif %ifarch %{arm} %define all_arch_configs kernel-%{version}-arm*.config %define skip_nonpae_vdso 1 %define asmarch arm %define hdrarch arm %define make_target bzImage %define kernel_image arch/arm/boot/zImage # http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091404.html %define kernel_mflags KALLSYMS_EXTRA_PASS=1 # we only build headers/perf/tools on the base arm arches # just like we used to only build them on i386 for x86 %ifnarch armv7hl %define with_headers 0 %define with_cross_headers 0 %endif # These currently don't compile on armv7 %define with_selftests 0 %endif %ifarch aarch64 %define all_arch_configs kernel-%{version}-aarch64*.config %define asmarch arm64 %define hdrarch arm64 %define make_target vmlinuz.efi %define kernel_image arch/arm64/boot/vmlinuz.efi %endif # Should make listnewconfig fail if there's config options # printed out? %if %{nopatches} %define with_configchecks 0 %endif # To temporarily exclude an architecture from being built, add it to # %%nobuildarches. Do _NOT_ use the ExclusiveArch: line, because if we # don't build kernel-headers then the new build system will no longer let # us use the previous build of that package -- it'll just be completely AWOL. # Which is a BadThing(tm). # We only build kernel-headers on the following... %if 0%{?fedora} %define nobuildarches i386 %else %define nobuildarches i386 i686 %{arm} %endif %ifarch %nobuildarches # disable BuildKernel commands %define with_up 0 %define with_debug 0 %define with_pae 0 %define with_zfcpdump 0 %define with_arm64_64k 0 %define with_realtime 0 %define with_realtime_arm64_64k 0 %define with_debuginfo 0 %define with_perf 0 %define with_tools 0 %define with_selftests 0 %define _enable_debug_packages 0 %endif # Architectures we build tools/cpupower on %if 0%{?fedora} %define cpupowerarchs %{ix86} x86_64 ppc64le %{arm} aarch64 %else %define cpupowerarchs i686 x86_64 ppc64le aarch64 %endif %if 0%{?use_vdso} %if 0%{?skip_nonpae_vdso} %define _use_vdso 0 %else %define _use_vdso 1 %endif %else %define _use_vdso 0 %endif # If build of debug packages is disabled, we need to know if we want to create # meta debug packages or not, after we define with_debug for all specific cases # above. So this must be at the end here, after all cases of with_debug or not. %define with_debug_meta 0 %if !%{debugbuildsenabled} %if %{with_debug} %define with_debug_meta 1 %endif %define with_debug 0 %endif # # Packages that need to be installed before the kernel is, because the %%post # scripts use them. # %define kernel_prereq coreutils, systemd >= 203-2, /usr/bin/kernel-install %define initrd_prereq dracut >= 027 Name: kernel License: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-2-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-only WITH Linux-syscall-note) OR CDDL-1.0) AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND ((GPL-2.0-only WITH Linux-syscall-note) OR MIT) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR BSD-3-Clause) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR MIT) AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-Clear AND GFDL-1.1-no-invariants-or-later AND GPL-1.0-or-later AND (GPL-1.0-or-later OR BSD-3-Clause) AND (GPL-1.0-or-later WITH Linux-syscall-note) AND GPL-2.0-only AND (GPL-2.0-only OR Apache-2.0) AND (GPL-2.0-only OR BSD-2-Clause) AND (GPL-2.0-only OR BSD-3-Clause) AND (GPL-2.0-only OR CDDL-1.0) AND (GPL-2.0-only OR GFDL-1.1-no-invariants-or-later) AND (GPL-2.0-only OR GFDL-1.2-no-invariants-only) AND (GPL-2.0-only WITH Linux-syscall-note) AND GPL-2.0-or-later AND (GPL-2.0-or-later OR BSD-2-Clause) AND (GPL-2.0-or-later OR BSD-3-Clause) AND (GPL-2.0-or-later OR CC-BY-4.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND ISC AND LGPL-2.0-or-later AND (LGPL-2.0-or-later OR BSD-2-Clause) AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND LGPL-2.1-only AND (LGPL-2.1-only OR BSD-2-Clause) AND (LGPL-2.1-only WITH Linux-syscall-note) AND LGPL-2.1-or-later AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND (Linux-OpenIB OR GPL-2.0-only) AND (Linux-OpenIB OR GPL-2.0-only OR BSD-2-Clause) AND Linux-man-pages-copyleft AND MIT AND (MIT OR GPL-2.0-only) AND (MIT OR GPL-2.0-or-later) AND (MIT OR LGPL-2.1-only) AND (MPL-1.1 OR GPL-2.0-only) AND (X11 OR GPL-2.0-only) AND (X11 OR GPL-2.0-or-later) AND Zlib AND (copyleft-next-0.3.1 OR GPL-2.0-or-later) URL: https://www.kernel.org/ Version: %{specversion} Release: %{pkg_release} # DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. # SET %%nobuildarches (ABOVE) INSTEAD %if 0%{?fedora} ExclusiveArch: noarch x86_64 s390x %{arm} aarch64 ppc64le %else ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le %endif ExclusiveOS: Linux %ifnarch %{nobuildarches} Requires: kernel-core-uname-r = %{KVERREL} Requires: kernel-modules-uname-r = %{KVERREL} Requires: kernel-modules-core-uname-r = %{KVERREL} Provides: installonlypkg(kernel) %endif # # List the packages used during the kernel build # BuildRequires: kmod, bash, coreutils, tar, git-core, which BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk, %compression BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex, gcc-c++ BuildRequires: net-tools, hostname, bc, elfutils-devel BuildRequires: dwarves BuildRequires: python3-devel BuildRequires: gcc-plugin-devel BuildRequires: kernel-rpm-macros >= 185-9 # glibc-static is required for a consistent build environment (specifically # CONFIG_CC_CAN_LINK_STATIC=y). BuildRequires: glibc-static %if %{with_headers} BuildRequires: rsync %endif %if %{with_doc} BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme, python3-pyyaml %endif %if %{with_sparse} BuildRequires: sparse %endif %if %{with_perf} BuildRequires: zlib-devel binutils-devel newt-devel perl(ExtUtils::Embed) bison flex xz-devel BuildRequires: audit-libs-devel python3-setuptools BuildRequires: java-devel BuildRequires: libbabeltrace-devel BuildRequires: libtraceevent-devel %ifnarch %{arm} s390x BuildRequires: numactl-devel %endif %ifarch aarch64 BuildRequires: opencsd-devel >= 1.2.1 %endif %endif %if %{with_tools} BuildRequires: gettext ncurses-devel BuildRequires: libcap-devel libcap-ng-devel # The following are rtla requirements BuildRequires: python3-docutils BuildRequires: libtraceevent-devel BuildRequires: libtracefs-devel BuildRequires: libbpf-devel BuildRequires: bpftool BuildRequires: clang %ifnarch s390x BuildRequires: pciutils-devel %endif %ifarch i686 x86_64 BuildRequires: libnl3-devel %endif %endif %if %{with_tools} || %{signmodules} || %{signkernel} BuildRequires: openssl-devel %endif %if %{with_selftests} BuildRequires: clang llvm fuse-devel zlib-devel binutils-devel python3-docutils %ifarch x86_64 BuildRequires: lld %endif %ifnarch %{arm} BuildRequires: numactl-devel %endif BuildRequires: libcap-devel libcap-ng-devel rsync libmnl-devel %endif BuildConflicts: rhbuildsys(DiskFree) < 500Mb %if %{with_debuginfo} BuildRequires: rpm-build, elfutils BuildConflicts: rpm < 4.13.0.1-19 BuildConflicts: dwarves < 1.13 # Most of these should be enabled after more investigation %undefine _include_minidebuginfo %undefine _find_debuginfo_dwz_opts %undefine _unique_build_ids %undefine _unique_debug_names %undefine _unique_debug_srcs %undefine _debugsource_packages %undefine _debuginfo_subpackages # Remove -q option below to provide 'extracting debug info' messages %global _find_debuginfo_opts -r -q %global _missing_build_ids_terminate_build 1 %global _no_recompute_build_ids 1 %endif %if %{with_kabidwchk} || %{with_kabidw_base} BuildRequires: kabi-dw %endif %if %{signkernel}%{signmodules} BuildRequires: openssl %if %{signkernel} # ELN uses Fedora signing process, so exclude %if 0%{?rhel}%{?centos} && !0%{?eln} BuildRequires: system-sb-certs %endif %ifarch x86_64 aarch64 BuildRequires: nss-tools BuildRequires: pesign >= 0.10-4 %endif %endif %endif %if %{with_cross} BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu %define cross_opts CROSS_COMPILE=%{_build_arch}-linux-gnu- %define __strip %{_build_arch}-linux-gnu-strip %endif # These below are required to build man pages %if %{with_perf} BuildRequires: xmlto %endif %if %{with_perf} || %{with_tools} BuildRequires: asciidoc %endif %if %{with toolchain_clang} BuildRequires: clang %endif %if %{with clang_lto} BuildRequires: llvm BuildRequires: lld %endif %if %{efiuki} BuildRequires: dracut >= 057-79.git20241127.el9 # For dracut UEFI uki binaries BuildRequires: binutils # For the initrd BuildRequires: lvm2 # For systemd-stub BuildRequires: systemd-boot-unsigned # For systemd-pcrphase BuildRequires: systemd-udev >= 252-1 # For systemd-repart BuildRequires: xfsprogs e2fsprogs dosfstools # For UKI kernel cmdline addons BuildRequires: systemd-ukify # For TPM operations in UKI initramfs BuildRequires: tpm2-tools # For UKI sb cert %if 0%{?centos} BuildRequires: centos-sb-certs >= 9.0-23 %else BuildRequires: redhat-sb-certs >= 9.4-0.1 %endif %endif # Because this is the kernel, it's hard to get a single upstream URL # to represent the base without needing to do a bunch of patching. This # tarball is generated from a src-git tree. If you want to see the # exact git commit you can run # # xzcat -qq ${TARBALL} | git get-tar-commit-id Source0: linux-%{tarfile_release}.tar.xz Source1: Makefile.rhelver Source2: kernel.changelog %if %{signkernel} # Name of the packaged file containing signing key %ifarch ppc64le %define signing_key_filename kernel-signing-ppc.cer %endif %ifarch s390x %define signing_key_filename kernel-signing-s390.cer %endif %define secureboot_ca_0 %{_datadir}/pki/sb-certs/secureboot-ca-%{_arch}.cer %define secureboot_key_0 %{_datadir}/pki/sb-certs/secureboot-kernel-%{_arch}.cer %if 0%{?centos} %define pesign_name_0 centossecureboot201 %else %ifarch x86_64 aarch64 %define pesign_name_0 redhatsecureboot801 %endif %ifarch s390x %define pesign_name_0 redhatsecureboot302 %endif %ifarch ppc64le %define pesign_name_0 redhatsecureboot701 %endif %endif # signkernel %endif Source20: mod-denylist.sh Source21: mod-sign.sh Source22: parallel_xz.sh %define modsign_cmd %{SOURCE21} %if 0%{?include_rhel} Source23: x509.genkey.rhel Source24: kernel-aarch64-rhel.config Source25: kernel-aarch64-debug-rhel.config Source26: mod-extra.list.rhel Source27: kernel-ppc64le-rhel.config Source28: kernel-ppc64le-debug-rhel.config Source29: kernel-s390x-rhel.config Source30: kernel-s390x-debug-rhel.config Source31: kernel-s390x-zfcpdump-rhel.config Source32: kernel-x86_64-rhel.config Source33: kernel-x86_64-debug-rhel.config Source34: filter-x86_64.sh.rhel Source35: filter-armv7hl.sh.rhel Source37: filter-aarch64.sh.rhel Source38: filter-ppc64le.sh.rhel Source39: filter-s390x.sh.rhel Source40: filter-modules.sh.rhel Source41: x509.genkey.centos # ARM64 64K page-size kernel config Source42: kernel-aarch64-64k-rhel.config Source43: kernel-aarch64-64k-debug-rhel.config Source44: kernel-x86_64-rt-rhel.config Source45: kernel-x86_64-rt-debug-rhel.config Source46: kernel-aarch64-rt-rhel.config Source47: kernel-aarch64-rt-debug-rhel.config Source48: kernel-aarch64-rt-64k-rhel.config Source49: kernel-aarch64-rt-64k-debug-rhel.config %endif %if 0%{?include_fedora} Source50: x509.genkey.fedora Source51: mod-extra.list.fedora Source52: kernel-aarch64-fedora.config Source53: kernel-aarch64-debug-fedora.config Source54: kernel-armv7hl-fedora.config Source55: kernel-armv7hl-debug-fedora.config Source56: kernel-armv7hl-lpae-fedora.config Source57: kernel-armv7hl-lpae-debug-fedora.config Source60: kernel-ppc64le-fedora.config Source61: kernel-ppc64le-debug-fedora.config Source62: kernel-s390x-fedora.config Source63: kernel-s390x-debug-fedora.config Source64: kernel-x86_64-fedora.config Source65: kernel-x86_64-debug-fedora.config Source67: filter-x86_64.sh.fedora Source68: filter-armv7hl.sh.fedora Source70: filter-aarch64.sh.fedora Source71: filter-ppc64le.sh.fedora Source72: filter-s390x.sh.fedora Source73: filter-modules.sh.fedora %endif Source75: partial-kgcov-snip.config Source80: generate_all_configs.sh Source81: process_configs.sh Source82: update_scripts.sh Source84: mod-internal.list Source85: mod-partner.list Source100: rheldup3.x509 Source101: rhelkpatch1.x509 Source102: rhelimaca1.x509 Source103: rhelima.x509 Source104: rhelima_centos.x509 Source105: nvidiagpuoot001.x509 %if 0%{?centos} %define ima_signing_cert %{SOURCE104} %else %define ima_signing_cert %{SOURCE103} %endif %define ima_cert_name ima.cer Source150: dracut-virt.conf Source151: uki_create_addons.py Source152: uki_addons.json # Temporary use redhatsecureboot504 for x86 UKI, see RHEL-122230 Source153: redhatsecureboot504.cer Source200: check-kabi Source201: Module.kabi_aarch64 Source202: Module.kabi_ppc64le Source203: Module.kabi_s390x Source204: Module.kabi_x86_64 Source210: Module.kabi_dup_aarch64 Source211: Module.kabi_dup_ppc64le Source212: Module.kabi_dup_s390x Source213: Module.kabi_dup_x86_64 Source300: kernel-abi-stablelists-%{kabiversion}.tar.bz2 Source301: kernel-kabi-dw-%{kabiversion}.tar.bz2 # Sources for kernel-tools Source2000: cpupower.service Source2001: cpupower.config Source2002: kvm_stat.logrotate # Some people enjoy building customized kernels from the dist-git in Fedora and # use this to override configuration options. One day they may all use the # source tree, but in the mean time we carry this to support the legacy workflow Source3000: merge.pl Source3001: kernel-local %if %{patchlist_changelog} Source3002: Patchlist.changelog %endif Source4000: README.rst Source4001: rpminspect.yaml Source4002: gating.yaml ## Patches needed for building this package %if !%{nopatches} Patch1: patch-%{patchversion}-redhat.patch %endif # empty final patch to facilitate testing of kernel patches Patch999999: linux-kernel-test.patch # END OF PATCH DEFINITIONS %description The kernel meta package # # This macro does requires, provides, conflicts, obsoletes for a kernel package. # %%kernel_reqprovconf [-o] # It uses any kernel__conflicts and kernel__obsoletes # macros defined above. # %define kernel_reqprovconf(o) \ %if %{-o:0}%{!-o:1}\ Provides: kernel = %{specversion}-%{pkg_release}\ %endif\ Provides: kernel-%{_target_cpu} = %{specversion}-%{pkg_release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires(pre): %{kernel_prereq}\ Requires(pre): %{initrd_prereq}\ Requires(pre): ((linux-firmware >= 20150904-56.git6ebf5d57) if linux-firmware)\ Recommends: linux-firmware\ Requires(preun): systemd >= 200\ Conflicts: xfsprogs < 4.3.0-1\ Conflicts: xorg-x11-drv-vmmouse < 13.0.99\ %{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\ %{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\ %{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\ # We can't let RPM do the dependencies automatic because it'll then pick up\ # a correct but undesirable perl dependency from the module headers which\ # isn't required for the kernel proper to function\ AutoReq: no\ AutoProv: yes\ %{nil} %package doc Summary: Various documentation bits found in the kernel source Group: Documentation %description doc This package contains documentation files from the kernel source. Various bits of information about the Linux kernel and the device drivers shipped with it are documented in these files. You'll want to install this package if you need a reference to the options that can be passed to Linux kernel modules at load time. %package headers Summary: Header files for the Linux kernel for use by glibc Obsoletes: glibc-kernheaders < 3.0-46 Provides: glibc-kernheaders = 3.0-46 %description headers Kernel-headers includes the C header files that specify the interface between the Linux kernel and userspace libraries and programs. The header files define structures and constants that are needed for building most standard programs and are also needed for rebuilding the glibc package. %package cross-headers Summary: Header files for the Linux kernel for use by cross-glibc %description cross-headers Kernel-cross-headers includes the C header files that specify the interface between the Linux kernel and userspace libraries and programs. The header files define structures and constants that are needed for building most standard programs and are also needed for rebuilding the cross-glibc package. %package debuginfo-common-%{_target_cpu} Summary: Kernel source files used by %{name}-debuginfo packages Provides: installonlypkg(kernel) %description debuginfo-common-%{_target_cpu} This package is required by %{name}-debuginfo subpackages. It provides the kernel source files common to all builds. %if %{with_perf} %package -n perf Summary: Performance monitoring for the Linux kernel Requires: bzip2 %description -n perf This package contains the perf tool, which enables performance monitoring of the Linux kernel. %package -n perf-debuginfo Summary: Debug information for package perf Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} AutoReqProv: no %description -n perf-debuginfo This package provides debug information for the perf package. # Note that this pattern only works right to match the .build-id # symlinks because of the trailing nonmatching alternation and # the leading .*, because of find-debuginfo.sh's buggy handling # of matching the pattern against the symlinks file. %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|.*%%{_libdir}/libperf-jvmti.so(\.debug)?|XXX' -o perf-debuginfo.list} %package -n python3-perf Summary: Python bindings for apps which will manipulate perf events %description -n python3-perf The python3-perf package contains a module that permits applications written in the Python programming language to use the interface to manipulate perf events. %package -n python3-perf-debuginfo Summary: Debug information for package perf python bindings Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} AutoReqProv: no %description -n python3-perf-debuginfo This package provides debug information for the perf python bindings. # the python_sitearch macro should already be defined from above %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{python3_sitearch}/perf.*so(\.debug)?|XXX' -o python3-perf-debuginfo.list} %package -n libperf Summary: The perf library from kernel source %description -n libperf This package contains the kernel source perf library. %package -n libperf-devel Summary: Developement files for the perf library from kernel source Requires: libperf = %{version}-%{release} %description -n libperf-devel This package includes libraries and header files needed for development of applications which use perf library from kernel source. %package -n libperf-debuginfo Summary: Debug information for package libperf Group: Development/Debug Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} AutoReqProv: no %description -n libperf-debuginfo This package provides debug information for the libperf package. # Note that this pattern only works right to match the .build-id # symlinks because of the trailing nonmatching alternation and # the leading .*, because of find-debuginfo.sh's buggy handling # of matching the pattern against the symlinks file. %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_libdir}/libperf.so.*(\.debug)?|XXX' -o libperf-debuginfo.list} # with_perf %endif %if %{with_tools} %package -n kernel-tools Summary: Assortment of tools for the Linux kernel %ifarch %{cpupowerarchs} Provides: cpupowerutils = 1:009-0.6.p1 Obsoletes: cpupowerutils < 1:009-0.6.p1 Provides: cpufreq-utils = 1:009-0.6.p1 Provides: cpufrequtils = 1:009-0.6.p1 Obsoletes: cpufreq-utils < 1:009-0.6.p1 Obsoletes: cpufrequtils < 1:009-0.6.p1 Obsoletes: cpuspeed < 1:1.5-16 Requires: kernel-tools-libs = %{version}-%{release} %endif %define __requires_exclude ^%{_bindir}/python %description -n kernel-tools This package contains the tools/ directory from the kernel source and the supporting documentation. %package -n kernel-tools-libs Summary: Libraries for the kernels-tools %description -n kernel-tools-libs This package contains the libraries built from the tools/ directory from the kernel source. %package -n kernel-tools-libs-devel Summary: Assortment of tools for the Linux kernel Requires: kernel-tools = %{version}-%{release} %ifarch %{cpupowerarchs} Provides: cpupowerutils-devel = 1:009-0.6.p1 Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 %endif Requires: kernel-tools-libs = %{version}-%{release} Provides: kernel-tools-devel %description -n kernel-tools-libs-devel This package contains the development files for the tools/ directory from the kernel source. %package -n kernel-tools-debuginfo Summary: Debug information for package kernel-tools Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} AutoReqProv: no %description -n kernel-tools-debuginfo This package provides debug information for package kernel-tools. # Note that this pattern only works right to match the .build-id # symlinks because of the trailing nonmatching alternation and # the leading .*, because of find-debuginfo.sh's buggy handling # of matching the pattern against the symlinks file. %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_bindir}/bootconfig(\.debug)?|.*%%{_bindir}/centrino-decode(\.debug)?|.*%%{_bindir}/powernow-k8-decode(\.debug)?|.*%%{_bindir}/cpupower(\.debug)?|.*%%{_libdir}/libcpupower.*|.*%%{_bindir}/turbostat(\.debug)?|.*%%{_bindir}/x86_energy_perf_policy(\.debug)?|.*%%{_bindir}/tmon(\.debug)?|.*%%{_bindir}/lsgpio(\.debug)?|.*%%{_bindir}/gpio-hammer(\.debug)?|.*%%{_bindir}/gpio-event-mon(\.debug)?|.*%%{_bindir}/gpio-watch(\.debug)?|.*%%{_bindir}/iio_event_monitor(\.debug)?|.*%%{_bindir}/iio_generic_buffer(\.debug)?|.*%%{_bindir}/lsiio(\.debug)?|.*%%{_bindir}/intel-speed-select(\.debug)?|.*%%{_bindir}/page_owner_sort(\.debug)?|.*%%{_bindir}/slabinfo(\.debug)?|.*%%{_sbindir}/intel_sdsi(\.debug)?|XXX' -o kernel-tools-debuginfo.list} %package -n rtla Summary: Real-Time Linux Analysis tools Requires: libtraceevent Requires: libtracefs Requires: libbpf %ifarch %{cpupowerarchs} Requires: kernel-tools-libs = %{version}-%{release} %endif %description -n rtla The rtla meta-tool includes a set of commands that aims to analyze the real-time properties of Linux. Instead of testing Linux as a black box, rtla leverages kernel tracing capabilities to provide precise information about the properties and root causes of unexpected results. %package -n rv Summary: RV: Runtime Verification %description -n rv Runtime Verification (RV) is a lightweight (yet rigorous) method that complements classical exhaustive verification techniques (such as model checking and theorem proving) with a more practical approach for complex systems. The rv tool is the interface for a collection of monitors that aim analysing the logical and timing behavior of Linux. # with_tools %endif %if %{with_selftests} %package selftests-internal Summary: Kernel samples and selftests Requires: binutils, bpftool, iproute-tc, nmap-ncat, python3, fuse-libs, keyutils %description selftests-internal Kernel sample programs and selftests. # Note that this pattern only works right to match the .build-id # symlinks because of the trailing nonmatching alternation and # the leading .*, because of find-debuginfo.sh's buggy handling # of matching the pattern against the symlinks file. %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_libexecdir}/(ksamples|kselftests)/.*|XXX' -o selftests-debuginfo.list} %define __requires_exclude ^liburandom_read.so.*$ # with_selftests %endif %define kernel_gcov_package() \ %package %{?1:%{1}-}gcov\ Summary: gcov graph and source files for coverage data collection.\ %description %{?1:%{1}-}gcov\ %{?1:%{1}-}gcov includes the gcov graph and source files for gcov coverage collection.\ %{nil} %package -n kernel-abi-stablelists Summary: The Red Hat Enterprise Linux kernel ABI symbol stablelists AutoReqProv: no %description -n kernel-abi-stablelists The kABI package contains information pertaining to the Red Hat Enterprise Linux kernel ABI, including lists of kernel symbols that are needed by external Linux kernel modules, and a yum plugin to aid enforcement. %if %{with_kabidw_base} %package kernel-kabidw-base-internal Summary: The baseline dataset for kABI verification using DWARF data Group: System Environment/Kernel AutoReqProv: no %description kernel-kabidw-base-internal The package contains data describing the current ABI of the Red Hat Enterprise Linux kernel, suitable for the kabi-dw tool. %endif # # This macro creates a kernel--debuginfo package. # %%kernel_debuginfo_package # # Explanation of the find_debuginfo_opts: We build multiple kernels (debug # pae etc.) so the regex filters those kernels appropriately. We also # have to package several binaries as part of kernel-devel but getting # unique build-ids is tricky for these userspace binaries. We don't really # care about debugging those so we just filter those out and remove it. %define kernel_debuginfo_package() \ %package %{?1:%{1}-}debuginfo\ Summary: Debug information for package %{name}%{?1:-%{1}}\ Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}\ Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{version}-%{release}\ Provides: installonlypkg(kernel)\ AutoReqProv: no\ %description %{?1:%{1}-}debuginfo\ This package provides debug information for package %{name}%{?1:-%{1}}.\ This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\ %{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} --keep-section '.BTF' -p '.*\/usr\/src\/kernels/.*|XXX' -o ignored-debuginfo.list -p '/.*/%%{KVERREL_RE}%{?1:[+]%{1}}/.*|/.*%%{KVERREL_RE}%{?1:\+%{1}}(\.debug)?' -o debuginfo%{?1}.list}\ %{nil} # # This macro creates a kernel--devel package. # %%kernel_devel_package [-m] # %define kernel_devel_package(m) \ %package %{?1:%{1}-}devel\ Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\ Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\ Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel-devel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel)\ AutoReqProv: no\ Requires(pre): findutils\ Requires: findutils\ Requires: perl-interpreter\ Requires: openssl-devel\ Requires: elfutils-libelf-devel\ Requires: bison\ Requires: flex\ Requires: make\ Requires: gcc\ %if %{-m:1}%{!-m:0}\ Requires: kernel-devel-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\ %endif\ %description %{?1:%{1}-}devel\ This package provides kernel headers and makefiles sufficient to build modules\ against the %{?2:%{2} }kernel package.\ %{nil} # # This macro creates an empty kernel--devel-matched package that # requires both the core and devel packages locked on the same version. # %%kernel_devel_matched_package [-m] # %define kernel_devel_matched_package(m) \ %package %{?1:%{1}-}devel-matched\ Summary: Meta package to install matching core and devel packages for a given %{?2:%{2} }kernel\ Requires: kernel%{?1:-%{1}}-devel = %{version}-%{release}\ Requires: kernel%{?1:-%{1}}-core = %{version}-%{release}\ %description %{?1:%{1}-}devel-matched\ This meta package is used to install matching core and devel packages for a given %{?2:%{2} }kernel.\ %{nil} # # This macro creates a kernel--modules-internal package. # %%kernel_modules_internal_package # %define kernel_modules_internal_package() \ %package %{?1:%{1}-}modules-internal\ Summary: Extra kernel modules to match the %{?2:%{2} }kernel\ Group: System Environment/Kernel\ Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}\ Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel%{?1:-%{1}}-modules-internal = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules-internal\ This package provides kernel modules for the %{?2:%{2} }kernel package for Red Hat internal usage.\ %{nil} # # This macro creates a kernel--modules-extra package. # %%kernel_modules_extra_package [-m] # %define kernel_modules_extra_package(m) \ %package %{?1:%{1}-}modules-extra\ Summary: Extra kernel modules to match the %{?2:%{2} }kernel\ Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\ Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel%{?1:-%{1}}-modules-extra = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ %if %{-m:1}%{!-m:0}\ Requires: kernel-modules-extra-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\ %endif\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules-extra\ This package provides less commonly used kernel modules for the %{?2:%{2} }kernel package.\ %{nil} # # This macro creates a kernel--modules package. # %%kernel_modules_package [-m] # %define kernel_modules_package(m) \ %package %{?1:%{1}-}modules\ Summary: kernel modules to match the %{?2:%{2}-}core kernel\ Provides: kernel%{?1:-%{1}}-modules-%{_target_cpu} = %{version}-%{release}\ Provides: kernel-modules-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel-modules = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ %if %{-m:1}%{!-m:0}\ Requires: kernel-modules-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\ %endif\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules\ This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\ %{nil} # # This macro creates a kernel--modules-core package. # %%kernel_modules_core_package [-m] # %define kernel_modules_core_package(m) \ %package %{?1:%{1}-}modules-core\ Summary: Core kernel modules to match the %{?2:%{2}-}core kernel\ Provides: kernel%{?1:-%{1}}-modules-core-%{_target_cpu} = %{version}-%{release}\ Provides: kernel-modules-core-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel-modules-core = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ %if %{-m:1}%{!-m:0}\ Requires: kernel-modules-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\ %endif\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules-core\ This package provides essential kernel modules for the %{?2:%{2}-}core kernel package.\ %{nil} # # this macro creates a kernel- meta package. # %%kernel_meta_package # %define kernel_meta_package() \ %package %{1}\ summary: kernel meta-package for the %{1} kernel\ Requires: kernel-%{1}-core-uname-r = %{KVERREL}%{uname_suffix %{1}}\ Requires: kernel-%{1}-modules-uname-r = %{KVERREL}%{uname_suffix %{1}}\ Requires: kernel-%{1}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{1}}\ %if "%{1}" == "rt" || "%{1}" == "rt-debug" || "%{1}" == "rt-64k" || "%{1}" == "rt-64k-debug"\ Requires: realtime-setup\ %endif\ Provides: installonlypkg(kernel)\ %description %{1}\ The meta-package for the %{1} kernel\ %{nil} # # This macro creates a kernel- and its -devel and -debuginfo too. # %%define variant_summary The Linux kernel compiled for # %%kernel_variant_package [-n ] [-m] [-o] # %define kernel_variant_package(n:mo) \ %package %{?1:%{1}-}core\ Summary: %{variant_summary}\ Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel)\ %if %{-m:1}%{!-m:0}\ Requires: kernel-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\ Requires: kernel-%{?1:%{1}-}-modules-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\ %endif\ %{expand:%%kernel_reqprovconf %{?1:%{1}} %{-o:%{-o}}}\ %if %{?1:1} %{!?1:0} \ %{expand:%%kernel_meta_package %{?1:%{1}}}\ %endif\ %{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_devel_matched_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_modules_core_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %if %{-m:0}%{!-m:1}\ %{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ %if 0%{!?fedora:1}\ %{expand:%%kernel_modules_partner_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ %endif\ %{expand:%%kernel_debuginfo_package %{?1:%{1}}}\ %endif\ %if %{efiuki}\ %if "%{1}" != "rt" && "%{1}" != "rt-debug" && "%{1}" != "rt-64k" && "%{1}" != "rt-64k-debug"\ %package %{?1:%{1}-}uki-virt\ Summary: %{variant_summary} unified kernel image for virtual machines\ Provides: installonlypkg(kernel)\ Provides: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires(pre): %{kernel_prereq}\ Requires(pre): systemd >= 252-20\ %package %{?1:%{1}-}uki-virt-addons\ Summary: %{variant_summary} unified kernel image addons for virtual machines\ Provides: installonlypkg(kernel)\ Requires: kernel%{?1:-%{1}}-uki-virt = %{version}-%{release}\ Requires(pre): systemd >= 252-20\ %endif\ %endif\ %if %{with_gcov}\ %{expand:%%kernel_gcov_package %{?1:%{1}}}\ %endif\ %{nil} # # This macro creates a kernel--modules-partner package. # %%kernel_modules_partner_package # %define kernel_modules_partner_package() \ %package %{?1:%{1}-}modules-partner\ Summary: Extra kernel modules to match the %{?2:%{2} }kernel\ Group: System Environment/Kernel\ Provides: kernel%{?1:-%{1}}-modules-partner-%{_target_cpu} = %{version}-%{release}\ Provides: kernel%{?1:-%{1}}-modules-partner-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: kernel%{?1:-%{1}}-modules-partner = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-partner-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules-partner\ This package provides kernel modules for the %{?2:%{2} }kernel package for Red Hat partners usage.\ %{nil} # Now, each variant package. %if %{with_pae} %define variant_summary The Linux kernel compiled for Cortex-A15 %kernel_variant_package lpae %description lpae-core This package includes a version of the Linux kernel with support for Cortex-A15 devices with LPAE and HW virtualisation support %endif %if %{with_zfcpdump} %define variant_summary The Linux kernel compiled for zfcpdump usage %kernel_variant_package -o zfcpdump %description zfcpdump-core The kernel package contains the Linux kernel (vmlinuz) for use by the zfcpdump infrastructure. # with_zfcpdump %endif %if %{with_arm64_64k} %define variant_summary The Linux kernel compiled for 64k pagesize usage %kernel_variant_package 64k %description 64k-core The kernel package contains a variant of the ARM64 Linux kernel using a 64K page size. %endif %if %{with_arm64_64k} && %{with_debug} %define variant_summary The Linux kernel compiled with extra debugging enabled %if !%{debugbuildsenabled} %kernel_variant_package -m 64k-debug %else %kernel_variant_package 64k-debug %endif %description 64k-debug-core The debug kernel package contains a variant of the ARM64 Linux kernel using a 64K page size. This variant of the kernel has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably. %endif %if %{with_realtime} %define variant_summary The Linux kernel compiled with PREEMPT_RT enabled %kernel_variant_package rt %description rt-core This package includes a version of the Linux kernel compiled with PREEMPT_RT (real-time preemption support). %endif %if %{with_debug} && %{with_realtime} %define variant_summary The Linux kernel compiled with PREEMPT_RT enabled %kernel_variant_package rt-debug %description rt-debug-core This package includes a version of the Linux kernel compiled with PREEMPT_RT (real-time preemption support) and has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably. %endif %if %{with_realtime_arm64_64k} %define variant_summary The Linux kernel compiled with PREEMPT_RT enabled and for 64k pagesize usage %kernel_variant_package rt-64k %description rt-64k-core The kernel package contains a variant of the ARM64 Linux kernel with PREEMPT_RT enabled and using a 64K page size. %endif %if %{with_realtime_arm64_64k} && %{with_debug} %define variant_summary The Linux PREEMPT_RT kernel compiled with extra debugging enabled %if !%{debugbuildsenabled} %kernel_variant_package -m rt-64k-debug %else %kernel_variant_package rt-64k-debug %endif %description rt-64k-debug-core The debug kernel package contains a variant of the ARM64 Linux PREEMPT_RT kernel using a 64K page size. This variant of the kernel has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably. %endif %if !%{debugbuildsenabled} %kernel_variant_package -m debug %else %kernel_variant_package debug %endif %description debug-core The kernel package contains the Linux kernel (vmlinuz), the core of any Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc. This variant of the kernel has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably. # And finally the main -core package %define variant_summary The Linux kernel %kernel_variant_package %description core The kernel package contains the Linux kernel (vmlinuz), the core of any Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc. %if %{efiuki} %description debug-uki-virt Prebuilt debug unified kernel image for virtual machines. %description debug-uki-virt-addons Prebuilt debug unified kernel image addons for virtual machines. %description uki-virt Prebuilt default unified kernel image for virtual machines. %description uki-virt-addons Prebuilt default unified kernel image addons for virtual machines. %endif %prep # do a few sanity-checks for --with *only builds %if %{with_baseonly} %if !%{with_up} echo "Cannot build --with baseonly, up build is disabled" exit 1 %endif %endif # more sanity checking; do it quietly if [ "%{patches}" != "%%{patches}" ] ; then for patch in %{patches} ; do if [ ! -f $patch ] ; then echo "ERROR: Patch ${patch##/*/} listed in specfile but is missing" exit 1 fi done fi 2>/dev/null patch_command='git apply' ApplyPatch() { local patch=$1 shift if [ ! -f $RPM_SOURCE_DIR/$patch ]; then exit 1 fi if ! grep -E "^Patch[0-9]+: $patch\$" %{_specdir}/${RPM_PACKAGE_NAME}.spec ; then if [ "${patch:0:8}" != "patch-%{kversion}." ] ; then echo "ERROR: Patch $patch not listed as a source patch in specfile" exit 1 fi fi 2>/dev/null case "$patch" in *.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; *.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; *.xz) unxz < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;; *) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;; esac } # don't apply patch if it's empty ApplyOptionalPatch() { local patch=$1 shift if [ ! -f $RPM_SOURCE_DIR/$patch ]; then exit 1 fi local C=$(wc -l $RPM_SOURCE_DIR/$patch | awk '{print $1}') if [ "$C" -gt 9 ]; then ApplyPatch $patch ${1+"$@"} fi } %setup -q -n kernel-%{tarfile_release} -c mv linux-%{tarfile_release} linux-%{KVERREL} cd linux-%{KVERREL} cp -a %{SOURCE1} . %if !%{nopatches} ApplyOptionalPatch patch-%{patchversion}-redhat.patch %endif ApplyOptionalPatch linux-kernel-test.patch # END OF PATCH APPLICATIONS # Any further pre-build tree manipulations happen here. chmod +x scripts/checkpatch.pl mv COPYING COPYING-%{version}-%{release} # This Prevents scripts/setlocalversion from mucking with our version numbers. touch .scmversion # Mangle /usr/bin/python shebangs to /usr/bin/python3 # Mangle all Python shebangs to be Python 3 explicitly # -p preserves timestamps # -n prevents creating ~backup files # -i specifies the interpreter for the shebang # This fixes errors such as # *** ERROR: ambiguous python shebang in /usr/bin/kvm_stat: #!/usr/bin/python. Change it to python3 (or python2) explicitly. # We patch all sources below for which we got a report/error. pathfix.py -i "%{__python3}" -p -n \ tools/kvm/kvm_stat/kvm_stat \ scripts/show_delta \ scripts/diffconfig \ scripts/bloat-o-meter \ scripts/jobserver-exec \ tools \ Documentation \ scripts/clang-tools # only deal with configs if we are going to build for the arch %ifnarch %nobuildarches if [ -L configs ]; then rm -f configs fi mkdir configs cd configs # Drop some necessary files from the source dir into the buildroot cp $RPM_SOURCE_DIR/kernel-*.config . cp %{SOURCE80} . # merge.pl cp %{SOURCE3000} . # kernel-local cp %{SOURCE3001} . FLAVOR=%{primary_target} SPECVERSION=%{version} ./generate_all_configs.sh %{debugbuildsenabled} # Merge in any user-provided local config option changes %ifnarch %nobuildarches for i in %{all_arch_configs} do mv $i $i.tmp ./merge.pl %{SOURCE3001} $i.tmp > $i %if %{with_gcov} echo "Merging with gcov options" cat %{SOURCE75} mv $i $i.tmp ./merge.pl %{SOURCE75} $i.tmp > $i %endif rm $i.tmp done %endif %if %{with clang_lto} for i in *aarch64*.config *x86_64*.config; do sed -i 's/# CONFIG_LTO_CLANG_THIN is not set/CONFIG_LTO_CLANG_THIN=y/' $i sed -i 's/CONFIG_LTO_NONE=y/# CONFIG_LTO_NONE is not set/' $i done %endif # Add DUP and kpatch certificates to system trusted keys for RHEL %if 0%{?rhel} %if %{signkernel}%{signmodules} openssl x509 -inform der -in %{SOURCE100} -out rheldup3.pem openssl x509 -inform der -in %{SOURCE101} -out rhelkpatch1.pem openssl x509 -inform der -in %{SOURCE102} -out rhelimaca1.pem openssl x509 -inform der -in %{SOURCE105} -out nvidiagpuoot001.pem cat rheldup3.pem rhelkpatch1.pem rhelimaca1.pem nvidiagpuoot001.pem > ../certs/rhel.pem %if %{signkernel} %ifarch s390x ppc64le openssl x509 -inform der -in %{secureboot_ca_0} -out secureboot.pem cat secureboot.pem >> ../certs/rhel.pem %endif %endif for i in *.config; do sed -i 's@CONFIG_SYSTEM_TRUSTED_KEYS=""@CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"@' $i done %endif %endif # Adjust FIPS module name for RHEL %if 0%{?rhel} for i in *.config; do sed -i 's/CONFIG_CRYPTO_FIPS_NAME=.*/CONFIG_CRYPTO_FIPS_NAME="Red Hat Enterprise Linux %{rhel} - Kernel Cryptographic API"/' $i done %endif cp %{SOURCE81} . OPTS="" %if %{with_configchecks} OPTS="$OPTS -w -n -c" %endif %if %{with clang_lto} for opt in %{clang_make_opts}; do OPTS="$OPTS -m $opt" done %endif RHJOBS=$RPM_BUILD_NCPUS PACKAGE_NAME=kernel ./process_configs.sh $OPTS ${specversion} cp %{SOURCE82} . RPM_SOURCE_DIR=$RPM_SOURCE_DIR ./update_scripts.sh %{primary_target} # We may want to override files from the primary target in case of building # against a flavour of it (eg. centos not rhel), thus override it here if # necessary if [ "%{primary_target}" == "rhel" ]; then %if 0%{?centos} echo "Updating scripts/sources to centos version" RPM_SOURCE_DIR=$RPM_SOURCE_DIR ./update_scripts.sh centos %else echo "Not updating scripts/sources to centos version" %endif fi # end of kernel config %endif cd .. # # End of Configs stuff # get rid of unwanted files resulting from patch fuzz find . \( -name "*.orig" -o -name "*~" \) -delete >/dev/null # remove unnecessary SCM files find . -name .gitignore -delete >/dev/null cd .. ### ### build ### %build rm -rf %{buildroot_unstripped} || true mkdir -p %{buildroot_unstripped} %if %{with_sparse} %define sparse_mflags C=1 %endif cp_vmlinux() { eu-strip --remove-comment -o "$2" "$1" } # Note we need to disable these flags for cross builds because the flags # from redhat-rpm-config assume that host == target so target arch # flags cause issues with the host compiler. %if !%{with_cross} %define build_hostcflags %{?build_cflags} %define build_hostldflags %{?build_ldflags} %endif %define make %{__make} %{?cross_opts} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" InitBuildVars() { # Initialize the kernel .config file and create some variables that are # needed for the actual build process. Variant=$1 # Pick the right kernel config file Config=kernel-%{version}-%{_target_cpu}${Variant:+-${Variant}}.config DevelDir=/usr/src/kernels/%{KVERREL}${Variant:++${Variant}} KernelVer=%{version}-%{release}.%{_target_cpu}${Variant:++${Variant}} # make sure EXTRAVERSION says what we want it to say # Trim the release if this is a CI build, since KERNELVERSION is limited to 64 characters ShortRel=$(perl -e "print \"%{release}\" =~ s/\.pr\.[0-9A-Fa-f]{32}//r") perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${ShortRel}.%{_target_cpu}${Variant:++${Variant}}/" Makefile # if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme # if we are post rc1 this should match anyway so this won't matter perl -p -i -e 's/^PATCHLEVEL.*/PATCHLEVEL = %{patchlevel}/' Makefile %{make} %{?_smp_mflags} mrproper cp configs/$Config .config %if %{signkernel}%{signmodules} cp configs/x509.genkey certs/. %endif Arch=`head -1 .config | cut -b 3-` echo USING ARCH=$Arch KCFLAGS="%{?kcflags}" } BuildKernel() { MakeTarget=$1 KernelImage=$2 DoVDSO=$3 Variant=$4 InstallName=${5:-vmlinuz} DoModules=1 if [ "$Variant" = "zfcpdump" ]; then DoModules=0 fi # When the bootable image is just the ELF kernel, strip it. # We already copy the unstripped file into the debuginfo package. if [ "$KernelImage" = vmlinux ]; then CopyKernel=cp_vmlinux else CopyKernel=cp fi %if %{with_gcov} # Make build directory unique for each variant, so that gcno symlinks # are also unique for each variant. if [ -n "$Variant" ]; then ln -s $(pwd) ../linux-%{KVERREL}-${Variant} fi echo "GCOV - continuing build in: $(pwd)" pushd ../linux-%{KVERREL}${Variant:+-${Variant}} pwd > ../kernel${Variant:+-${Variant}}-gcov.list %endif InitBuildVars $Variant echo BUILDING A KERNEL FOR ${Variant} %{_target_cpu}... %{make} ARCH=$Arch olddefconfig >/dev/null # This ensures build-ids are unique to allow parallel debuginfo perl -p -i -e "s/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT=\"%{KVERREL}\"/" .config %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags} if [ $DoModules -eq 1 ]; then %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} modules %{?sparse_mflags} || exit 1 fi mkdir -p $RPM_BUILD_ROOT/%{image_install_path} mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/systemtap %if %{with_debuginfo} mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/%{image_install_path} %endif %ifarch %{arm} aarch64 %{make} ARCH=$Arch dtbs INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer %{make} ARCH=$Arch dtbs_install INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer cp -r $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/dtb find arch/$Arch/boot/dts -name '*.dtb' -type f -delete %endif # Start installing the results install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer install -m 644 .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/config install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer install -m 644 System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/System.map # We estimate the size of the initramfs because rpm needs to take this size # into consideration when performing disk space calculations. (See bz #530778) dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-$KernelVer.img bs=1M count=20 if [ -f arch/$Arch/boot/zImage.stub ]; then cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || : cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/lib/modules/$KernelVer/zImage.stub-$KernelVer || : fi %if %{signkernel} if [ "$KernelImage" = vmlinux ]; then # We can't strip and sign $KernelImage in place, because # we need to preserve original vmlinux for debuginfo. # Use a copy for signing. $CopyKernel $KernelImage $KernelImage.tosign KernelImage=$KernelImage.tosign CopyKernel=cp fi # Sign the image if we're using EFI # aarch64 kernels are gziped EFI images KernelExtension=${KernelImage##*.} if [ "$KernelExtension" == "gz" ]; then SignImage=${KernelImage%.*} else SignImage=$KernelImage fi %ifarch x86_64 aarch64 %pesign -s -i $SignImage -o vmlinuz.signed -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0} %endif %ifarch s390x ppc64le if [ -x /usr/bin/rpm-sign ]; then rpm-sign --key "%{pesign_name_0}" --lkmsign $SignImage --output vmlinuz.signed elif [ "$DoModules" == "1" -a "%{signmodules}" == "1" ]; then chmod +x scripts/sign-file ./scripts/sign-file -p sha256 certs/signing_key.pem certs/signing_key.x509 $SignImage vmlinuz.signed else mv $SignImage vmlinuz.signed fi %endif if [ ! -s vmlinuz.signed ]; then echo "pesigning failed" exit 1 fi mv vmlinuz.signed $SignImage if [ "$KernelExtension" == "gz" ]; then gzip -f9 $SignImage fi # signkernel %endif $CopyKernel $KernelImage \ $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer cp $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/$InstallName # hmac sign the kernel for FIPS echo "Creating hmac file: $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac" ls -l $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer (cd $RPM_BUILD_ROOT/%{image_install_path} && sha512hmac $InstallName-$KernelVer) > $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac; cp $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac $RPM_BUILD_ROOT/lib/modules/$KernelVer/.vmlinuz.hmac if [ $DoModules -eq 1 ]; then # Override $(mod-fw) because we don't want it to install any firmware # we'll get it from the linux-firmware package and we don't want conflicts %{make} %{?_smp_mflags} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT %{?_smp_mflags} modules_install KERNELRELEASE=$KernelVer mod-fw= fi %if %{with_gcov} # install gcov-needed files to $BUILDROOT/$BUILD/...: # gcov_info->filename is absolute path # gcno references to sources can use absolute paths (e.g. in out-of-tree builds) # sysfs symlink targets (set up at compile time) use absolute paths to BUILD dir find . \( -name '*.gcno' -o -name '*.[chS]' \) -exec install -D '{}' "$RPM_BUILD_ROOT/$(pwd)/{}" \; %endif # add an a noop %%defattr statement 'cause rpm doesn't like empty file list files echo '%%defattr(-,-,-)' > ../kernel${Variant:+-${Variant}}-ldsoconf.list if [ $DoVDSO -ne 0 ]; then %{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer if [ -s ldconfig-kernel.conf ]; then install -D -m 444 ldconfig-kernel.conf \ $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf echo /etc/ld.so.conf.d/kernel-$KernelVer.conf >> ../kernel${Variant:+-${Variant}}-ldsoconf.list fi rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/vdso/.build-id fi # And save the headers/makefiles etc for building modules against # # This all looks scary, but the end result is supposed to be: # * all arch relevant include/ files # * all Makefile/Kconfig files # * all script/ files rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source) # dirs for additional modules per module-init-tools, kbuild/modules.txt mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/weak-updates # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of # testing so just delete find . -name *.h.s -delete # first copy everything cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build if [ ! -e Module.symvers ]; then touch Module.symvers fi cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build if [ -s Module.markers ]; then cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build fi # create the kABI metadata for use in packaging # NOTENOTE: the name symvers is used by the rpm backend # NOTENOTE: to discover and run the /usr/lib/rpm/fileattrs/kabi.attr # NOTENOTE: script which dynamically adds exported kernel symbol # NOTENOTE: checksums to the rpm metadata provides list. # NOTENOTE: if you change the symvers name, update the backend too echo "**** GENERATING kernel ABI metadata ****" gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz cp $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz $RPM_BUILD_ROOT/lib/modules/$KernelVer/symvers.gz %if %{with_kabichk} echo "**** kABI checking is enabled in kernel SPEC file. ****" chmod 0755 $RPM_SOURCE_DIR/check-kabi if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Variant ]; then cp $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Variant $RPM_BUILD_ROOT/Module.kabi $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1 # for now, don't keep it around. rm $RPM_BUILD_ROOT/Module.kabi else echo "**** NOTE: Cannot find reference Module.kabi file. ****" fi %endif %if %{with_kabidupchk} echo "**** kABI DUP checking is enabled in kernel SPEC file. ****" if [ -e $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Variant ]; then cp $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Variant $RPM_BUILD_ROOT/Module.kabi $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1 # for now, don't keep it around. rm $RPM_BUILD_ROOT/Module.kabi else echo "**** NOTE: Cannot find DUP reference Module.kabi file. ****" fi %endif %if %{with_kabidw_base} # Don't build kabi base for debug kernels if [ "$Variant" != "zfcpdump" -a "$Variant" != "debug" ]; then mkdir -p $RPM_BUILD_ROOT/kabi-dwarf tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/stablelists tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists echo "**** GENERATING DWARF-based kABI baseline dataset ****" chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \ "$RPM_BUILD_ROOT/kabi-dwarf/stablelists/kabi-current/kabi_stablelist_%{_target_cpu}" \ "$(pwd)" \ "$RPM_BUILD_ROOT/kabidw-base/%{_target_cpu}${Variant:+.${Variant}}" || : rm -rf $RPM_BUILD_ROOT/kabi-dwarf fi %endif %if %{with_kabidwchk} if [ "$Variant" != "zfcpdump" ]; then mkdir -p $RPM_BUILD_ROOT/kabi-dwarf tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf if [ -d "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Variant:+.${Variant}}" ]; then mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/stablelists tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists echo "**** GENERATING DWARF-based kABI dataset ****" chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \ "$RPM_BUILD_ROOT/kabi-dwarf/stablelists/kabi-current/kabi_stablelist_%{_target_cpu}" \ "$(pwd)" \ "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Variant:+.${Variant}}.tmp" || : echo "**** kABI DWARF-based comparison report ****" $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh compare \ "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Variant:+.${Variant}}" \ "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Variant:+.${Variant}}.tmp" || : echo "**** End of kABI DWARF-based comparison report ****" else echo "**** Baseline dataset for kABI DWARF-BASED comparison report not found ****" fi rm -rf $RPM_BUILD_ROOT/kabi-dwarf fi %endif # then drop all but the needed Makefiles/Kconfig files rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/tracing rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/spdxcheck.py %ifarch s390x # CONFIG_EXPOLINE_EXTERN=y produces arch/s390/lib/expoline/expoline.o # which is needed during external module build. if [ -f arch/s390/lib/expoline/expoline.o ]; then cp -a --parents arch/s390/lib/expoline/expoline.o $RPM_BUILD_ROOT/lib/modules/$KernelVer/build fi %endif # Files for 'make scripts' to succeed with kernel-devel. mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/security/selinux/include cp -a --parents security/selinux/include/classmap.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents security/selinux/include/initial_sid_to_string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/include/tools cp -a --parents tools/include/tools/be_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build # Files for 'make prepare' to succeed with kernel-devel. cp -a --parents tools/include/linux/compiler* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/linux/types.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/build/Build.include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/build/fixdep.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/objtool/sync-check.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/bpf/resolve_btfids $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents security/selinux/include/policycap_names.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents security/selinux/include/policycap.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/asm $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/asm-generic $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/linux $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/uapi/asm $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/uapi/asm-generic $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/uapi/linux $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/include/vdso $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/scripts/utilities.mak $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/lib/subcmd $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/lib/*.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/objtool/*.[ch] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/objtool/Build $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/objtool/include/objtool/*.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/lib/bpf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp --parents tools/lib/bpf/Build $RPM_BUILD_ROOT/lib/modules/$KernelVer/build if [ -f tools/objtool/objtool ]; then cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/objtool/ || : fi if [ -f tools/objtool/fixdep ]; then cp -a tools/objtool/fixdep $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/objtool/ || : fi if [ -d arch/$Arch/scripts ]; then cp -a arch/$Arch/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || : fi if [ -f arch/$Arch/*lds ]; then cp -a arch/$Arch/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || : fi if [ -f arch/%{asmarch}/kernel/module.lds ]; then cp -a --parents arch/%{asmarch}/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ fi find $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts \( -iname "*.o" -o -iname "*.cmd" \) -exec rm -f {} + %ifarch ppc64le cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ %endif if [ -d arch/%{asmarch}/include ]; then cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ fi if [ -d tools/arch/%{asmarch}/include ]; then cp -a --parents tools/arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build fi %ifarch aarch64 # arch/arm64/include/asm/xen references arch/arm cp -a --parents arch/arm/include/asm/xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ # arch/arm64/include/asm/opcodes.h references arch/arm cp -a --parents arch/arm/include/asm/opcodes.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ %endif # include the machine specific headers for ARM variants, if available. %ifarch %{arm} if [ -d arch/%{asmarch}/mach-${Variant}/include ]; then cp -a --parents arch/%{asmarch}/mach-${Variant}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ fi # include a few files for 'make prepare' cp -a --parents arch/arm/tools/gen-mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/arm/tools/mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ %endif cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include # Cross-reference from include/perf/events/sof.h cp -a sound/soc/sof/sof-audio.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/sound/soc/sof %ifarch i686 x86_64 # files for 'make prepare' to succeed with kernel-devel cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/tools/relocs_64.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/purgatory/entry64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/boot/string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/boot/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents arch/x86/boot/ctype.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents scripts/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents scripts/syscallhdr.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ cp -a --parents tools/arch/x86/include/asm $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/arch/x86/include/uapi/asm $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/objtool/arch/x86/lib $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/arch/x86/lib/ $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/arch/x86/tools/gen-insn-attr-x86.awk $RPM_BUILD_ROOT/lib/modules/$KernelVer/build cp -a --parents tools/objtool/arch/x86/ $RPM_BUILD_ROOT/lib/modules/$KernelVer/build %endif # Clean up intermediate tools files find $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools \( -iname "*.o" -o -iname "*.cmd" \) -exec rm -f {} + # Make sure the Makefile, version.h, and auto.conf have a matching # timestamp so that external modules can be built touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile \ $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h \ $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf %if %{with_debuginfo} eu-readelf -n vmlinux | grep "Build ID" | awk '{print $NF}' > vmlinux.id cp vmlinux.id $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.id # # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm # mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer if [ -n "%{vmlinux_decompressor}" ]; then eu-readelf -n %{vmlinux_decompressor} | grep "Build ID" | awk '{print $NF}' > vmlinux.decompressor.id # Without build-id the build will fail. But for s390 the build-id # wasn't added before 5.11. In case it is missing prefer not # packaging the debuginfo over a build failure. if [ -s vmlinux.decompressor.id ]; then cp vmlinux.decompressor.id $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.decompressor.id cp %{vmlinux_decompressor} $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer/vmlinux.decompressor fi fi %endif find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames # mark modules executable so that strip-to-file can strip them xargs --no-run-if-empty chmod u+x < modnames # Generate a list of modules for block and networking. grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA | sed -n 's,^.*/\([^/]*\.ko\): *U \(.*\)$,\1 \2,p' > drivers.undef collect_modules_list() { sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef | LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1 if [ ! -z "$3" ]; then sed -r -e "/^($3)\$/d" -i $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1 fi } collect_modules_list networking \ 'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register|rt(l_|2x00)(pci|usb)_probe|register_netdevice' collect_modules_list block \ 'ata_scsi_ioctl|scsi_add_host|scsi_add_host_with_dma|blk_alloc_queue|blk_init_queue|register_mtd_blktrans|scsi_esp_register|scsi_register_device_handler|blk_queue_physical_block_size' 'pktcdvd.ko|dm-mod.ko' collect_modules_list drm \ 'drm_open|drm_init' collect_modules_list modesetting \ 'drm_crtc_init' # detect missing or incorrect license tags ( find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name '*.ko' | xargs /sbin/modinfo -l | \ grep -E -v 'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' ) && exit 1 remove_depmod_files() { # remove files that will be auto generated by depmod at rpm -i time pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/ # in case below list needs to be extended, remember to add a # matching ghost entry in the files section as well rm -f modules.{alias,alias.bin,builtin.alias.bin,builtin.bin} \ modules.{dep,dep.bin,devname,softdep,symbols,symbols.bin} popd } remove_depmod_files # Identify modules in the kernel-modules-extras package %{SOURCE20} $RPM_BUILD_ROOT lib/modules/$KernelVer $(realpath configs/mod-extra.list) # Identify modules in the kernel-modules-extras package %{SOURCE20} $RPM_BUILD_ROOT lib/modules/$KernelVer %{SOURCE84} internal %if 0%{!?fedora:1} # Identify modules in the kernel-modules-partner package %{SOURCE20} $RPM_BUILD_ROOT lib/modules/$KernelVer %{SOURCE85} partner %endif # # Generate the kernel-core and kernel-modules files lists # # Copy the System.map file for depmod to use, and create a backup of the # full module tree so we can restore it after we're done filtering cp System.map $RPM_BUILD_ROOT/. cp configs/filter-*.sh $RPM_BUILD_ROOT/. pushd $RPM_BUILD_ROOT mkdir restore cp -r lib/modules/$KernelVer/* restore/. # don't include anything going into kernel-modules-extra in the file lists xargs rm -rf < mod-extra.list # don't include anything going int kernel-modules-internal in the file lists xargs rm -rf < mod-internal.list %if 0%{!?fedora:1} # don't include anything going int kernel-modules-partner in the file lists xargs rm -rf < mod-partner.list %endif if [ $DoModules -eq 1 ]; then # Find all the module files and filter them out into the core and # modules lists. This actually removes anything going into -modules # from the dir. find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list ./filter-modules.sh modules.list %{_target_cpu} rm filter-*.sh # Run depmod on the resulting module tree and make sure it isn't broken depmod -b . -aeF ./System.map $KernelVer &> depmod.out if [ -s depmod.out ]; then echo "Depmod failure" cat depmod.out exit 1 else rm depmod.out fi else # Ensure important files/directories exist to let the packaging succeed echo '%%defattr(-,-,-)' > modules.list echo '%%defattr(-,-,-)' > k-d.list mkdir -p lib/modules/$KernelVer/kernel # Add files usually created by make modules, needed to prevent errors # thrown by depmod during package installation touch lib/modules/$KernelVer/modules.order touch lib/modules/$KernelVer/modules.builtin fi %if %{efiuki} if [ "$Variant" != "rt" ] && [ "$Variant" != "rt-debug" ] && [ "$Variant" != "rt-64k" ] && [ "$Variant" != "rt-64k-debug" ]; then popd # RHEL/CentOS specific .SBAT entries %if 0%{?centos} SBATsuffix="centos" %else %if 0%{?fedora} SBATsuffix="fedora" %else SBATsuffix="rhel" %endif %endif SBAT=$(cat <<- EOF linux,1,Red Hat,linux,$KernelVer,mailto:secalert@redhat.com linux.$SBATsuffix,1,Red Hat,linux,$KernelVer,mailto:secalert@redhat.com kernel-uki-virt.$SBATsuffix,1,Red Hat,kernel-uki-virt,$KernelVer,mailto:secalert@redhat.com EOF ) ADDONS_SBAT=$(cat <<- EOF sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md kernel-uki-virt-addons.$SBATsuffix,1,Red Hat,kernel-uki-virt-addons,$KernelVer,mailto:secalert@redhat.com EOF ) KernelUnifiedImageDir="$RPM_BUILD_ROOT/lib/modules/$KernelVer" KernelUnifiedImage="$KernelUnifiedImageDir/$InstallName-virt.efi" mkdir -p $KernelUnifiedImageDir dracut --conf=%{SOURCE150} \ --confdir=$(mktemp -d) \ --verbose \ --kver "$KernelVer" \ --kmoddir "$RPM_BUILD_ROOT/lib/modules/$KernelVer/" \ --logfile=$(mktemp) \ --uefi \ --sbat "$SBAT" \ --kernel-image $(realpath $KernelImage) \ --kernel-cmdline 'console=tty0 console=ttyS0' \ $KernelUnifiedImage KernelAddonsDirOut="$KernelUnifiedImage.extra.d" mkdir -p $KernelAddonsDirOut python3 %{SOURCE151} %{SOURCE152} $KernelAddonsDirOut virt %{primary_target} %{_target_cpu} "$ADDONS_SBAT" %if %{signkernel} %if 0%{?centos} UKI_secureboot_name=centossecureboot204 UKI_secureboot_cert=%{_datadir}/pki/sb-certs/secureboot-uki-virt-%{_arch}.cer %else # RHEL only builds UKI for x86 UKI_secureboot_name=redhatsecureboot504 UKI_secureboot_cert=%{SOURCE153} %endif %pesign -s -i $KernelUnifiedImage -o $KernelUnifiedImage.signed -a %{secureboot_ca_0} -c $UKI_secureboot_cert -n $UKI_secureboot_name if [ ! -s $KernelUnifiedImage.signed ]; then echo "pesigning failed" exit 1 fi mv $KernelUnifiedImage.signed $KernelUnifiedImage for addon in "$KernelAddonsDirOut"/*; do %pesign -s -i $addon -o $addon.signed -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0} rm -f $addon mv $addon.signed $addon done mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer cp -a $UKI_secureboot_cert $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/secureboot-uki-%{_arch}.cer # signkernel %endif # hmac sign the UKI for FIPS KernelUnifiedImageHMAC="$KernelUnifiedImageDir/.$InstallName-virt.efi.hmac" echo "hmac sign the UKI for FIPS" echo "Creating hmac file: $KernelUnifiedImageHMAC" (cd $KernelUnifiedImageDir && sha512hmac $InstallName-virt.efi) > $KernelUnifiedImageHMAC; pushd $RPM_BUILD_ROOT # Variant != rt && Variant != rt-debug && Variant != rt-64k && Variant != rt-64k-debug fi # efiuki %endif remove_depmod_files # Go back and find all of the various directories in the tree. We use this # for the dir lists in kernel-core find lib/modules/$KernelVer/kernel -mindepth 1 -type d | sort -n > module-dirs.list # Cleanup rm System.map # Just "cp -r" can be very slow: here, it rewrites _existing files_ # with open(O_TRUNC). Many filesystems synchronously wait for metadata # update for such file rewrites (seen in strace as final close syscall # taking a long time). On a rotational disk, cp was observed to take # more than 5 minutes on ext4 and more than 15 minutes (!) on xfs. # With --remove-destination, we avoid this, and copying # (with enough RAM to cache it) takes 5 seconds: cp -r --remove-destination restore/* lib/modules/$KernelVer/. rm -rf restore popd # Make sure the files lists start with absolute paths or rpmbuild fails. # Also add in the dir entries sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/k-d.list > ../kernel${Variant:+-${Variant}}-modules.list sed -e 's/^lib*/%dir \/lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Variant:+-${Variant}}-modules-core.list sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Variant:+-${Variant}}-modules-core.list sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-extra.list >> ../kernel${Variant:+-${Variant}}-modules-extra.list # Cleanup rm -f $RPM_BUILD_ROOT/k-d.list rm -f $RPM_BUILD_ROOT/modules.list rm -f $RPM_BUILD_ROOT/module-dirs.list rm -f $RPM_BUILD_ROOT/mod-extra.list rm -f $RPM_BUILD_ROOT/mod-internal.list %if 0%{!?fedora:1} rm -f $RPM_BUILD_ROOT/mod-partner.list %endif %if %{with_cross} make -C $RPM_BUILD_ROOT/lib/modules/$KernelVer/build M=scripts clean make -C $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/bpf/resolve_btfids clean sed -i 's/REBUILD_SCRIPTS_FOR_CROSS:=0/REBUILD_SCRIPTS_FOR_CROSS:=1/' $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile %endif # Move the devel headers out of the root file system mkdir -p $RPM_BUILD_ROOT/usr/src/kernels mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir # This is going to create a broken link during the build, but we don't use # it after this point. We need the link to actually point to something # when kernel-devel is installed, and a relative link doesn't work across # the F17 UsrMove feature. ln -sf $DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build %ifnarch armv7hl # Generate vmlinux.h and put it to kernel-devel path # zfcpdump build does not have btf anymore if [ "$Variant" != "zfcpdump" ]; then # Build the bootstrap bpftool to generate vmlinux.h make -C tools/bpf/bpftool bootstrap tools/bpf/bpftool/bootstrap/bpftool btf dump file vmlinux format c > $RPM_BUILD_ROOT/$DevelDir/vmlinux.h fi %endif # prune junk from kernel-devel find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer %if %{signkernel} install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer %ifarch s390x ppc64le if [ -x /usr/bin/rpm-sign ]; then install -m 0644 %{secureboot_key_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename} fi %endif %endif %if 0%{?rhel} # Red Hat IMA code-signing cert, which is used to authenticate package files install -m 0644 %{ima_signing_cert} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{ima_cert_name} %endif %if %{signmodules} if [ $DoModules -eq 1 ]; then # Save the signing keys so we can sign the modules in __modsign_install_post cp certs/signing_key.pem certs/signing_key.pem.sign${Variant:++${Variant}} cp certs/signing_key.x509 certs/signing_key.x509.sign${Variant:++${Variant}} %ifarch s390x ppc64le if [ ! -x /usr/bin/rpm-sign ]; then install -m 0644 certs/signing_key.x509.sign${Variant:++${Variant}} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer openssl x509 -in certs/signing_key.pem.sign${Variant:++${Variant}} -outform der -out $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename} chmod 0644 $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename} fi %endif fi %endif %if %{with_gcov} popd %endif } ### # DO it... ### # prepare directories rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/boot mkdir -p $RPM_BUILD_ROOT%{_libexecdir} cd linux-%{KVERREL} %if %{with_debug} BuildKernel %make_target %kernel_image %{_use_vdso} debug %if %{with_arm64_64k} BuildKernel %make_target %kernel_image %{_use_vdso} 64k-debug %endif %if %{with_realtime} BuildKernel %make_target %kernel_image %{_use_vdso} rt-debug %endif %if %{with_realtime_arm64_64k} BuildKernel %make_target %kernel_image %{_use_vdso} rt-64k-debug %endif %endif %if %{with_zfcpdump} BuildKernel %make_target %kernel_image %{_use_vdso} zfcpdump %endif %if %{with_arm64_64k} BuildKernel %make_target %kernel_image %{_use_vdso} 64k %endif %if %{with_pae} BuildKernel %make_target %kernel_image %{use_vdso} lpae %endif %if %{with_realtime} BuildKernel %make_target %kernel_image %{use_vdso} rt %endif %if %{with_realtime_arm64_64k} BuildKernel %make_target %kernel_image %{_use_vdso} rt-64k %endif %if %{with_up} BuildKernel %make_target %kernel_image %{_use_vdso} %endif %ifnarch noarch i686 %if !%{with_debug} && !%{with_zfcpdump} && !%{with_pae} && !%{with_up} && !%{with_arm64_64k} && !%{with_realtime} && !%{with_realtime_arm64_64k} # If only building the user space tools, then initialize the build environment # and some variables so that the various userspace tools can be built. InitBuildVars %endif %endif %ifarch aarch64 %global perf_build_extra_opts CORESIGHT=1 %endif %global perf_make \ %{__make} %{?make_opts} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_CXXFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags} -Wl,-E" %{?cross_opts} -C tools/perf V=1 NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 LIBTRACEEVENT_DYNAMIC=1 %{?perf_build_extra_opts} prefix=%{_prefix} PYTHON=%{__python3} %if %{with_perf} # perf # make sure check-headers.sh is executable chmod +x tools/perf/check-headers.sh %{perf_make} DESTDIR=$RPM_BUILD_ROOT all # libperf make -C tools/lib/perf V=1 %endif %global tools_make \ CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" EXTRA_CFLAGS="${RPM_OPT_FLAGS}" %{make} %{?make_opts} %ifarch %{cpupowerarchs} # link against in-tree libcpupower for idle state support %global rtla_make %{tools_make} LDFLAGS="%{__global_ldflags} -L../../power/cpupower" INCLUDES="-I../../power/cpupower/lib" %else %global rtla_make %{tools_make} %endif %if %{with_tools} %ifarch %{cpupowerarchs} # cpupower # make sure version-gen.sh is executable. chmod +x tools/power/cpupower/utils/version-gen.sh %{tools_make} %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false DEBUG=false %ifarch x86_64 pushd tools/power/cpupower/debug/x86_64 %{tools_make} %{?_smp_mflags} centrino-decode powernow-k8-decode popd %endif %ifarch x86_64 pushd tools/power/x86/x86_energy_perf_policy/ %{tools_make} popd pushd tools/power/x86/turbostat %{tools_make} popd pushd tools/power/x86/intel-speed-select %{tools_make} popd pushd tools/arch/x86/intel_sdsi %{tools_make} CFLAGS="${RPM_OPT_FLAGS}" popd %endif %endif pushd tools/thermal/tmon/ %{tools_make} popd pushd tools/bootconfig/ %{tools_make} popd pushd tools/iio/ %{tools_make} popd pushd tools/gpio/ %{tools_make} popd # build VM tools pushd tools/mm/ %{tools_make} CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" slabinfo page_owner_sort popd pushd tools/verification/rv/ %{tools_make} popd pushd tools/tracing/rtla %{rtla_make} popd %endif if [ -f $DevelDir/vmlinux.h ]; then RPM_VMLINUX_H=$DevelDir/vmlinux.h fi echo "${RPM_VMLINUX_H}" > ../vmlinux_h_path %if %{with_selftests} # Unfortunately, samples/bpf/Makefile expects that the headers are installed # in the source tree. We installed them previously to $RPM_BUILD_ROOT/usr # but there's no way to tell the Makefile to take them from there. %{make} %{?_smp_mflags} headers_install # If we re building only tools without kernel, we need to generate config # headers and prepare tree for modules building. The modules_prepare target # will cover both. if [ ! -f include/generated/autoconf.h ]; then %{make} %{?_smp_mflags} modules_prepare fi %{make} %{?_smp_mflags} ARCH=$Arch V=1 M=samples/bpf/ VMLINUX_H="${RPM_VMLINUX_H}" || true pushd tools/testing/selftests # We need to install here because we need to call make with ARCH set which # doesn't seem possible to do in the install section. %{make} %{?_smp_mflags} ARCH=$Arch V=1 TARGETS="bpf cgroup kmod mm livepatch net net/forwarding net/mptcp net/netfilter tc-testing memfd drivers/net/bonding iommu cachestat drivers/net" SKIP_TARGETS="" FORCE_TARGETS=1 INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" DEFAULT_INSTALL_HDR_PATH=0 install # 'make install' for bpf is broken and upstream refuses to fix it. # Install the needed files manually. for dir in bpf bpf/no_alu32 bpf/cpuv4 bpf/progs; do # In ARK, the rpm build continues even if some of the selftests # cannot be built. It's not always possible to build selftests, # as upstream sometimes dependens on too new llvm version or has # other issues. If something did not get built, just skip it. test -d $dir || continue mkdir -p %{buildroot}%{_libexecdir}/kselftests/$dir find $dir -maxdepth 1 -type f \( -executable -o -name '*.py' -o -name settings -o \ -name 'btf_dump_test_case_*.c' -o -name '*.ko' -o \ -name '*.o' -exec sh -c 'readelf -h "{}" | grep -q "^ Machine:.*BPF"' \; \) -print0 | \ xargs -0 cp -t %{buildroot}%{_libexecdir}/kselftests/$dir || true done ln -sr %{buildroot}%{_libexecdir}/kselftests/bpf/bpftool %{buildroot}%{_libexecdir}/kselftests/bpf/no_alu32/bpftool # CKI clang does not support cpuv4 so it skips this variant ln -sr %{buildroot}%{_libexecdir}/kselftests/bpf/bpftool %{buildroot}%{_libexecdir}/kselftests/bpf/cpuv4/bpftool || echo "selftests/bpf: no cpuv4 variant" %buildroot_save_unstripped "usr/libexec/kselftests/bpf/test_progs" %buildroot_save_unstripped "usr/libexec/kselftests/bpf/test_progs-no_alu32" %buildroot_save_unstripped "usr/libexec/kselftests/bpf/test_progs-cpuv4" popd %endif %if %{with_doc} # Make the HTML pages. %{__make} PYTHON=/usr/bin/python3 htmldocs || %{doc_build_fail} # sometimes non-world-readable files sneak into the kernel source tree chmod -R a=rX Documentation find Documentation -type d | xargs chmod u+w %endif # In the modsign case, we do 3 things. 1) We check the "variant" and hard # code the value in the following invocations. This is somewhat sub-optimal # but we're doing this inside of an RPM macro and it isn't as easy as it # could be because of that. 2) We restore the .tmp_versions/ directory from # the one we saved off in BuildKernel above. This is to make sure we're # signing the modules we actually built/installed in that variant. 3) We # grab the arch and invoke mod-sign.sh command to actually sign the modules. # # We have to do all of those things _after_ find-debuginfo runs, otherwise # that will strip the signature off of the modules. # # Don't sign modules for the zfcpdump variant as it is monolithic. %define __modsign_install_post \ if [ "%{signmodules}" -eq "1" ]; then \ if [ "%{with_pae}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+lpae certs/signing_key.x509.sign+lpae $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+lpae/ \ fi \ if [ "%{with_realtime}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+rt certs/signing_key.x509.sign+rt $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+rt/ \ fi \ if [ "%{with_debug}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+debug certs/signing_key.x509.sign+debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+debug/ \ fi \ if [ "%{with_arm64_64k}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+64k certs/signing_key.x509.sign+64k $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+64k/ \ fi \ if [ "%{with_arm64_64k}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+64k-debug certs/signing_key.x509.sign+64k-debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+64k-debug/ \ fi \ if [ "%{with_realtime}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+rt-debug certs/signing_key.x509.sign+rt-debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+rt-debug/ \ fi \ if [ "%{with_realtime_arm64_64k}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+rt-64k certs/signing_key.x509.sign+rt-64k $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+rt-64k/ \ fi \ if [ "%{with_realtime_arm64_64k}" -ne "0" ] && [ "%{with_debug}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign+rt-64k-debug certs/signing_key.x509.sign+rt-64k-debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+rt-64k-debug/ \ fi \ if [ "%{with_up}" -ne "0" ]; then \ %{modsign_cmd} certs/signing_key.pem.sign certs/signing_key.x509.sign $RPM_BUILD_ROOT/lib/modules/%{KVERREL}/ \ fi \ fi \ if [ "%{zipmodules}" -eq "1" ]; then \ echo "Compressing kernel modules ..." \ find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | xargs -n 16 -P${RPM_BUILD_NCPUS} -r %compression %compression_flags; \ fi \ %{nil} ### ### Special hacks for debuginfo subpackages. ### # This macro is used by %%install, so we must redefine it before that. %define debug_package %{nil} %if %{with_debuginfo} %ifnarch noarch %global __debug_package 1 %files -f debugfiles.list debuginfo-common-%{_target_cpu} %endif %endif # We don't want to package debuginfo for self-tests and samples but # we have to delete them to avoid an error messages about unpackaged # files. # Delete the debuginfo for kernel-devel files %define __remove_unwanted_dbginfo_install_post \ if [ "%{with_selftests}" -ne "0" ]; then \ rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/ksamples; \ rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/kselftests; \ fi \ rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/src; \ %{nil} # # Disgusting hack alert! We need to ensure we sign modules *after* all # invocations of strip occur, which is in __debug_install_post if # find-debuginfo.sh runs, and __os_install_post if not. # %define __spec_install_post \ %{?__debug_package:%{__debug_install_post}}\ %{__arch_install_post}\ %{__os_install_post}\ %{__remove_unwanted_dbginfo_install_post}\ %{__restore_unstripped_root_post}\ %{__modsign_install_post} ### ### install ### %install cd linux-%{KVERREL} # re-define RPM_VMLINUX_H, because it doesn't carry over from %build RPM_VMLINUX_H="$(cat ../vmlinux_h_path)" %if %{with_doc} docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{specversion}-%{pkgrelease} # copy the source over mkdir -p $docdir tar -h -f - --exclude=man --exclude='.*' -c Documentation | tar xf - -C $docdir cat %{SOURCE2} | xz > $docdir/kernel.changelog.xz chmod 0644 $docdir/kernel.changelog.xz # with_doc %endif # We have to do the headers install before the tools install because the # kernel headers_install will remove any header files in /usr/include that # it doesn't install itself. %if %{with_headers} # Install kernel headers %{__make} ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install find $RPM_BUILD_ROOT/usr/include \ \( -name .install -o -name .check -o \ -name ..install.cmd -o -name ..check.cmd \) -delete %endif %if %{with_cross_headers} %if 0%{?fedora} HDR_ARCH_LIST='arm arm64 powerpc s390 x86' %else HDR_ARCH_LIST='arm64 powerpc s390 x86' %endif mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers for arch in $HDR_ARCH_LIST; do mkdir $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} %{__make} ARCH=${arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} headers_install done find $RPM_BUILD_ROOT/usr/tmp-headers \ \( -name .install -o -name .check -o \ -name ..install.cmd -o -name ..check.cmd \) -delete # Copy all the architectures we care about to their respective asm directories for arch in $HDR_ARCH_LIST ; do mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include mv $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/ done rm -rf $RPM_BUILD_ROOT/usr/tmp-headers %endif %if %{with_kernel_abi_stablelists} # kabi directory INSTALL_KABI_PATH=$RPM_BUILD_ROOT/lib/modules/ mkdir -p $INSTALL_KABI_PATH # install kabi releases directories tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH # with_kernel_abi_stablelists %endif %if %{with_perf} # perf tool binary and supporting scripts/binaries %{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin # remove the 'trace' symlink. rm -f %{buildroot}%{_bindir}/trace # For both of the below, yes, this should be using a macro but right now # it's hard coded and we don't actually want it anyway right now. # Whoever wants examples can fix it up! # remove examples rm -rf %{buildroot}/usr/lib/perf/examples rm -rf %{buildroot}/usr/lib/perf/include # python-perf extension %{perf_make} DESTDIR=$RPM_BUILD_ROOT install-python_ext # perf man pages (note: implicit rpm magic compresses them later) mkdir -p %{buildroot}/%{_mandir}/man1 %{perf_make} DESTDIR=$RPM_BUILD_ROOT install-man # remove any tracevent files, eg. its plugins still gets built and installed, # even if we build against system's libtracevent during perf build (by setting # LIBTRACEEVENT_DYNAMIC=1 above in perf_make macro). Those files should already # ship with libtraceevent package. rm -rf %{buildroot}%{_libdir}/traceevent # libperf make -C tools/lib/perf DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} V=1 install rm -f %{buildroot}%{_libdir}/libperf.a %endif %if %{with_tools} %ifarch %{cpupowerarchs} %{make} -C tools/power/cpupower DESTDIR=$RPM_BUILD_ROOT libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install rm -f %{buildroot}%{_libdir}/*.{a,la} %find_lang cpupower mv cpupower.lang ../ %ifarch x86_64 pushd tools/power/cpupower/debug/x86_64 install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode popd %endif chmod 0755 %{buildroot}%{_libdir}/libcpupower.so* mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig install -m644 %{SOURCE2000} %{buildroot}%{_unitdir}/cpupower.service install -m644 %{SOURCE2001} %{buildroot}%{_sysconfdir}/sysconfig/cpupower %endif %ifarch x86_64 mkdir -p %{buildroot}%{_mandir}/man8 pushd tools/power/x86/x86_energy_perf_policy %{tools_make} DESTDIR=%{buildroot} install popd pushd tools/power/x86/turbostat %{tools_make} DESTDIR=%{buildroot} install popd pushd tools/power/x86/intel-speed-select %{tools_make} DESTDIR=%{buildroot} install popd pushd tools/arch/x86/intel_sdsi %{tools_make} CFLAGS="${RPM_OPT_FLAGS}" DESTDIR=%{buildroot} install popd %endif pushd tools/thermal/tmon %{tools_make} INSTALL_ROOT=%{buildroot} install popd pushd tools/bootconfig %{tools_make} DESTDIR=%{buildroot} install popd pushd tools/iio %{tools_make} DESTDIR=%{buildroot} install popd pushd tools/gpio %{tools_make} DESTDIR=%{buildroot} install popd install -m644 -D %{SOURCE2002} %{buildroot}%{_sysconfdir}/logrotate.d/kvm_stat pushd tools/kvm/kvm_stat %{__make} INSTALL_ROOT=%{buildroot} install-tools %{__make} INSTALL_ROOT=%{buildroot} install-man install -m644 -D kvm_stat.service %{buildroot}%{_unitdir}/kvm_stat.service popd # install VM tools pushd tools/mm/ install -m755 slabinfo %{buildroot}%{_bindir}/slabinfo install -m755 page_owner_sort %{buildroot}%{_bindir}/page_owner_sort popd pushd tools/verification/rv/ %{tools_make} DESTDIR=%{buildroot} install popd pushd tools/tracing/rtla/ %{tools_make} DESTDIR=%{buildroot} install rm -f %{buildroot}%{_bindir}/hwnoise rm -f %{buildroot}%{_bindir}/osnoise rm -f %{buildroot}%{_bindir}/timerlat (cd %{buildroot} ln -sf rtla ./%{_bindir}/hwnoise ln -sf rtla ./%{_bindir}/osnoise ln -sf rtla ./%{_bindir}/timerlat ) popd %endif %if %{with_selftests} pushd samples install -d %{buildroot}%{_libexecdir}/ksamples # install bpf samples pushd bpf install -d %{buildroot}%{_libexecdir}/ksamples/bpf find -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/bpf \; install -m755 *.sh %{buildroot}%{_libexecdir}/ksamples/bpf # test_lwt_bpf.sh compiles test_lwt_bpf.c when run; this works only from the # kernel tree. Just remove it. rm %{buildroot}%{_libexecdir}/ksamples/bpf/test_lwt_bpf.sh install -m644 *_kern.o %{buildroot}%{_libexecdir}/ksamples/bpf || true install -m644 tcp_bpf.readme %{buildroot}%{_libexecdir}/ksamples/bpf popd # install pktgen samples pushd pktgen install -d %{buildroot}%{_libexecdir}/ksamples/pktgen find . -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \; find . -type f ! -executable -exec install -m644 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \; popd popd # install mm selftests pushd tools/testing/selftests/mm find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/mm/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/mm/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/mm/{} \; popd # install cgroup selftests pushd tools/testing/selftests/cgroup find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/cgroup/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/cgroup/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/cgroup/{} \; popd # install drivers/net/mlxsw selftests pushd tools/testing/selftests/drivers/net/mlxsw find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \; popd # install drivers/net/netdevsim selftests pushd tools/testing/selftests/drivers/net/netdevsim find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/netdevsim/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/netdevsim/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/netdevsim/{} \; popd # install drivers/net/bonding selftests pushd tools/testing/selftests/drivers/net/bonding find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/bonding/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/bonding/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/bonding/{} \; popd # install net/forwarding selftests pushd tools/testing/selftests/net/forwarding find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \; popd # install net/mptcp selftests pushd tools/testing/selftests/net/mptcp find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/mptcp/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/mptcp/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/mptcp/{} \; popd # install tc-testing selftests pushd tools/testing/selftests/tc-testing find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \; popd # install livepatch selftests pushd tools/testing/selftests/livepatch find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \; popd # install net/netfilter selftests pushd tools/testing/selftests/net/netfilter find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/netfilter/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/netfilter/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/netfilter/{} \; popd # install memfd selftests pushd tools/testing/selftests/memfd find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/memfd/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/memfd/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/memfd/{} \; popd # install iommu selftests pushd tools/testing/selftests/iommu find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/iommu/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/iommu/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/iommu/{} \; popd # install cachestat selftests pushd tools/testing/selftests/cachestat find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/cachestat/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/cachestat/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/cachestat/{} \; popd %endif ### ### clean ### ### ### scripts ### %if %{with_tools} %post -n kernel-tools %systemd_post cpupower.service %preun -n kernel-tools %systemd_preun cpupower.service %postun -n kernel-tools %systemd_postun cpupower.service %post -n kernel-tools-libs /sbin/ldconfig %postun -n kernel-tools-libs /sbin/ldconfig %endif # # This macro defines a %%post script for a kernel*-devel package. # %%kernel_devel_post [] # Note we don't run hardlink if ostree is in use, as ostree is # a far more sophisticated hardlink implementation. # https://github.com/projectatomic/rpm-ostree/commit/58a79056a889be8814aa51f507b2c7a4dccee526 # # The deletion of *.hardlink-temporary files is a temporary workaround # for this bug in the hardlink binary (fixed in util-linux 2.38): # https://github.com/util-linux/util-linux/issues/1602 # %define kernel_devel_post() \ %{expand:%%post %{?1:%{1}-}devel}\ if [ -f /etc/sysconfig/kernel ]\ then\ . /etc/sysconfig/kernel || exit $?\ fi\ if [ "$HARDLINK" != "no" -a -x /usr/bin/hardlink -a ! -e /run/ostree-booted ] \ then\ (cd /usr/src/kernels/%{KVERREL}%{?1:+%{1}} &&\ /usr/bin/find . -type f | while read f; do\ hardlink -c /usr/src/kernels/*%{?dist}.*/$f $f > /dev/null\ done;\ /usr/bin/find /usr/src/kernels -type f -name '*.hardlink-temporary' -delete\ )\ fi\ %if %{with_cross}\ echo "Building scripts and resolve_btfids"\ env --unset=ARCH make -C /usr/src/kernels/%{KVERREL}%{?1:+%{1}} prepare_after_cross\ %endif\ %{nil} # # This macro defines a %%post script for a kernel*-modules-extra package. # It also defines a %%postun script that does the same thing. # %%kernel_modules_extra_post [] # %define kernel_modules_extra_post() \ %{expand:%%post %{?1:%{1}-}modules-extra}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil}\ %{expand:%%postun %{?1:%{1}-}modules-extra}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil} # # This macro defines a %%post script for a kernel*-modules-internal package. # It also defines a %%postun script that does the same thing. # %%kernel_modules_internal_post [] # %define kernel_modules_internal_post() \ %{expand:%%post %{?1:%{1}-}modules-internal}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil}\ %{expand:%%postun %{?1:%{1}-}modules-internal}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil} # # This macro defines a %%post script for a kernel*-modules-partner package. # It also defines a %%postun script that does the same thing. # %%kernel_modules_partner_post [] # %define kernel_modules_partner_post() \ %{expand:%%post %{?1:%{1}-}modules-partner}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil}\ %{expand:%%postun %{?1:%{1}-}modules-partner}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil} # # This macro defines a %%post script for a kernel*-modules package. # It also defines a %%postun script that does the same thing. # %%kernel_modules_post [] # %define kernel_modules_post() \ %{expand:%%post %{?1:%{1}-}modules}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ if [ ! -f %{_localstatedir}/lib/rpm-state/%{name}/installing_core_%{KVERREL}%{?1:+%{1}} ]; then\ mkdir -p %{_localstatedir}/lib/rpm-state/%{name}\ touch %{_localstatedir}/lib/rpm-state/%{name}/need_to_run_dracut_%{KVERREL}%{?1:+%{1}}\ fi\ %{nil}\ %{expand:%%postun %{?1:%{1}-}modules}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil}\ %{expand:%%posttrans %{?1:%{1}-}modules}\ if [ -f %{_localstatedir}/lib/rpm-state/%{name}/need_to_run_dracut_%{KVERREL}%{?1:+%{1}} ]; then\ rm -f %{_localstatedir}/lib/rpm-state/%{name}/need_to_run_dracut_%{KVERREL}%{?1:+%{1}}\ echo "Running: dracut -f --kver %{KVERREL}%{?1:+%{1}}"\ dracut -f --kver "%{KVERREL}%{?1:+%{1}}" || exit $?\ fi\ %{nil} # # This macro defines a %%post script for a kernel*-modules-core package. # %%kernel_modules_core_post [] # %define kernel_modules_core_post() \ %{expand:%%posttrans %{?1:%{1}-}modules-core}\ /sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ %{nil} # This macro defines a %%posttrans script for a kernel package. # %%kernel_variant_posttrans [-v ] [-u uki-suffix] # More text can follow to go at the end of this variant's %%post. # %define kernel_variant_posttrans(v:u:) \ %{expand:%%posttrans %{?-v:%{-v*}-}%{!?-u*:core}%{?-u*:uki-%{-u*}}}\ %if 0%{!?fedora:1}\ if [ -x %{_sbindir}/weak-modules ]\ then\ %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?-v:+%{-v*}} || exit $?\ fi\ %endif\ rm -f %{_localstatedir}/lib/rpm-state/%{name}/installing_core_%{KVERREL}%{?-v:+%{-v*}}\ /bin/kernel-install add %{KVERREL}%{?-v:+%{-v*}} /lib/modules/%{KVERREL}%{?-v:+%{-v*}}/vmlinuz%{?-u:-%{-u*}.efi} || exit $?\ if [[ ! -e "/boot/symvers-%{KVERREL}%{?-v:+%{-v*}}.gz" ]]; then\ ln -s "/lib/modules/%{KVERREL}%{?-v:+%{-v*}}/symvers.gz" "/boot/symvers-%{KVERREL}%{?-v:+%{-v*}}.gz"\ command -v restorecon &>/dev/null && restorecon "/boot/symvers-%{KVERREL}%{?-v:+%{-v*}}.gz" \ fi\ %{nil} # # This macro defines a %%post script for a kernel package and its devel package. # %%kernel_variant_post [-v ] [-r ] # More text can follow to go at the end of this variant's %%post. # %define kernel_variant_post(v:r:) \ %{expand:%%kernel_devel_post %{?-v*}}\ %{expand:%%kernel_modules_post %{?-v*}}\ %{expand:%%kernel_modules_core_post %{?-v*}}\ %{expand:%%kernel_modules_extra_post %{?-v*}}\ %{expand:%%kernel_modules_internal_post %{?-v*}}\ %if 0%{!?fedora:1}\ %{expand:%%kernel_modules_partner_post %{?-v*}}\ %endif\ %{expand:%%kernel_variant_posttrans %{?-v*:-v %{-v*}}}\ %{expand:%%post %{?-v*:%{-v*}-}core}\ %{-r:\ if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\ [ -f /etc/sysconfig/kernel ]; then\ /bin/sed -r -i -e 's/^DEFAULTKERNEL=%{-r*}$/DEFAULTKERNEL=kernel%{?-v:-%{-v*}}/' /etc/sysconfig/kernel || exit $?\ fi}\ mkdir -p %{_localstatedir}/lib/rpm-state/%{name}\ touch %{_localstatedir}/lib/rpm-state/%{name}/installing_core_%{KVERREL}%{?-v:+%{-v*}}\ %{nil} # # This macro defines a %%preun script for a kernel package. # %%kernel_variant_preun [-v ] -u [uki-suffix] -e # Add kernel-install's --entry-type=type1|type2|all option (if supported) to limit removal # to a specific boot entry type. # %define kernel_variant_preun(v:u:e) \ %{expand:%%preun %{?-v:%{-v*}-}%{!?-u*:core}%{?-u*:uki-%{-u*}}}\ entry_type=""\ %{-e: \ /bin/kernel-install --help|grep -q -- '--entry-type ' &&\ entry_type="--entry-type %{!?-u:type1}%{?-u:type2}" \ }\ /bin/kernel-install remove %{KVERREL}%{?-v:+%{-v*}} $entry_type || exit $?\ if [ -x %{_sbindir}/weak-modules ]\ then\ %{_sbindir}/weak-modules --remove-kernel %{KVERREL}%{?-v:+%{-v*}} || exit $?\ fi\ %{nil} %if %{efiuki} %kernel_variant_posttrans -u virt %kernel_variant_preun -u virt -e %endif %kernel_variant_preun -e %kernel_variant_post -r kernel-smp %if %{with_pae} %kernel_variant_preun -v lpae %kernel_variant_post -v lpae -r (kernel|kernel-smp) %endif %if %{with_zfcpdump} %kernel_variant_preun -v zfcpdump %kernel_variant_post -v zfcpdump %endif %if %{with_arm64_64k} %kernel_variant_preun -v 64k %kernel_variant_post -v 64k %endif %if %{with_debug} && %{with_arm64_64k} %kernel_variant_preun -v 64k-debug %kernel_variant_post -v 64k-debug %endif %if %{with_realtime} %kernel_variant_preun -v rt %kernel_variant_post -v rt %endif %if %{with_debug} && %{with_realtime} %kernel_variant_preun -v rt-debug %kernel_variant_post -v rt-debug %endif %if %{with_realtime_arm64_64k} %kernel_variant_preun -v rt-64k %kernel_variant_post -v rt-64k %endif %if %{with_debug} && %{with_realtime_arm64_64k} %kernel_variant_preun -v rt-64k-debug %kernel_variant_post -v rt-64k-debug %endif %if %{with_debug} %if %{efiuki} %kernel_variant_posttrans -v debug -u virt %kernel_variant_preun -v debug -u virt -e %endif %kernel_variant_preun -v debug -e %kernel_variant_post -v debug %endif if [ -x /sbin/ldconfig ] then /sbin/ldconfig -X || exit $? fi ### ### file lists ### %if %{with_headers} %files headers /usr/include/* %exclude %{_includedir}/cpufreq.h %exclude %{_includedir}/internal/ %exclude %{_includedir}/perf/ %endif %if %{with_cross_headers} %files cross-headers /usr/*-linux-gnu/include/* %endif %if %{with_kernel_abi_stablelists} %files -n kernel-abi-stablelists /lib/modules/kabi-* %endif %if %{with_kabidw_base} %ifarch x86_64 s390x ppc64 ppc64le aarch64 %files kernel-kabidw-base-internal %defattr(-,root,root) /kabidw-base/%{_target_cpu}/* %endif %endif # only some architecture builds need kernel-doc %if %{with_doc} %files doc %defattr(-,root,root) %{_datadir}/doc/kernel-doc-%{specversion}-%{pkgrelease}/Documentation/* %dir %{_datadir}/doc/kernel-doc-%{specversion}-%{pkgrelease}/Documentation %dir %{_datadir}/doc/kernel-doc-%{specversion}-%{pkgrelease} %{_datadir}/doc/kernel-doc-%{specversion}-%{pkgrelease}/kernel.changelog.xz %endif %if %{with_perf} %files -n perf %{_bindir}/perf %{_libdir}/libperf-jvmti.so %dir %{_libexecdir}/perf-core %{_libexecdir}/perf-core/* %{_datadir}/perf-core/* %{_mandir}/man[1-8]/perf* %{_sysconfdir}/bash_completion.d/perf %doc linux-%{KVERREL}/tools/perf/Documentation/examples.txt %{_docdir}/perf-tip/tips.txt %files -n python3-perf %{python3_sitearch}/* %files -n libperf %{_libdir}/libperf.so.0 %{_libdir}/libperf.so.0.0.1 %files -n libperf-devel %{_libdir}/libperf.so %{_libdir}/pkgconfig/libperf.pc %{_includedir}/perf/ %{_includedir}/internal/ %{_mandir}/man3/libperf.* %{_mandir}/man7/libperf-counting.* %{_mandir}/man7/libperf-sampling.* %{_docdir}/libperf/ %if %{with_debuginfo} %files -f perf-debuginfo.list -n perf-debuginfo %files -f python3-perf-debuginfo.list -n python3-perf-debuginfo %files -f libperf-debuginfo.list -n libperf-debuginfo %endif # with_perf %endif %if %{with_tools} %ifnarch %{cpupowerarchs} %files -n kernel-tools %else %files -n kernel-tools -f cpupower.lang %{_bindir}/cpupower %{_datadir}/bash-completion/completions/cpupower %ifarch x86_64 %{_bindir}/centrino-decode %{_bindir}/powernow-k8-decode %endif %{_unitdir}/cpupower.service %{_mandir}/man[1-8]/cpupower* %config(noreplace) %{_sysconfdir}/sysconfig/cpupower %ifarch x86_64 %{_bindir}/x86_energy_perf_policy %{_mandir}/man8/x86_energy_perf_policy* %{_bindir}/turbostat %{_mandir}/man8/turbostat* %{_bindir}/intel-speed-select %{_sbindir}/intel_sdsi %endif # cpupowerarchs %endif %{_bindir}/tmon %{_bindir}/bootconfig %{_bindir}/iio_event_monitor %{_bindir}/iio_generic_buffer %{_bindir}/lsiio %{_bindir}/lsgpio %{_bindir}/gpio-hammer %{_bindir}/gpio-event-mon %{_bindir}/gpio-watch %{_mandir}/man1/kvm_stat* %{_bindir}/kvm_stat %{_unitdir}/kvm_stat.service %config(noreplace) %{_sysconfdir}/logrotate.d/kvm_stat %{_bindir}/page_owner_sort %{_bindir}/slabinfo %if %{with_debuginfo} %files -f kernel-tools-debuginfo.list -n kernel-tools-debuginfo %endif %ifarch %{cpupowerarchs} %files -n kernel-tools-libs %{_libdir}/libcpupower.so.1 %{_libdir}/libcpupower.so.0.0.1 %files -n kernel-tools-libs-devel %{_libdir}/libcpupower.so %{_includedir}/cpufreq.h %endif %files -n rtla %{_bindir}/rtla %{_bindir}/hwnoise %{_bindir}/osnoise %{_bindir}/timerlat %{_mandir}/man1/rtla-hwnoise.1.gz %{_mandir}/man1/rtla-osnoise-hist.1.gz %{_mandir}/man1/rtla-osnoise-top.1.gz %{_mandir}/man1/rtla-osnoise.1.gz %{_mandir}/man1/rtla-timerlat-hist.1.gz %{_mandir}/man1/rtla-timerlat-top.1.gz %{_mandir}/man1/rtla-timerlat.1.gz %{_mandir}/man1/rtla.1.gz %files -n rv %{_bindir}/rv %{_mandir}/man1/rv-list.1.gz %{_mandir}/man1/rv-mon-wip.1.gz %{_mandir}/man1/rv-mon-wwnr.1.gz %{_mandir}/man1/rv-mon.1.gz %{_mandir}/man1/rv-mon-sched.1.gz %{_mandir}/man1/rv.1.gz # with_tools %endif %if %{with_selftests} %files selftests-internal %{_libexecdir}/ksamples %{_libexecdir}/kselftests %endif # empty meta-package %if %{with_up} %ifnarch %nobuildarches noarch %files %endif %endif # This is %%{image_install_path} on an arch where that includes ELF files, # or empty otherwise. %define elf_image_install_path %{?kernel_image_elf:%{image_install_path}} # # This macro defines the %%files sections for a kernel package # and its devel and debuginfo packages. # %%kernel_variant_files [-k vmlinux] # %define kernel_variant_files(k:) \ %if %{2}\ %{expand:%%files %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\ %{!?_licensedir:%global license %%doc}\ %%license linux-%{KVERREL}/COPYING-%{version}-%{release}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\ %ghost /%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?3:+%{3}}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/.vmlinuz.hmac \ %ghost /%{image_install_path}/.vmlinuz-%{KVERREL}%{?3:+%{3}}.hmac \ %ifarch %{arm} aarch64\ /lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \ %ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \ %endif\ %attr(0600, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\ %ghost %attr(0600, root, root) /boot/System.map-%{KVERREL}%{?3:+%{3}}\ %dir /lib/modules\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\ /lib/modules/%{KVERREL}%{?3:+%{3}}/config\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.builtin*\ %ghost %attr(0600, root, root) /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\ %ghost %attr(0600, root, root) /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\ %ghost %attr(0644, root, root) /boot/config-%{KVERREL}%{?3:+%{3}}\ %{expand:%%files -f kernel-%{?3:%{3}-}modules-core.list %{?3:%{3}-}modules-core}\ %dir /lib/modules\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\ /lib/modules/%{KVERREL}%{?3:+%{3}}/build\ /lib/modules/%{KVERREL}%{?3:+%{3}}/source\ /lib/modules/%{KVERREL}%{?3:+%{3}}/updates\ /lib/modules/%{KVERREL}%{?3:+%{3}}/weak-updates\ /lib/modules/%{KVERREL}%{?3:+%{3}}/systemtap\ %{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}\ %if %{1}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\ %endif\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.block\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.drm\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.modesetting\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.networking\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.order\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.alias\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.alias.bin\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.builtin.alias.bin\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.builtin.bin\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.dep\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.dep.bin\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.devname\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.softdep\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.symbols\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.symbols.bin\ %{expand:%%files -f kernel-%{?3:%{3}-}modules.list %{?3:%{3}-}modules}\ %{expand:%%files %{?3:%{3}-}devel}\ %defverify(not mtime)\ /usr/src/kernels/%{KVERREL}%{?3:+%{3}}\ %{expand:%%files %{?3:%{3}-}devel-matched}\ %{expand:%%files -f kernel-%{?3:%{3}-}modules-extra.list %{?3:%{3}-}modules-extra}\ %config(noreplace) /etc/modprobe.d/*-blacklist.conf\ %{expand:%%files %{?3:%{3}-}modules-internal}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/internal\ %if 0%{!?fedora:1}\ %{expand:%%files %{?3:%{3}-}modules-partner}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/partner\ %endif\ %if %{with_debuginfo}\ %ifnarch noarch\ %{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\ %endif\ %endif\ %if %{efiuki}\ %if "%{3}" != "rt" && "%{3}" != "rt-debug" && "%{3}" != "rt-64k" && "%{3}" != "rt-64k-debug"\ %{expand:%%files %{?3:%{3}-}uki-virt}\ %dir /lib/modules\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}\ %attr(0600, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\ /lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\ /lib/modules/%{KVERREL}%{?3:+%{3}}/config\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.builtin*\ %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-virt.efi\ %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/.%{?-k:%{-k*}}%{!?-k:vmlinuz}-virt.efi.hmac\ %ghost /%{image_install_path}/efi/EFI/Linux/%{?-k:%{-k*}}%{!?-k:*}-%{KVERREL}%{?3:+%{3}}.efi\ %{expand:%%files %{?3:%{3}-}uki-virt-addons}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-virt.efi.extra.d/ \ /lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-virt.efi.extra.d/*.addon.efi\ %endif\ %endif\ %if %{?3:1} %{!?3:0}\ %{expand:%%files %{3}}\ %endif\ %if %{with_gcov}\ %ifnarch %nobuildarches noarch\ %{expand:%%files -f kernel-%{?3:%{3}-}gcov.list %{?3:%{3}-}gcov}\ %endif\ %endif\ %endif\ %{nil} %kernel_variant_files %{_use_vdso} %{with_up} %kernel_variant_files %{_use_vdso} %{with_debug} debug %if %{with_arm64_64k} %kernel_variant_files %{_use_vdso} %{with_debug} 64k-debug %endif %kernel_variant_files %{_use_vdso} %{with_realtime} rt %if %{with_realtime} %kernel_variant_files %{_use_vdso} %{with_debug} rt-debug %endif %if %{with_realtime_arm64_64k} %kernel_variant_files %{_use_vdso} %{with_debug} rt-64k-debug %endif %if %{with_debug_meta} %files debug %files debug-core %files debug-devel %files debug-devel-matched %files debug-modules %files debug-modules-core %files debug-modules-extra %if %{with_arm64_64k} %files 64k-debug %files 64k-debug-core %files 64k-debug-devel %files 64k-debug-devel-matched %files 64k-debug-modules %files 64k-debug-modules-extra %endif %endif %kernel_variant_files %{use_vdso} %{with_pae} lpae %kernel_variant_files %{_use_vdso} %{with_zfcpdump} zfcpdump %kernel_variant_files %{_use_vdso} %{with_arm64_64k} 64k %kernel_variant_files %{_use_vdso} %{with_realtime_arm64_64k} rt-64k # plz don't put in a version string unless you're going to tag # and build. # # %changelog * Mon Oct 27 2025 CKI KWF Bot [5.14.0-631.el9] - md: delete mddev kobj before deleting gendisk kobj (Nigel Croxon) [RHEL-94433] - md: fix how device node is created and removed (Nigel Croxon) [RHEL-94433] - md: prevent incorrect update of resync/recovery offset (Nigel Croxon) [RHEL-94433] - md/raid1: fix data lost for writemostly rdev (Nigel Croxon) [RHEL-94433] - md: fix sync_action incorrect display during resync (Nigel Croxon) [RHEL-94433] - md: add helper rdev_needs_recovery() (Nigel Croxon) [RHEL-94433] - md: keep recovery_cp in mdp_superblock_s (Nigel Croxon) [RHEL-94433] - md: add legacy_async_del_gendisk mode (Nigel Croxon) [RHEL-20191 RHEL-94433 RHEL-9656] - md: make rdev_addable usable for rcu mode (Nigel Croxon) [RHEL-94433] {CVE-2025-38621} - md/raid1: remove struct pool_info and related code (Nigel Croxon) [RHEL-94433] - md/raid1: change r1conf->r1bio_pool to a pointer type (Nigel Croxon) [RHEL-94433] - md: rename recovery_cp to resync_offset (Nigel Croxon) [RHEL-94433] - md/md-cluster: handle REMOVE message earlier (Nigel Croxon) [RHEL-94433] - md: fix create on open mddev lifetime regression (Nigel Croxon) [RHEL-94433] - md/raid10: set chunk_sectors limit (Nigel Croxon) [RHEL-94433] - md/raid0: set chunk_sectors limit (Nigel Croxon) [RHEL-94433] - md: allow removing faulty rdev during resync (Nigel Croxon) [RHEL-94433] - md/raid5: unset WQ_CPU_INTENSIVE for raid5 unbound workqueue (Nigel Croxon) [RHEL-94433] - md: remove/add redundancy group only in level change (Nigel Croxon) [RHEL-20191 RHEL-94433 RHEL-9656] - md: Don't clear MD_CLOSING until mddev is freed (Nigel Croxon) [RHEL-20191 RHEL-94433 RHEL-9656] - md: call del_gendisk in control path (Nigel Croxon) [RHEL-20191 RHEL-94433 RHEL-9656] - md/md-bitmap: fix GPF in bitmap_get_stats() (Nigel Croxon) [RHEL-94433] {CVE-2025-38451} - md/raid1,raid10: strip REQ_NOWAIT from member bios (Nigel Croxon) [RHEL-94433] - raid10: cleanup memleak at raid10_make_request (Nigel Croxon) [RHEL-94433] {CVE-2025-38444} - md/raid1: Fix stack memory use after return in raid1_reshape (Nigel Croxon) [RHEL-94433] {CVE-2025-38445} - md/md-bitmap: remove parameter slot from bitmap_create() (Nigel Croxon) [RHEL-94433] - md/md-bitmap: cleanup bitmap_ops->startwrite() (Nigel Croxon) [RHEL-94433] - md/dm-raid: remove max_write_behind setting limit (Nigel Croxon) [RHEL-94433] - md/md-bitmap: fix dm-raid max_write_behind setting (Nigel Croxon) [RHEL-94433] - md/raid1,raid10: don't handle IO error for REQ_RAHEAD and REQ_NOWAIT (Nigel Croxon) [RHEL-94433] - md/md-bitmap: fix stats collection for external bitmaps (Nigel Croxon) [RHEL-94433] - md/raid10: fix missing discard IO accounting (Nigel Croxon) [RHEL-94433] - tcp: Don't call reqsk_fastopen_remove() in tcp_conn_request(). (Paolo Abeni) [RHEL-115628] - tcp: Clear tcp_sk(sk)->fastopen_rsk in tcp_disconnect(). (Paolo Abeni) [RHEL-115628] {CVE-2025-39955} - tcp: check space before adding MPTCP SYN options (Paolo Abeni) [RHEL-115628] - octeon_ep: Validate the VF ID (Kamal Heib) [RHEL-113707] * Sat Oct 25 2025 CKI KWF Bot [5.14.0-630.el9] - crypto: xts - Handle EBUSY correctly (CKI Backport Bot) [RHEL-119237] {CVE-2023-53494} - xfrm: use kfree_sensitive() for SA secret zeroization (Sabrina Dubroca) [RHEL-115629] - espintcp: remove encap socket caching to avoid reference leak (Sabrina Dubroca) [RHEL-115629] - espintcp: fix skb leaks (Sabrina Dubroca) [RHEL-115629] - ext4: goto right label 'out_mmap_sem' in ext4_setattr() (Brian Foster) [RHEL-109217] - mm: zero range of eof folio exposed by inode size extension (Brian Foster) [RHEL-109217] - mm: convert pagecache_isize_extended to use a folio (Brian Foster) [RHEL-109217] - ext4: partial zero eof block on unaligned inode size extension (Brian Foster) [RHEL-109217] - ext4: do not mark inode dirty every time when appending using delalloc (Brian Foster) [RHEL-109217] - uki-virt: add systemd-repart module (Emanuele Giuseppe Esposito) [RHEL-107273] * Thu Oct 23 2025 CKI KWF Bot [5.14.0-629.el9] - kexec_core: accept unaccepted kexec segments' destination addresses (Baoquan He) [RHEL-114163] - crash: fix spelling mistake "crahskernel" -> "crashkernel" (Baoquan He) [RHEL-114163] - crash, powerpc: default to CRASH_DUMP=n on PPC_BOOK3S_32 (Baoquan He) [RHEL-114163] - kexec/crash: no crash update when kexec in progress (Baoquan He) [RHEL-114163] - ixgbe: fix ixgbe_orom_civd_info struct layout (CKI Backport Bot) [RHEL-117603] - macsec: read MACSEC_SA_ATTR_PN with nla_get_uint (CKI Backport Bot) [RHEL-115622] - macsec: MACsec SCI assignment for ES = 0 (CKI Backport Bot) [RHEL-115622] - netfilter: nf_reject: don't leak dst refcount for loopback packets (Florian Westphal) [RHEL-115630] - netfilter: nf_tables: reject duplicate device on updates (Florian Westphal) [RHEL-115630] - netfilter: nft_socket: remove WARN_ON_ONCE with huge level value (Florian Westphal) [RHEL-115630] - netfilter: ctnetlink: remove refcounting in expectation dumpers (Florian Westphal) [RHEL-115630] - netfilter: ctnetlink: fix refcount leak on table dump (Florian Westphal) [RHEL-115630] - bpf: Check netfilter ctx accesses are aligned (Florian Westphal) [RHEL-115630] - netfilter: xt_nfacct: don't assume acct name is null-terminated (Florian Westphal) [RHEL-115630] - bpf: Disable migration in nf_hook_run_bpf(). (Florian Westphal) [RHEL-115630] - netfilter: flowtable: account for Ethernet header in nf_flow_pppoe_proto() (Florian Westphal) [RHEL-115630] - netfilter: nf_set_pipapo_avx2: fix initial map fill (Florian Westphal) [RHEL-115630] - ipvs: fix uninit-value for saddr in do_output_route4 (Florian Westphal) [RHEL-115630] - netfilter: bridge: Move specific fragmented packet to slow_path instead of dropping it (Florian Westphal) [RHEL-115630] - netfilter: nf_tables: imbalance in flowtable binding (Florian Westphal) [RHEL-115630] - netfilter: nat: restore default DNAT behavior (Florian Westphal) [RHEL-115630] - sctp: initialize more fields in sctp_v6_from_sk() (Xin Long) [RHEL-115641] - sctp: Do not wake readers in __sctp_write_space() (Xin Long) [RHEL-115641] - selftests/bpf: Skip timer cases when bpf_timer is not supported (Gregory Bell) [RHEL-83826] - bpf: Reject bpf_timer for PREEMPT_RT (Gregory Bell) [RHEL-83826] - fs: fix UAF/GPF bug in nilfs_mdt_destroy (CKI Backport Bot) [RHEL-116661] {CVE-2022-50367} - octeon_ep: fix VF MAC address lifecycle handling (Kamal Heib) [RHEL-109634] - dm: split write BIOs on zone boundaries when zone append is not emulated (Ming Lei) [RHEL-111097] - dm: Check for forbidden splitting of zone write operations (Ming Lei) [RHEL-111097] - dm: dm-crypt: Do not partially accept write BIOs with zoned targets (Ming Lei) [RHEL-111097] - dm: Always split write BIOs to zoned device limits (Ming Lei) [RHEL-111097] - block: Introduce bio_needs_zone_write_plugging() (Ming Lei) [RHEL-111097] - block: Make REQ_OP_ZONE_FINISH a write operation (Ming Lei) [RHEL-111097] - block: restore default wbt enablement (Ming Lei) [RHEL-112997] - devtmpfs: don't use vfs_getattr_nosec to query i_mode (Ming Lei) [RHEL-112997] - fs: add kern_path_locked_negative() (Ming Lei) [RHEL-112997] - VFS: add common error checks to lookup_one_qstr_excl() (Ming Lei) [RHEL-112997] - fs: simplify misleading code to remove ambiguity regarding ihold()/iput() (Ming Lei) [RHEL-112997] - VFS: change kern_path_locked() and user_path_locked_at() to never return negative dentry (Ming Lei) [RHEL-112997] - ksmbd: fix racy issue from using ->d_parent and ->d_name (Ming Lei) [RHEL-112997] - VFS: filename_create(): fix incorrect intent. (Ming Lei) [RHEL-112997] - rename __filename_parentat() to filename_parentat() (Ming Lei) [RHEL-112997] - fs: move the bdex_statx call to vfs_getattr_nosec (Ming Lei) [RHEL-112997] - dm table: Fix W=1 build warning when mempool_needs_integrity is unused (Ming Lei) [RHEL-112997] - block: don't silently ignore metadata for sync read/write (Ming Lei) [RHEL-112997] - ext4: add __GFP_NOWARN to GFP_NOWAIT in readahead (Ming Lei) [RHEL-112997] - block: validate QoS before calling __rq_qos_done_bio() (Ming Lei) [RHEL-112997] - block: avoid cpu_hotplug_lock depedency on freeze_lock (Ming Lei) [RHEL-112997] - block: decrement block_rq_qos static key in rq_qos_del() (Ming Lei) [RHEL-112997] - block: skip q->rq_qos check in rq_qos_done_bio() (Ming Lei) [RHEL-112997] - blk-mq: fix lockdep warning in __blk_mq_update_nr_hw_queues (Ming Lei) [RHEL-112997] - block: make bio_integrity_map_user() static inline (Ming Lei) [RHEL-112997] - nbd: fix lockdep deadlock warning (Ming Lei) [RHEL-112997] - block: restore two stage elevator switch while running nr_hw_queue update (Ming Lei) [RHEL-112997] - md/raid10: fix set but not used variable in sync_request_write() (Ming Lei) [RHEL-112997] - block: fix module reference leak in mq-deadline I/O scheduler (Ming Lei) [RHEL-112997] - block: fix kobject leak in blk_unregister_queue (Ming Lei) [RHEL-112997] - nbd: fix uaf in nbd_genl_connect() error path (Ming Lei) [RHEL-112997] - brd: fix sleeping function called from invalid context in brd_insert_page() (Ming Lei) [RHEL-112997] - block: fix false warning in bdev_count_inflight_rw() (Ming Lei) [RHEL-112997] - aoe: defer rexmit timer downdev work to workqueue (Ming Lei) [RHEL-112997] - aoe: clean device rq_list in aoedev_downdev() (Ming Lei) [RHEL-112997] - block: Fix bvec_set_folio() for very large folios (Ming Lei) [RHEL-112997] - bio: Fix bio_first_folio() for SPARSEMEM without VMEMMAP (Ming Lei) [RHEL-112997] - block: don't use submit_bio_noacct_nocheck in blk_zone_wplug_bio_work (Ming Lei) [RHEL-112997] - block: Clear BIO_EMULATES_ZONE_APPEND flag on BIO completion (Ming Lei) [RHEL-112997] - block: flip iter directions in blk_rq_integrity_map_user() (Ming Lei) [RHEL-112997] - block: drop direction param from bio_integrity_copy_user() (Ming Lei) [RHEL-112997] - traceevent/block: Add REQ_ATOMIC flag to block trace events (Ming Lei) [RHEL-112997] - nvme-loop: avoid -Wflex-array-member-not-at-end warning (Ming Lei) [RHEL-112997] - blk-mq: add a copyright notice to blk-mq-dma.c (Ming Lei) [RHEL-112997] - blk-mq: move the DMA mapping code to a separate file (Ming Lei) [RHEL-112997] - cdrom: Remove unnecessary NULL check before unregister_sysctl_table() (Ming Lei) [RHEL-112997] - block: fix elv_update_nr_hw_queues() to reattach elevator (Ming Lei) [RHEL-112997] - brd: avoid extra xarray lookups on first write (Ming Lei) [RHEL-112997] - block: Remove obsolete configs BLK_MQ_{PCI,VIRTIO} (Ming Lei) [RHEL-112997] - block: remove the same_page output argument to bvec_try_merge_page (Ming Lei) [RHEL-112997] - block: unfreeze queue if realloc tag set fails during nr_hw_queues update (Ming Lei) [RHEL-112997] - md: clean up accounting for issued sync IO (Ming Lei) [RHEL-112997] - md: fix is_mddev_idle() (Ming Lei) [RHEL-112997] - md: add a new api sync_io_depth (Ming Lei) [RHEL-112997] - md: record dm-raid gendisk in mddev (Ming Lei) [RHEL-112997] - block: export API to get the number of bdev inflight IO (Ming Lei) [RHEL-112997] - block: clean up blk_mq_in_flight_rw() (Ming Lei) [RHEL-112997] - block: WARN if bdev inflight counter is negative (Ming Lei) [RHEL-112997] - block: reuse part_in_flight_rw for part_in_flight (Ming Lei) [RHEL-112997] - blk-mq: remove blk_mq_in_flight() (Ming Lei) [RHEL-112997] - block: move removing elevator after deleting disk->queue_kobj (Ming Lei) [RHEL-112997] - block: don't quiesce queue for calling elevator_set_none() (Ming Lei) [RHEL-112997] - fs: aio: initialize .ki_write_stream of read-write request (Ming Lei) [RHEL-112997] - dm-integrity: use bio_add_virt_nofail (Ming Lei) [RHEL-112997] - dm-bufio: use bio_add_virt_nofail (Ming Lei) [RHEL-112997] - rnbd-srv: use bio_add_virt_nofail (Ming Lei) [RHEL-112997] - block: simplify bio_map_kern (Ming Lei) [RHEL-112997] - block: pass the operation to bio_{map,copy}_kern (Ming Lei) [RHEL-112997] - block: remove the q argument from blk_rq_map_kern (Ming Lei) [RHEL-112997] - block: add a bio_add_vmalloc helpers (Ming Lei) [RHEL-112997] - block: add a bio_add_max_vecs helper (Ming Lei) [RHEL-112997] - block: add a bdev_rw_virt helper (Ming Lei) [RHEL-112997] - block: add a bio_add_virt_nofail helper (Ming Lei) [RHEL-112997] - block: fix warning on 'make htmldocs' (Ming Lei) [RHEL-112997] - block: expose write streams for block device nodes (Ming Lei) [RHEL-112997] - block: introduce a write_stream_granularity queue limit (Ming Lei) [RHEL-112997] - block: introduce max_write_streams queue limit (Ming Lei) [RHEL-112997] - block: add a bi_write_stream field (Ming Lei) [RHEL-112997] - fs: add a write stream field to the kiocb (Ming Lei) [RHEL-112997] - block: move wbt_enable_default() out of queue freezing from sched ->exit() (Ming Lei) [RHEL-112997] - block: move hctx cpuhp add/del out of queue freezing (Ming Lei) [RHEL-112997] - block: don't acquire ->elevator_lock in blk_mq_map_swqueue and blk_mq_realloc_hw_ctxs (Ming Lei) [RHEL-112997] - block: move hctx debugfs/sysfs registering out of freezing queue (Ming Lei) [RHEL-112997] - block: move elv_register[unregister]_queue out of elevator_lock (Ming Lei) [RHEL-112997] - block: add new helper for disabling elevator switch when deleting disk (Ming Lei) [RHEL-112997] - block: fail to show/store elevator sysfs attribute if elevator is dying (Ming Lei) [RHEL-112997] - block: remove elevator queue's type check in elv_attr_show/store() (Ming Lei) [RHEL-112997] - block: pass elevator_queue to elv_register_queue & unregister_queue (Ming Lei) [RHEL-112997] - block: unifying elevator change (Ming Lei) [RHEL-112997] - block: add `struct elv_change_ctx` for unifying elevator change (Ming Lei) [RHEL-112997] - block: move queue freezing & elevator_lock into elevator_change() (Ming Lei) [RHEL-112997] - block: simplify elevator reattachment for updating nr_hw_queues (Ming Lei) [RHEL-112997] - block: move blk_queue_registered() check into elv_iosched_store() (Ming Lei) [RHEL-112997] - block: fold elevator_disable into elevator_switch (Ming Lei) [RHEL-112997] - block: look up the elevator type in elevator_switch (Ming Lei) [RHEL-112997] - block: don't allow to switch elevator if updating nr_hw_queues is in-progress (Ming Lei) [RHEL-112997] - block: prevent adding/deleting disk during updating nr_hw_queues (Ming Lei) [RHEL-112997] - block: add helper add_disk_final() (Ming Lei) [RHEL-112997] - block: move sched debugfs register into elvevator_register_queue (Ming Lei) [RHEL-112997] - block: add two helpers for registering/un-registering sched debugfs (Ming Lei) [RHEL-112997] - block: use q->elevator with ->elevator_lock held in elv_iosched_show() (Ming Lei) [RHEL-112997] - block: don't call freeze queue in elevator_switch() and elevator_disable() (Ming Lei) [RHEL-112997] - block: move ELEVATOR_FLAG_DISABLE_WBT a request queue flag (Ming Lei) [RHEL-112997] - block: move blk_mq_add_queue_tag_set() after blk_mq_map_swqueue() (Ming Lei) [RHEL-112997] - brd: fix discard end sector (Ming Lei) [RHEL-112997] - brd: fix aligned_sector from brd_do_discard() (Ming Lei) [RHEL-112997] - brd: protect page with rcu (Ming Lei) [RHEL-112997] - block: avoid hctx spinlock for plug with multiple queues (Ming Lei) [RHEL-112997] - block: factor out blk_mq_dispatch_queue_requests() helper (Ming Lei) [RHEL-112997] - block: take rq_list instead of plug in dispatch functions (Ming Lei) [RHEL-112997] - brd: use memcpy_{to,from]_page in brd_rw_bvec (Ming Lei) [RHEL-112997] - brd: split I/O at page boundaries (Ming Lei) [RHEL-112997] - brd: use bvec_kmap_local in brd_do_bvec (Ming Lei) [RHEL-112997] - brd: remove the sector variable in brd_submit_bio (Ming Lei) [RHEL-112997] - brd: pass a bvec pointer to brd_do_bvec (Ming Lei) [RHEL-112997] - block: blk-rq-qos: guard rq-qos helpers by static key (Ming Lei) [RHEL-112997] - block: ensure that struct blk_mq_alloc_data is fully initialized (Ming Lei) [RHEL-112997] - block: Simplify blk_mq_dispatch_rq_list() and its callers (Ming Lei) [RHEL-112997] - block: always allocate integrity buffer when required (Ming Lei) [RHEL-112997] - block: remove test of incorrect io priority level (Ming Lei) [RHEL-112997] - block: only update request sector if needed (Ming Lei) [RHEL-112997] - block: don't autoload drivers on blk-cgroup configuration (Ming Lei) [RHEL-112997] - block: don't autoload drivers on stat (Ming Lei) [RHEL-112997] - buffer: remove __getblk_gfp() (Ming Lei) [RHEL-112997] - ext4: call bdev_getblk() from sb_getblk_gfp() (Ming Lei) [RHEL-112997] - buffer: convert sb_getblk() to call __getblk() (Ming Lei) [RHEL-112997] - buffer: convert getblk_unmovable() and __getblk() to use bdev_getblk() (Ming Lei) [RHEL-112997] - buffer: use bdev_getblk() to avoid memory reclaim in readahead path (Ming Lei) [RHEL-112997] - ext4: use bdev_getblk() to avoid memory reclaim in readahead path (Ming Lei) [RHEL-112997] - buffer: hoist GFP flags from grow_dev_page() to __getblk_gfp() (Ming Lei) [RHEL-112997] - buffer: pass GFP flags to folio_alloc_buffers() (Ming Lei) [RHEL-112997] - buffer: convert grow_dev_page() to use a folio (Ming Lei) [RHEL-112997] - block: move blkdev_{get,put} _no_open prototypes out of blkdev.h (Ming Lei) [RHEL-112997] - block: integrity: Do not call set_page_dirty_lock() (Ming Lei) [RHEL-112997] - loop: LOOP_SET_FD: send uevents for partitions (Ming Lei) [RHEL-112997] - loop: properly send KOBJ_CHANGED uevent for disk device (Ming Lei) [RHEL-112997] - block: fix resource leak in blk_register_queue() error path (Ming Lei) [RHEL-112997] - block: add SPDX header line to blk-throttle.h (Ming Lei) [RHEL-112997] - null_blk: Use strscpy() instead of strscpy_pad() in null_add_dev() (Ming Lei) [RHEL-112997] - block: don't grab elevator lock during queue initialization (Ming Lei) [RHEL-112997] - block: remove unused nseg parameter (Ming Lei) [RHEL-112997] - docs: sysfs-block: Clarify integrity sysfs attributes (Ming Lei) [RHEL-112997] - block/blk-iocost: ensure 'ret' is set on error (Ming Lei) [RHEL-112997] - block: correct locking order for protecting blk-wbt parameters (Ming Lei) [RHEL-112997] - block: release q->elevator_lock in ioc_qos_write (Ming Lei) [RHEL-112997] - blk-cgroup: improve policy registration error handling (Ming Lei) [RHEL-112997] - loop: move vfs_fsync() out of loop_update_dio() (Ming Lei) [RHEL-112997] - block: Make request_queue lockdep splats show up earlier (Ming Lei) [RHEL-112997] - block: protect debugfs attribute method hctx_busy_show (Ming Lei) [RHEL-112997] - block: remove unnecessary goto labels in debugfs attribute read methods (Ming Lei) [RHEL-112997] - block: protect debugfs attrs using elevator_lock instead of sysfs_lock (Ming Lei) [RHEL-112997] - block: remove unused parameter 'q' parameter in __blk_rq_map_sg() (Ming Lei) [RHEL-112997] - block: remove unused parameter (Ming Lei) [RHEL-112997] - block: protect hctx attributes/params using q->elevator_lock (Ming Lei) [RHEL-112997] - block: protect wbt_lat_usec using q->elevator_lock (Ming Lei) [RHEL-112997] - block: protect nr_requests update using q->elevator_lock (Ming Lei) [RHEL-112997] - block: introduce a dedicated lock for protecting queue elevator updates (Ming Lei) [RHEL-112997] - block: fix memory leak for elevator on add_disk failure (Ming Lei) [RHEL-112997] - block: remove q->sysfs_lock for attributes which don't need it (Ming Lei) [RHEL-112997] - block: move q->sysfs_lock and queue-freeze under show/store method (Ming Lei) [RHEL-112997] - block: acquire q->limits_lock while reading sysfs attributes (Ming Lei) [RHEL-112997] - block: Correctly initialize BLK_INTEGRITY_NOGENERATE and BLK_INTEGRITY_NOVERIFY (Ming Lei) [RHEL-112997] - block: ensure correct integrity capability propagation in stacked devices (Ming Lei) [RHEL-112997] - loop: Remove struct loop_func_table (Ming Lei) [RHEL-112997] - block: split struct bio_integrity_payload (Ming Lei) [RHEL-112997] - block: move the block layer auto-integrity code into a new file (Ming Lei) [RHEL-112997] - scsi: add support for user-meta interface (Ming Lei) [RHEL-112997] - nvme: add support for passing on the application tag (Ming Lei) [RHEL-112997] - block: add support to pass user meta buffer (Ming Lei) [RHEL-112997] - block: introduce BIP_CHECK_GUARD/REFTAG/APPTAG bip_flags (Ming Lei) [RHEL-112997] - fs: introduce IOCB_HAS_METADATA for metadata (Ming Lei) [RHEL-112997] - fs, iov_iter: define meta io descriptor (Ming Lei) [RHEL-112997] - block: modify bio_integrity_map_user to accept iov_iter as argument (Ming Lei) [RHEL-112997] - block: copy back bounce buffer to user-space correctly in case of split (Ming Lei) [RHEL-112997] - block: define set of integrity flags to be inherited by cloned bip (Ming Lei) [RHEL-112997] - block: mark bounce buffering as incompatible with integrity (Ming Lei) [RHEL-112997] - null_blk: do partial IO for bad blocks (Ming Lei) [RHEL-112997] - null_blk: pass transfer size to null_handle_rq() (Ming Lei) [RHEL-112997] - null_blk: replace null_process_cmd() call in null_zone_write() (Ming Lei) [RHEL-112997] - null_blk: introduce badblocks_once parameter (Ming Lei) [RHEL-112997] - null_blk: generate null_blk configfs features string (Ming Lei) [RHEL-112997] - blk-wbt: Cleanup a comment in wb_timer_fn (Ming Lei) [RHEL-112997] - blk-wbt: Fix some comments (Ming Lei) [RHEL-112997] - loop: take the file system minimum dio alignment into account (Ming Lei) [RHEL-112997] - loop: check in LO_FLAGS_DIRECT_IO in loop_default_blocksize (Ming Lei) [RHEL-112997] - loop: set LO_FLAGS_DIRECT_IO in loop_assign_backing_file (Ming Lei) [RHEL-112997] - loop: factor out a loop_assign_backing_file helper (Ming Lei) [RHEL-112997] - block: Remove commented out code (Ming Lei) [RHEL-112997] - block: refactor rq_qos_wait() (Ming Lei) [RHEL-112997] - block: introduce init_wait_func() (Ming Lei) [RHEL-112997] * Wed Oct 22 2025 Patrick Talbert [5.14.0-628.el9] - s390/qeth: Make hw_trap sysfs attribute idempotent (Mete Durlu) [RHEL-99997] - scsi: lpfc: Fix buffer free/clear order in deferred receive path (CKI Backport Bot) [RHEL-119116] {CVE-2025-39841} - cgroup/cpuset: Remove the unnecessary css_get/put() in cpuset_partition_write() (Waiman Long) [RHEL-107751] - cgroup/cpuset: Fix a partition error with CPU hotplug (Waiman Long) [RHEL-107751] - cgroup/cpuset: Use static_branch_enable_cpuslocked() on cpusets_insane_config_key (Waiman Long) [RHEL-107751] - cgroup/cpuset: drop useless cpumask_empty() in compute_effective_exclusive_cpumask() (Waiman Long) [RHEL-107751] - cgroup/cpuset: Extend kthread_is_per_cpu() check to all PF_NO_SETAFFINITY tasks (Waiman Long) [RHEL-107751] - cgroup/cpuset: Fix obsolete comment in cpuset_css_offline() (Waiman Long) [RHEL-107751] - cgroup/cpuset: Always use cpu_active_mask (Waiman Long) [RHEL-107751] - cgroup/cpuset: Remove unneeded goto in sched_partition_write() and rename it (Waiman Long) [RHEL-107751] - cgroup/cpuset: Don't allow creation of local partition over a remote one (Waiman Long) [RHEL-107751] - cgroup/cpuset: remove kernfs active break (Waiman Long) [RHEL-107751] - cgroup/cpuset: Remove stale text (Waiman Long) [RHEL-107751] - cgroup/cpuset: Disable cpuset_cpumask_can_shrink() test if not load balancing (Waiman Long) [RHEL-107751] - cgroup/cpuset: Further optimize code if CONFIG_CPUSETS_V1 not set (Waiman Long) [RHEL-107751] - do_io_accounting: use sig->stats_lock (Waiman Long) [RHEL-105165] - do_io_accounting: use __for_each_thread() (Waiman Long) [RHEL-105165] - procfs: block chmod on /proc/thread-self/comm (Waiman Long) [RHEL-105165] * Tue Oct 21 2025 CKI KWF Bot [5.14.0-627.el9] - pstore/ram: Check start of empty przs during init (CKI Backport Bot) [RHEL-122069] {CVE-2023-53331} - NFSv4: handle ERR_GRACE on delegation recalls (Scott Mayhew) [RHEL-115855] - nfsd: nfserr_jukebox in nlm_fopen should lead to a retry (Scott Mayhew) [RHEL-115855] - nfsd: unregister with rpcbind when deleting a transport (Scott Mayhew) [RHEL-115855] - nfsd: decouple the xprtsec policy check from check_nfsd_access() (Scott Mayhew) [RHEL-115855] - NFSD: Replace use of NFSD_MAY_LOCK in nfsd4_lock() (Scott Mayhew) [RHEL-115855] - NFS: nfs_invalidate_folio() must observe the offset and size arguments (Scott Mayhew) [RHEL-115855] - NFSv4.2: Serialise O_DIRECT i/o and copy range (Scott Mayhew) [RHEL-115855] - NFSv4.2: Serialise O_DIRECT i/o and clone range (Scott Mayhew) [RHEL-115855] - NFSv4.2: Serialise O_DIRECT i/o and fallocate() (Scott Mayhew) [RHEL-115855] - NFS: Serialise O_DIRECT i/o and truncate() (Scott Mayhew) [RHEL-115855] - nfsd: don't set the ctime on delegated atime updates (Scott Mayhew) [RHEL-115855] - nexthop: Forbid FDB status change while nexthop is in a group (Guillaume Nault) [RHEL-115625] - ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init() (Guillaume Nault) [RHEL-115625] - net: drop UFO packets in udp_rcv_segment() (Paolo Abeni) [RHEL-115651] - udp: Fix multiple wraparounds of sk->sk_rmem_alloc. (Paolo Abeni) [RHEL-115651] - udp: annotate data-race in __udp_enqueue_schedule_skb() (Paolo Abeni) [RHEL-115651] - ucount: fix atomic_long_inc_below() argument type (Joel Savitz) [RHEL-119037] - timens: Add struct seq_file forward declaration (Joel Savitz) [RHEL-119037] - timekeeping: Kill percpu.h dependency (Joel Savitz) [RHEL-119037] - ucounts: fix counter leak in inc_rlimit_get_ucounts() (Joel Savitz) [RHEL-119037] - userns: eliminate many kernel-doc warnings (Joel Savitz) [RHEL-119037] - userns: fix a struct's kernel-doc notation (Joel Savitz) [RHEL-119037] - nsfs: repair kernel-doc for ns_match() (Joel Savitz) [RHEL-119037] - nsfs: add compat ioctl handler (Joel Savitz) [RHEL-119037] - broadcom: fix support for PTP_EXTTS_REQUEST2 ioctl (Petr Oros) [RHEL-115041] - broadcom: fix support for PTP_PEROUT_DUTY_CYCLE (Petr Oros) [RHEL-115041] - net: ptp: introduce .supported_perout_flags to ptp_clock_info (Petr Oros) [RHEL-115041] - net: ptp: introduce .supported_extts_flags to ptp_clock_info (Petr Oros) [RHEL-115041] - broadcom: fix supported flag check in periodic output function (Petr Oros) [RHEL-115041] - renesas: reject PTP_STRICT_FLAGS as unsupported (Petr Oros) [RHEL-115041] - sched/deadline: Don't count nr_running for dl_server proxy tasks (Phil Auld) [RHEL-110303] - sched/deadline: Fix RT task potential starvation when expiry time passed (Phil Auld) [RHEL-110303] - sched/debug: Print the local group's asym_prefer_cpu (Phil Auld) [RHEL-110303] - cpufreq/amd-pstate: Update asym_prefer_cpu when core rankings change (Phil Auld) [RHEL-110303] - sched/topology: Introduce sched_update_asym_prefer_cpu() (Phil Auld) [RHEL-110303] - sched/fair: Use READ_ONCE() to read sg->asym_prefer_cpu (Phil Auld) [RHEL-110303] - sched/fair: Bump sd->max_newidle_lb_cost when newidle balance fails (Phil Auld) [RHEL-110303] - sched/numa: fix task swap by skipping kernel threads (Phil Auld) [RHEL-110303] - sched/numa: add tracepoint that tracks the skipping of numa balancing due to cpuset memory pinning (Phil Auld) [RHEL-110303] - sched/numa: skip VMA scanning on memory pinned to one NUMA node via cpuset.mems (Phil Auld) [RHEL-110303] - sched/fair: Allow decaying util_est when util_avg > CPU capa (Phil Auld) [RHEL-110303] - sched/topology: Refinement to topology_span_sane speedup (Phil Auld) [RHEL-110303] - sched/topology: improve topology_span_sane speed (Phil Auld) [RHEL-110303] - sched/uclamp: Optimize sched_uclamp_used static key enabling (Phil Auld) [RHEL-110303] - sched/uclamp: Use the uclamp_is_used() helper instead of open-coding it (Phil Auld) [RHEL-110303] - sched/core: Remove duplicate included header file stats.h (Phil Auld) [RHEL-110303] - sched: Add unlikey branch hints to several system calls (Phil Auld) [RHEL-110303] - sched/fair: Refactor can_migrate_task() to elimate looping (Phil Auld) [RHEL-110303] * Fri Oct 17 2025 CKI KWF Bot [5.14.0-626.el9] - redhat: rpminspect: update emptyrpm list for kernel variants (Alexandra Hájková) - vsock/virtio: Validate length in packet header before skb_put() (Jon Maloy) [RHEL-114300] {CVE-2025-39718} - vfs: fix copy_file_range() averts filesystem freeze protection (Benjamin Coddington) [RHEL-76048] - gfs2: Fix unlikely race in gdlm_put_lock (Andreas Gruenbacher) [RHEL-116886] - gfs2: Add proper lockspace locking (Andreas Gruenbacher) [RHEL-116886] - gfs2: Minor run_queue fixes (Andreas Gruenbacher) [RHEL-116886] - gfs2: run_queue cleanup (Andreas Gruenbacher) [RHEL-116886] - gfs2: Simplify do_promote (Andreas Gruenbacher) [RHEL-116886] - gfs2: Get rid of GLF_INVALIDATE_IN_PROGRESS (Andreas Gruenbacher) [RHEL-116886] - gfs2: Fix GLF_INVALIDATE_IN_PROGRESS flag clearing in do_xmote (Andreas Gruenbacher) [RHEL-116886] - gfs2: Remove duplicate check in do_xmote (Andreas Gruenbacher) [RHEL-116886] - gfs2: Fix LM_FLAG_TRY* logic in add_to_queue (Andreas Gruenbacher) [RHEL-116886] - gfs2: Remove DLM_LKF_ALTCW / DLM_LKF_ALTPR code (Andreas Gruenbacher) [RHEL-116886] - gfs2: Further sanitize lock_dlm.c (Andreas Gruenbacher) [RHEL-116886] - gfs2: Simplify DLM_LKF_QUECVT use (Andreas Gruenbacher) [RHEL-116886] - gfs2: Do not use atomic operations unnecessarily (Andreas Gruenbacher) [RHEL-116886] - gfs2: a minor finish_xmote cleanup (Andreas Gruenbacher) [RHEL-116886] - gfs2: simplify finish_xmote (Andreas Gruenbacher) [RHEL-116886] - gfs2: sanitize the gdlm_ast -> finish_xmote interface (Andreas Gruenbacher) [RHEL-116886] - gfs2: Minor do_xmote cancelation fix (Andreas Gruenbacher) [RHEL-116886] - gfs2: Sanitize gfs2_meta_check, gfs2_metatype_check, gfs2_io_error (Andreas Gruenbacher) [RHEL-116886] - gfs2: Remove unnecessary gfs2_meta_check_ii argument (Andreas Gruenbacher) [RHEL-116886] - gfs2: Get rid of newlines in log messages (Andreas Gruenbacher) [RHEL-116886] - gfs2: Turn gfs2_withdraw into a void function (Andreas Gruenbacher) [RHEL-116886] - gfs2: Partially revert "gfs2: do_xmote fixes" (Andreas Gruenbacher) [RHEL-116886] - gfs2: Lift withdraw check out of gfs2_ail1_empty (Andreas Gruenbacher) [RHEL-116886] - gfs2: Minor gfs2_ail1_empty cleanup (Andreas Gruenbacher) [RHEL-116886] - gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn (Andreas Gruenbacher) [RHEL-116886] - gfs2: Fix slab-use-after-free in gfs2_qd_dealloc (Juntong Deng) [RHEL-116886] - gfs2: No more quota complaints after withdraw (Andreas Gruenbacher) [RHEL-116886] - gfs2: Rename "freeze_workqueue" to "gfs2_freeze" (Andreas Gruenbacher) [RHEL-116886] - gfs2: Rename "gfs_recovery" workqueue to "gfs2_recovery" (Andreas Gruenbacher) [RHEL-116886] - gfs2: Sanitize kthread stopping (Andreas Gruenbacher) [RHEL-116886] - gfs2: Fix logd wakeup on I/O error (Andreas Gruenbacher) [RHEL-116886] - gfs2: Switch to wait_event in gfs2_logd (Andreas Gruenbacher) [RHEL-116886] - gfs2: Switch to wait_event in gfs2_quotad (Andreas Gruenbacher) [RHEL-116886] - gfs2: Fix asynchronous thread destruction (Andreas Gruenbacher) [RHEL-116886] - gfs2: Stop using gfs2_make_fs_ro for withdraw (Andreas Gruenbacher) [RHEL-116886] - gfs2: Mark withdraws as unlikely (Andreas Gruenbacher) [RHEL-116886] - gfs2: Simplify refcounting in do_xmote (Andreas Gruenbacher) [RHEL-116886] - gfs2: do_xmote cleanup (Andreas Gruenbacher) [RHEL-116886] - gfs2: Remove space before newline (Colin Ian King) [RHEL-116886] - gfs2: Remove unused sd_withdraw_wait field (Andreas Gruenbacher) [RHEL-116886] - gfs2: Remove unused GIF_FREE_VFS_INODE flag (Andreas Gruenbacher) [RHEL-116886] - gfs2: only apply DLM_LKF_VALBLK if sb_lvbptr is not NULL (Alexander Aring) [RHEL-116886] - gfs2: Unlock fewer glocks on unmount (Andreas Gruenbacher) [RHEL-116886] - ptp: prevent possible ABBA deadlock in ptp_clock_freerun() (CKI Backport Bot) [RHEL-115644] - ptp: allow reading of currently dialed frequency to succeed on free-running clocks (CKI Backport Bot) [RHEL-115644] - ptp: fix breakage after ptp_vclock_in_use() rework (CKI Backport Bot) [RHEL-115644] - ptp: remove ptp->n_vclocks check logic in ptp_vclock_in_use() (CKI Backport Bot) [RHEL-115644] - vsock: Fix transport_* TOCTOU (CKI Backport Bot) [RHEL-106002] {CVE-2025-38461} * Wed Oct 15 2025 Patrick Talbert [5.14.0-625.el9] - firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails (Charles Mirabile) [RHEL-113838] {CVE-2022-50087} - NFS: Fix wakeup of __nfs_lookup_revalidate() in unblock_revalidate() (Benjamin Coddington) [RHEL-117497] - sched: Add wait/wake interface for variable updated under a lock. (Benjamin Coddington) [RHEL-117497] - sched: Add test_and_clear_wake_up_bit() and atomic_dec_and_wake_up() (Benjamin Coddington) [RHEL-117497] - sched: Document wait_var_event() family of functions and wake_up_var() (Benjamin Coddington) [RHEL-117497] - sched: Improve documentation for wake_up_bit/wait_on_bit family of functions (Benjamin Coddington) [RHEL-117497] - sched: change wake_up_bit() and related function to expect unsigned long * (Benjamin Coddington) [RHEL-117497] - efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare (CKI Backport Bot) [RHEL-118255] {CVE-2025-39817} - cpupower: Allow control of boost feature on non-x86 based systems with boost support. (David Arcari) [RHEL-118182] - cpupower: Fix a bug where the -t option of the set subcommand was not working. (David Arcari) [RHEL-118182] - pm: cpupower: Fix printing of CORE, CPU fields in cpupower-monitor (David Arcari) [RHEL-118182] - pm: cpupower: Fix the snapshot-order of tsc,mperf, clock in mperf_stop() (David Arcari) [RHEL-118182] - cpupower: Implement CPU physical core querying (David Arcari) [RHEL-118182] - pm: cpupower: remove hard-coded topology depth values (David Arcari) [RHEL-118182] - pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology (David Arcari) [RHEL-118182] - cpupower: monitor: Exit with error status if execvp() fail (David Arcari) [RHEL-118182] - pm: cpupower: bench: Prevent NULL dereference on malloc failure (David Arcari) [RHEL-118182] - ice: don't leave device non-functional if Tx scheduler config fails (Petr Oros) [RHEL-118146] - smb: client: fix wrong index reference in smb2_compound_op() (Paulo Alcantara) [RHEL-114295] - smb: client: handle unlink(2) of files open by different clients (Paulo Alcantara) [RHEL-114295] - smb: client: fix file open check in __cifs_unlink() (Paulo Alcantara) [RHEL-114295] - smb: client: fix filename matching of deferred files (Paulo Alcantara) [RHEL-114295] - smb: client: fix data loss due to broken rename(2) (Paulo Alcantara) [RHEL-114295] - smb: client: fix compound alignment with encryption (Paulo Alcantara) [RHEL-114295] - fs/smb: Fix inconsistent refcnt update (Paulo Alcantara) [RHEL-114295] {CVE-2025-39819} - firmware: qcom: scm: request the waitqueue irq *after* initializing SCM (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: initialize tzmem before marking SCM as available (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: take struct device as argument in SHM bridge enable (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: remove unused arguments from SHM bridge routines (Eric Chanudet) [RHEL-117508] - docs: firmware: qcom_scm: Fix kernel-doc warning (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM for HP EliteBook Ultra G1q (Eric Chanudet) [RHEL-117508] - firmware: qcom: tzmem: disable sm7150 platform (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on Asus Zenbook A14 (Eric Chanudet) [RHEL-117508] - firmware: qcom: uefisecapp: fix efivars registration race (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Fix error code in probe() (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: add calls for wrapped key support (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on Huawei Matebook E Go (sc8280xp) (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM for Windows Dev Kit 2023 (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM for HP Omnibook X14 (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on the asus vivobook s15 (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on X1P42100 CRD (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Introduce CP_SMMU_APERTURE_ID (Eric Chanudet) [RHEL-117508] - firmware: qcom: uefisecapp: Allow X1E Devkit devices (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345 (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on Microsoft Surface Pro 9 5G (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on Lenovo Yoga Slim 7x (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on Surface Laptop 7 models (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Allow QSEECOM on ThinkPad T14s (Eric Chanudet) [RHEL-117508] - firmware: qcom: tzmem: disable sdm670 platform (Eric Chanudet) [RHEL-117508] - firmware: qcom: scm: Mark get_wq_ctx() as atomic call (Eric Chanudet) [RHEL-117508] - firmware: qcom-scm: Remove QCOM_SMC_WAITQ_FLAG_WAKE_ALL (Eric Chanudet) [RHEL-117508] - firmware: qcom: uefisecapp: Allow on X1E devices (Eric Chanudet) [RHEL-117508] - firmware: qcom: uefisecapp: Allow on sc8180x Primus and Flex 5G (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm: remove IS_ERR() checks from qcom_scm_bw_{en,dis}able() (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm: disable clocks if qcom_scm_bw_enable() fails (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm: Always return devm_clk_get_optional errors (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm: Drop useless compatibles (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm: Always try to consume all three clocks (Eric Chanudet) [RHEL-117508] - firmware: qcom_scm-legacy: correct kerneldoc (Eric Chanudet) [RHEL-117508] - redhat/configs: Enable CONFIG_MITIGATION_VMSCAPE for x86 (Waiman Long) [RHEL-114273] - x86/vmscape: Add old Intel CPUs to affected list (Waiman Long) [RHEL-114273] {CVE-2025-40300} - x86/vmscape: Warn when STIBP is disabled with SMT (Waiman Long) [RHEL-114273] {CVE-2025-40300} - x86/bugs: Move cpu_bugs_smt_update() down (Waiman Long) [RHEL-114273] {CVE-2025-40300} - x86/vmscape: Enable the mitigation (Waiman Long) [RHEL-114273] {CVE-2025-40300} - x86/vmscape: Add conditional IBPB mitigation (Waiman Long) [RHEL-114273] {CVE-2025-40300} - x86/vmscape: Enumerate VMSCAPE bug (Waiman Long) [RHEL-114273] {CVE-2025-40300} - Documentation/hw-vuln: Add VMSCAPE documentation (Waiman Long) [RHEL-114273] {CVE-2025-40300} - randomize_kstack: Remove non-functional per-arch entropy filtering (Waiman Long) [RHEL-114273] - Bluetooth: revert TX timestamping (David Marlin) [RHEL-107923] - PM: wakeup: make device_wakeup_disable() return void (David Marlin) [RHEL-107923] - PM: wakeup: implement devm_device_init_wakeup() helper (David Marlin) [RHEL-107923] - PM: wakeup: Remove unnecessary else from device_init_wakeup() (David Marlin) [RHEL-107923] - Bluetooth: hci_event: Disconnect device when BIG sync is lost (David Marlin) [RHEL-107923] - Bluetooth: hci_event: Add support for handling LE BIG Sync Lost event (David Marlin) [RHEL-107923] - Bluetooth: hci_conn: Fix not cleaning up Broadcaster/Broadcast Source (David Marlin) [RHEL-107923] - Bluetooth: hci_conn: Fix running bis_cleanup for hci_conn->type PA_LINK (David Marlin) [RHEL-107923] - Bluetooth: ISO: Fix getname not returning broadcast fields (David Marlin) [RHEL-107923] - Bluetooth: hci_core: Fix not accounting for BIS/CIS/PA links separately (David Marlin) [RHEL-107923] - Bluetooth: Add PA_LINK to distinguish BIG sync and PA sync connections (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: Prevent unintended PA sync when SID is 0xFF (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: Fix scan state after PA Sync has been established (David Marlin) [RHEL-107923] - Bluetooth: btusb: Fix potential NULL dereference on kmalloc failure (David Marlin) [RHEL-107923] - Bluetooth: hci_devcd_dump: fix out-of-bounds via dev_coredumpv (David Marlin) [RHEL-107923] - Bluetooth: L2CAP: Fix attempting to adjust outgoing MTU (David Marlin) [RHEL-107923] - Bluetooth: btusb: QCA: Fix downloading wrong NVM for WCN6855 GF variant without board ID (David Marlin) [RHEL-107923] - Bluetooth: hci_dev: replace 'quirks' integer by 'quirk_flags' bitmap (David Marlin) [RHEL-107923] - Bluetooth: hci_core: add missing braces when using macro parameters (David Marlin) [RHEL-107923] - Bluetooth: hci_core: fix typos in macros (David Marlin) [RHEL-107923] - Bluetooth: SMP: Fix using HCI_ERROR_REMOTE_USER_TERM on timeout (David Marlin) [RHEL-107923] - Bluetooth: SMP: If an unallowed command is received consider it a failure (David Marlin) [RHEL-107923] - Bluetooth: btintel: Check if controller is ISO capable on btintel_classify_pkt_type (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: fix connectable extended advertising when using static random address (David Marlin) [RHEL-107923] - Bluetooth: Fix null-ptr-deref in l2cap_sock_resume_cb() (David Marlin) [RHEL-107923] - Bluetooth: hci_event: Fix not marking Broadcast Sink BIS as connected (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: Fix attempting to send HCI_Disconnect to BIS handle (David Marlin) [RHEL-107923] - Bluetooth: hci_core: Remove check of BDADDR_ANY in hci_conn_hash_lookup_big_state (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: Fix not disabling advertising instance (David Marlin) [RHEL-107923] - Bluetooth: HCI: Set extended advertising data synchronously (David Marlin) [RHEL-107923] - Bluetooth: MGMT: mesh_send: check instances prior disabling advertising (David Marlin) [RHEL-107923] - Bluetooth: MGMT: set_mesh: update LE scan interval and window (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: revert some mesh modifications (David Marlin) [RHEL-107923] - Bluetooth: Prevent unintended pause by checking if advertising is active (David Marlin) [RHEL-107923] - driver: bluetooth: hci_qca:fix unable to load the BT driver (David Marlin) [RHEL-107923] - Bluetooth: L2CAP: Fix L2CAP MTU negotiation (David Marlin) [RHEL-107923] - Bluetooth: btintel_pcie: Fix potential race condition in firmware download (David Marlin) [RHEL-107923] - Bluetooth: MGMT: Fix sparse errors (David Marlin) [RHEL-107923] - Bluetooth: ISO: Fix not using bc_sid as advertisement SID (David Marlin) [RHEL-107923] - Bluetooth: ISO: Fix using BT_SK_PA_SYNC to detect BIS sockets (David Marlin) [RHEL-107923] - Bluetooth: eir: Fix possible crashes on eir_create_adv_data (David Marlin) [RHEL-107923] - Bluetooth: hci_sync: Fix broadcast/PA when using an existing instance (David Marlin) [RHEL-107923] - Bluetooth: Fix NULL pointer deference on eir_get_service_data (David Marlin) [RHEL-107923] - Bluetooth: MGMT: Protect mgmt_pending list with its own lock (David Marlin) [RHEL-107923] - Bluetooth: MGMT: Fix UAF on mgmt_remove_adv_monitor_complete (David Marlin) [RHEL-107923] - Bluetooth: btintel_pcie: Reduce driver buffer posting to prevent race condition (David Marlin) [RHEL-107923] - Bluetooth: btintel_pcie: Increase the tx and rx descriptor count (David Marlin) [RHEL-107923] - Bluetooth: btintel_pcie: Fix driver not posting maximum rx buffers (David Marlin) [RHEL-107923] - Bluetooth: hci_core: fix list_for_each_entry_rcu usage (David Marlin) [RHEL-107923] - Bluetooth: L2CAP: Fix not responding with L2CAP_CR_LE_ENCRYPTION (David Marlin) [RHEL-107923] - Bluetooth: hci_qca: move the SoC type check to the right place (David Marlin) [RHEL-107923] - Bluetooth: btnxpuart: Fix missing devm_request_irq() return value check (David Marlin) [RHEL-107923] - Bluetooth: MGMT: reject malformed HCI_CMD_SYNC commands (David Marlin) [RHEL-107923] - Bluetooth: btintel: Check dsbr size from EFI variable (David Marlin) [RHEL-107923] - Bluetooth: MGMT: iterate over mesh commands in mgmt_mesh_foreach() (David Marlin) [RHEL-107923] - Bluetooth: btusb: Add new VID/PID 13d3/3584 for MT7922 (David Marlin) [RHEL-107923] - Bluetooth: separate CIS_LINK and BIS_LINK link types (David Marlin) [RHEL-107923] - Bluetooth: btusb: Add new VID/PID 13d3/3630 for MT7925 (David Marlin) [RHEL-107923] - Bluetooth: add support for SIOCETHTOOL ETHTOOL_GET_TS_INFO (David Marlin) [RHEL-107923] - Bluetooth: btintel_pcie: Dump debug registers on error (David Marlin) [RHEL-107923] - Bluetooth: ISO: Fix getpeername not returning sockaddr_iso_bc fields (David Marlin) [RHEL-107923] - Bluetooth: ISO: Fix not using SID from adv report (David Marlin) [RHEL-107923] - Bluetooth: btnxpuart: Implement host-wakeup feature (David Marlin) [RHEL-107923] - Bluetooth: btusb: Add RTL8851BE device 0x0bda:0xb850 (David Marlin) [RHEL-107923] - Bluetooth: hci_uart: Remove unnecessary NULL check before release_firmware() (David Marlin) [RHEL-107923] - Bluetooth: btmtksdio: Fix wakeup source leaks on device unbind (David Marlin) [RHEL-107923] - Bluetooth: btmrvl_sdio: Fix wakeup source leaks on device unbind (David Marlin) [RHEL-107923] - Bluetooth: btintel_pcie: Do not generate coredump for diagnostic events (David Marlin) [RHEL-107923] - Bluetooth: btusb: Add new VID/PID 13d3/3613 for MT7925 (David Marlin) [RHEL-107923] - Revert "Bluetooth: revert TX timestamping" (David Marlin) [RHEL-107923] - icmp: fix icmp_ndo_send address translation for reply direction (CKI Backport Bot) [RHEL-115626] - ipv6: reject malicious packets in ipv6_gso_segment() (CKI Backport Bot) [RHEL-115626] - ipv6: annotate data-races around rt->fib6_nsiblings (CKI Backport Bot) [RHEL-115626] - ipv6: fix possible infinite loop in fib6_info_uses_dev() (CKI Backport Bot) [RHEL-115626] - ipv6: prevent infinite loop in rt6_nlmsg_size() (CKI Backport Bot) [RHEL-115626] - seg6: Fix validation of nexthop addresses (CKI Backport Bot) [RHEL-115626] - ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS (CKI Backport Bot) [RHEL-115626] - bonding: check xdp prog when set bond mode (CKI Backport Bot) [RHEL-115627] - bonding: set random address only when slaves already exist (CKI Backport Bot) [RHEL-107189] - wireguard: device: enable threaded NAPI (CKI Backport Bot) [RHEL-115646] - wireguard: device: support big tcp GSO (CKI Backport Bot) [RHEL-115646] - wireguard: selftests: load nf_conntrack if not present (CKI Backport Bot) [RHEL-115646] - wireguard: allowedips: remove redundant selftest call (CKI Backport Bot) [RHEL-115646] - wireguard: device: omit unnecessary memset of netdev private data (CKI Backport Bot) [RHEL-115646] - ipv6: sr: Fix MAC comparison to be constant-time (CKI Backport Bot) [RHEL-115647] {CVE-2025-39702} - ipv6: sr: validate HMAC algorithm ID in seg6_hmac_info_add (CKI Backport Bot) [RHEL-115647] - bpf: don't do clean_live_states when state->loop_entry->branches > 0 (Gregory Bell) [RHEL-110269] - bpf: Return prog btf_id without capable check (Gregory Bell) [RHEL-110269] - bpf: Use kallsyms to find the function name of a struct_ops's stub function (Gregory Bell) [RHEL-110269] - bpf: Fix kmemleak warning for percpu hashmap (Gregory Bell) [RHEL-110269] - bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage (Gregory Bell) [RHEL-110269] - bpftool: Fix readlink usage in get_fd_type (Gregory Bell) [RHEL-110269] - selftests/bpf: Mitigate sockmap_ktls disconnect_after_delete failure (Gregory Bell) [RHEL-110269] - bpf: Allow pre-ordering for bpf cgroup progs (Gregory Bell) [RHEL-110269] - bpf: Search and add kfuncs in struct_ops prologue and epilogue (Gregory Bell) [RHEL-110269] - bpf: Reject attaching fexit/fmod_ret to __noreturn functions (Gregory Bell) [RHEL-110269] - libbpf: Fix out-of-bound read (Gregory Bell) [RHEL-110269] - bpf: Fix BPF_INTERNAL namespace import (Gregory Bell) [RHEL-110269] - bpf: Add namespace to BPF internal symbols (Gregory Bell) [RHEL-110269] - bpf: abort verification if env->cur_state->loop_entry != NULL (Gregory Bell) [RHEL-110269] - selftests/bpf: add test for softlock when modifying hashmap while iterating (Gregory Bell) [RHEL-110269] - bpf: fix possible endless loop in BPF map iteration (Gregory Bell) [RHEL-110269] - bpf: bpftool: Setting error code in do_loader() (Gregory Bell) [RHEL-110269] - bpf: Fix deadlock between rcu_tasks_trace and event_mutex. (Gregory Bell) [RHEL-110269] - libbpf: Fix hypothetical STT_SECTION extern NULL deref case (Gregory Bell) [RHEL-110269] - bpf: copy_verifier_state() should copy 'loop_entry' field (Gregory Bell) [RHEL-110269] - bpf: Fix array bounds error with may_goto (Gregory Bell) [RHEL-110269] - selftests/bpf: Select NUMA_NO_NODE to create map (Gregory Bell) [RHEL-110269] - scsi: sr: Reinstate rotational media flag (Ming Lei) [RHEL-107960] - rtla/actions: Fix condition for buffer reallocation (Tomas Glozar) [RHEL-113482] - rtla: Fix buffer overflow in actions_parse (Tomas Glozar) [RHEL-113482] - rtla/tests: Test timerlat -P option using actions (Tomas Glozar) [RHEL-113415] - rtla/tests: Add grep checks for base test cases (Tomas Glozar) [RHEL-113415] - Documentation/rtla: Add actions feature (Tomas Glozar) [RHEL-113482] - rtla/tests: Limit duration to maximum of 10s (Tomas Glozar) [RHEL-113482] - rtla/tests: Add tests for actions (Tomas Glozar) [RHEL-113482] - rtla/tests: Check rtla output with grep (Tomas Glozar) [RHEL-113482] - rtla/timerlat: Add action on end feature (Tomas Glozar) [RHEL-113482] - rtla/timerlat: Add continue action (Tomas Glozar) [RHEL-113482] - rtla/timerlat_bpf: Allow resuming tracing (Tomas Glozar) [RHEL-113482] - rtla/timerlat: Add action on threshold feature (Tomas Glozar) [RHEL-113482] - rtla/timerlat: Introduce enum timerlat_tracing_mode (Tomas Glozar) [RHEL-113482] - Documentation/rtla: Describe exit status (Tomas Glozar) [RHEL-113482] - rtla: Set distinctive exit value for failed tests (Tomas Glozar) [RHEL-113482] - rtla: Fix segfault in save_trace_to_file call (Tomas Glozar) [RHEL-113482] - rtla: Refactor save_trace_to_file (Tomas Glozar) [RHEL-113482] - scsi: target: core: Generate correct identifiers for PR OUT transport IDs (Maurizio Lombardi) [RHEL-111951 RHEL-96387] - scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port() (Maurizio Lombardi) [RHEL-111951 RHEL-96387] - scsi: target: Move delayed/ordered tracking to per CPU (Maurizio Lombardi) [RHEL-111951] - scsi: target: Move I/O path stats to per CPU (Maurizio Lombardi) [RHEL-111951] - scsi: target: Remove size arguments when calling strscpy() (Maurizio Lombardi) [RHEL-111951] - drm/amdgpu: Include sdma_4_4_4.bin (Peter Colberg) [RHEL-117568] - redhat: use new x86/aarch64 signing key (801/804) (Augusto Caringi) [RHEL-116727] - scsi: mpi3mr: Update driver version to 8.15.0.5.50 (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Fix premature TM timeouts on virtual drives (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Update MPI headers to revision 37 (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Fix I/O failures during controller reset (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Fix controller init failure on fault during queue creation (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Fix device loss during enclosure reboot due to zero link speed (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Serialize admin queue BAR writes on 32-bit systems (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Fix race between config read submit and interrupt completion (Chandrakanth Patil) [RHEL-112803] - scsi: mpi3mr: Correctly handle ATA device errors (Chandrakanth Patil) [RHEL-112803] - io_uring/futex: ensure io_futex_wait() cleans up properly on failure (CKI Backport Bot) [RHEL-114336] {CVE-2025-39698} - NFS: Fix filehandle bounds checking in nfs_fh_to_dentry() (CKI Backport Bot) [RHEL-113611] {CVE-2025-39730} - eventpoll: Fix semi-unbounded recursion (CKI Backport Bot) [RHEL-111050] {CVE-2025-38614} - ALSA: hda/ca0132: Fix buffer overflow in add_tuning_control (CKI Backport Bot) [RHEL-114850] {CVE-2025-39751} - wifi: ath12k: Decrement TID on RX peer frag setup error handling (CKI Backport Bot) [RHEL-114708] {CVE-2025-39761} - ALSA: usb-audio: Validate UAC3 power domain descriptors, too (Jaroslav Kysela) [RHEL-114691] {CVE-2025-38729} - ALSA: usb-audio: Fix size validation in convert_chmap_v3() (Jaroslav Kysela) [RHEL-114691] - ALSA: usb-audio: Validate UAC3 cluster segment descriptors (CKI Backport Bot) [RHEL-114691] {CVE-2025-39757} - cxgb4: Avoid removal of uninserted tid JIRA: https://issues.redhat.com/browse/RHEL-75571 (Jakub Ramaseuski) - selftests: tls: add tests for zero-length records (Sabrina Dubroca) [RHEL-114324] {CVE-2025-39682} - tls: fix handling of zero-length records on the rx_list (Sabrina Dubroca) [RHEL-114324] {CVE-2025-39682} - redhat/configs: Enable CONFIG_CPUFREQ_ARCH_CUR_FREQ (Jennifer Berringer) [RHEL-19395] - arm64: Utilize for_each_cpu_wrap for reference lookup (Jennifer Berringer) [RHEL-19395] - arm64: Update AMU-based freq scale factor on entering idle (Jennifer Berringer) [RHEL-19395] - arm64: Provide an AMU-based version of arch_freq_get_on_cpu (Jennifer Berringer) [RHEL-19395] - cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry (Jennifer Berringer) [RHEL-19395] - cpufreq: Allow arch_freq_get_on_cpu to return an error (Jennifer Berringer) [RHEL-19395] - arch_topology: init capacity_freq_ref to 0 (Jennifer Berringer) [RHEL-19395] - arm64: amu: Delay allocating cpumask for AMU FIE support (Jennifer Berringer) [RHEL-19395] * Thu Oct 09 2025 CKI KWF Bot [5.14.0-624.el9] - x86/resctrl: Fix types in resctrl_arch_mon_ctx_{alloc,free}() stubs (David Arcari) [RHEL-118965] - fs/resctrl: Eliminate false positive lockdep warning when reading SNC counters (David Arcari) [RHEL-118965] - resctrl: get rid of pointless debugfs_file_{get,put}() (David Arcari) [RHEL-118965] - x86,fs/resctrl: Remove inappropriate references to cacheinfo in the resctrl subsystem (David Arcari) [RHEL-118965] - fs/resctrl: Restore the rdt_last_cmd_clear() calls after acquiring rdtgroup_mutex (David Arcari) [RHEL-118965] - x86,fs/resctrl: Move the resctrl filesystem code to live in /fs/resctrl (David Arcari) [RHEL-118965] - selftests/resctrl: Discover SNC kernel support and adjust messages (David Arcari) [RHEL-118965] - selftests/resctrl: Adjust effective L3 cache size with SNC enabled (David Arcari) [RHEL-118965] - selftests/resctrl: Replace magic constants used as array size (David Arcari) [RHEL-118965] - selftests/resctrl: Keep results from first test run (David Arcari) [RHEL-118965] - selftests/resctrl: Do not compare performance counters and resctrl at low bandwidth (David Arcari) [RHEL-118965] - selftests/resctrl: Use cache size to determine "fill_buf" buffer size (David Arcari) [RHEL-118965] - selftests/resctrl: Ensure measurements skip initialization of default benchmark (David Arcari) [RHEL-118965] - selftests/resctrl: Make benchmark parameter passing robust (David Arcari) [RHEL-118965] - selftests/resctrl: Remove unused measurement code (David Arcari) [RHEL-118965] - selftests/resctrl: Only support measured read operation (David Arcari) [RHEL-118965] - selftests/resctrl: Remove "once" parameter required to be false (David Arcari) [RHEL-118965] - selftests/resctrl: Make wraparound handling obvious (David Arcari) [RHEL-118965] - selftests/resctrl: Protect against array overflow when reading strings (David Arcari) [RHEL-118965] - selftests/resctrl: Protect against array overrun during iMC config parsing (David Arcari) [RHEL-118965] - selftests/resctrl: Fix memory overflow due to unhandled wraparound (David Arcari) [RHEL-118965] - selftests/resctrl: Print accurate buffer size as part of MBM results (David Arcari) [RHEL-118965] - selftests/resctrl: Make functions only used in same file static (David Arcari) [RHEL-118965] - x86/resctrl: Move pseudo lock prototypes to include/linux/resctrl.h (David Arcari) [RHEL-118965] - x86/resctrl: Move enum resctrl_event_id to resctrl.h (David Arcari) [RHEL-118965] - x86/resctrl: Always initialise rid field in rdt_resources_all[] (David Arcari) [RHEL-118965] - x86/resctrl: Relax some asm #includes (David Arcari) [RHEL-118965] - x86/resctrl: Prefer alloc(sizeof(*foo)) idiom in rdt_init_fs_context() (David Arcari) [RHEL-118965] - x86/resctrl: Squelch whitespace anomalies in resctrl core code (David Arcari) [RHEL-118965] - x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl (David Arcari) [RHEL-118965] - fs/resctrl: Add boiler plate for external resctrl code (David Arcari) [RHEL-118965] - x86/resctrl: Split trace.h (David Arcari) [RHEL-118965] - x86/resctrl: Expand the width of domid by replacing mon_data_bits (David Arcari) [RHEL-118965] - x86/resctrl: Add end-marker to the resctrl_event_id enum (David Arcari) [RHEL-118965] - x86/resctrl: Move is_mba_sc() out of core.c (David Arcari) [RHEL-118965] - x86/resctrl: Drop __init/__exit on assorted symbols (David Arcari) [RHEL-118965] - x86/resctrl: Resctrl_exit() teardown resctrl but leave the mount point (David Arcari) [RHEL-118965] - x86/resctrl: Check all domains are offline in resctrl_exit() (David Arcari) [RHEL-118965] - x86/resctrl: Rename resctrl_sched_in() to begin with "resctrl_arch_" (David Arcari) [RHEL-118965] - x86/resctrl: Remove the limit on the number of CLOSID (David Arcari) [RHEL-118965] - x86/resctrl: Optimize cpumask_any_housekeeping() (David Arcari) [RHEL-118965] - cpumask: Relax cpumask_any_but() (David Arcari) [RHEL-118965] - cpumask: Add cpumask_{first,next}_andnot() API (David Arcari) [RHEL-118965] - find: Add find_first_andnot_bit() (David Arcari) [RHEL-118965] - x86/resctrl: Fix rdtgroup_mkdir()'s unlocked use of kernfs_node::name (David Arcari) [RHEL-118965] - x86/resctrl: Move get_{mon,ctrl}_domain_from_cpu() to live with their callers (David Arcari) [RHEL-118965] - x86/resctrl: Move get_config_index() to a header (David Arcari) [RHEL-118965] - x86/resctrl: Handle throttle_mode for SMBA resources (David Arcari) [RHEL-118965] - x86/resctrl: Move RFTYPE flags to be managed by resctrl (David Arcari) [RHEL-118965] - x86/resctrl: Make resctrl_arch_pseudo_lock_fn() take a plr (David Arcari) [RHEL-118965] - x86/resctrl: Make prefetch_disable_bits belong to the arch code (David Arcari) [RHEL-118965] - x86/resctrl: Allow an architecture to disable pseudo lock (David Arcari) [RHEL-118965] - x86/resctrl: Add resctrl_arch_ prefix to pseudo lock functions (David Arcari) [RHEL-118965] - x86/resctrl: Move mbm_cfg_mask to struct rdt_resource (David Arcari) [RHEL-118965] - x86/resctrl: Move mba_mbps_default_event init to filesystem code (David Arcari) [RHEL-118965] - x86/resctrl: Change mon_event_config_{read,write}() to be arch helpers (David Arcari) [RHEL-118965] - x86/resctrl: Add resctrl_arch_is_evt_configurable() to abstract BMEC (David Arcari) [RHEL-118965] - x86/resctrl: Move the is_mbm_*_enabled() helpers to asm/resctrl.h (David Arcari) [RHEL-118965] - x86/resctrl: Rewrite and move the for_each_*_rdt_resource() walkers (David Arcari) [RHEL-118965] - x86/resctrl: Move monitor init work to a resctrl init call (David Arcari) [RHEL-118965] - x86/resctrl: Move monitor exit work to a resctrl exit call (David Arcari) [RHEL-118965] - x86/resctrl: Add an arch helper to reset one resource (David Arcari) [RHEL-118965] - x86/resctrl: Move resctrl types to a separate header (David Arcari) [RHEL-118965] - x86/resctrl: Move rdt_find_domain() to be visible to arch and fs code (David Arcari) [RHEL-118965] - x86/resctrl: Expose resctrl fs's init function to the rest of the kernel (David Arcari) [RHEL-118965] - x86/resctrl: Remove rdtgroup from update_cpu_closid_rmid() (David Arcari) [RHEL-118965] - x86/resctrl: Add helper for setting CPU default properties (David Arcari) [RHEL-118965] - x86/resctrl: Generate default_ctrl instead of sharing it (David Arcari) [RHEL-118965] - x86/resctrl: Add max_bw to struct resctrl_membw (David Arcari) [RHEL-118965] - x86/resctrl: Remove data_width and the tabular format (David Arcari) [RHEL-118965] - x86/resctrl: Use schema type to determine the schema format string (David Arcari) [RHEL-118965] - x86/resctrl: Use schema type to determine how to parse schema values (David Arcari) [RHEL-118965] - x86/resctrl: Remove fflags from struct rdt_resource (David Arcari) [RHEL-118965] - x86/resctrl: Add a helper to avoid reaching into the arch code resource list (David Arcari) [RHEL-118965] - x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors (David Arcari) [RHEL-118965] - kernfs: Move dput() outside of the RCU section. (David Arcari) [RHEL-118965] - kernfs: Drop kernfs_rwsem while invoking lookup_positive_unlocked(). (David Arcari) [RHEL-118965] - kernfs: Use RCU to access kernfs_node::name. (David Arcari) [RHEL-118965] - kernfs: Use RCU to access kernfs_node::parent. (David Arcari) [RHEL-118965] - kernfs: Don't re-lock kernfs_root::kernfs_rwsem in kernfs_fop_readdir(). (David Arcari) [RHEL-118965] - kernfs: Acquire kernfs_rwsem in kernfs_node_dentry(). (David Arcari) [RHEL-118965] - kernfs: mount: Remove unnecessary ‘NULL’ values from knparent (David Arcari) [RHEL-118965] - kernfs: Acquire kernfs_rwsem in kernfs_get_parent_dentry(). (David Arcari) [RHEL-118965] - kernfs: Acquire kernfs_rwsem in kernfs_notify_workfn(). (David Arcari) [RHEL-118965] - kernfs: RCU protect kernfs_nodes and avoid kernfs_idr_lock in kernfs_find_and_get_node_by_id() (David Arcari) [RHEL-118965] - x86/resctrl: Document the new "mba_MBps_event" file (David Arcari) [RHEL-118965] - x86/resctrl: Add write option to "mba_MBps_event" file (David Arcari) [RHEL-118965] - x86/resctrl: Add "mba_MBps_event" file to CTRL_MON directories (David Arcari) [RHEL-118965] - x86/resctrl: Make mba_sc use total bandwidth if local is not supported (David Arcari) [RHEL-118965] - x86/resctrl: Compute memory bandwidth for all supported events (David Arcari) [RHEL-118965] - x86/resctrl: Modify update_mba_bw() to use per CTRL_MON group event (David Arcari) [RHEL-118965] - x86/resctrl: Prepare for per-CTRL_MON group mba_MBps control (David Arcari) [RHEL-118965] - x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags (David Arcari) [RHEL-118965] - x86/resctrl: Use kthread_run_on_cpu() (David Arcari) [RHEL-118965] - x86/resctrl: Support Sub-NUMA cluster mode SNC6 (David Arcari) [RHEL-118965] - x86/resctrl: Slightly clean-up mbm_config_show() (David Arcari) [RHEL-118965] - x86/resctrl: Annotate get_mem_config() functions as __init (David Arcari) [RHEL-118965] - finally take no_llseek out [partial] (David Arcari) [RHEL-118965] - x86/msr: Rename DECLARE_ARGS() to EAX_EDX_DECLARE_ARGS (David Arcari) [RHEL-118444] - x86/msr: Improve the comments of the DECLARE_ARGS()/EAX_EDX_VAL()/EAX_EDX_RET() facility (David Arcari) [RHEL-118444] - x86/msr: Standardize on u64 in (David Arcari) [RHEL-118444] - x86/mce: use is_copy_from_user() to determine copy-from-user context (David Arcari) [RHEL-118444] - x86/mce/threshold: Remove the redundant this_cpu_dec_return() (David Arcari) [RHEL-118444] - x86/mce/mcelog: Use xchg() to get and clear the flags (David Arcari) [RHEL-118444] - finally take no_llseek out [partial] (David Arcari) [RHEL-118444] - treewide: Fix wrong singular form of jiffies in comments [partial] (David Arcari) [RHEL-118444] - x86/mce: Make sure CMCI banks are cleared during shutdown on Intel (David Arcari) [RHEL-118444] - x86/mce/amd: Fix threshold limit reset (David Arcari) [RHEL-118444] - x86/mce/amd: Add default names for MCA banks and blocks (David Arcari) [RHEL-118444] - x86/mce: Ensure user polling settings are honored when restarting timer (David Arcari) [RHEL-118444] - x86/mce: Don't remove sysfs if thresholding sysfs init fails (David Arcari) [RHEL-118444] - x86/mce/inject: Remove call to mce_notify_irq() (David Arcari) [RHEL-118444] - x86/mce/amd: Remove shared threshold bank plumbing (David Arcari) [RHEL-118444] - x86/mce: Remove the redundant mce_hygon_feature_init() (David Arcari) [RHEL-118444] - x86/mce: Convert family/model mixed checks to VFM-based checks (David Arcari) [RHEL-118444] - x86/cpu/intel: Replace PAT erratum model/family magic numbers with symbolic IFM references (David Arcari) [RHEL-118444] - x86/mce: Break up __mcheck_cpu_apply_quirks() (David Arcari) [RHEL-118444] - x86/mce: Make four functions return bool (David Arcari) [RHEL-118444] - x86/mce: Make several functions return bool (David Arcari) [RHEL-118444] - x86/mce/intel: Use MCG_BANKCNT_MASK instead of 0xff (David Arcari) [RHEL-118444] - x86/mce: Remove unused variable and return value in machine_check_poll() (David Arcari) [RHEL-118444] - x86/mce: Switch to new Intel CPU model defines (David Arcari) [RHEL-118444] - x86/mce: Make mce_subsys const (David Arcari) [RHEL-118444] - x86/mce: Handle Intel threshold interrupt storms (David Arcari) [RHEL-118444] - x86/mce: Add per-bank CMCI storm mitigation (David Arcari) [RHEL-118444] - x86/mce: Remove old CMCI storm mitigation code (David Arcari) [RHEL-118444] - netfilter: ipset: fix region locking in hash types (CKI Backport Bot) [RHEL-115637] - tipc: fix null-ptr-deref when acquiring remote ip of ethernet bearer (Xin Long) [RHEL-115652] - tipc: use kfree_sensitive() for aead cleanup (Xin Long) [RHEL-115652] - tipc: fix NULL pointer dereference in tipc_mon_reinit_self() (Xin Long) [RHEL-115652] - tipc: fix memory leak in tipc_link_xmit (Xin Long) [RHEL-115652] - tipc: re-order conditions in tipc_crypto_key_rcv() (Xin Long) [RHEL-115652] - net: tipc: remove one synchronize_net() from tipc_nametbl_stop() (Xin Long) [RHEL-115652] - tcp: add tcp_rto_max_ms sysctl (Antoine Tenart) [RHEL-115191] - tcp: add the ability to control max RTO (Antoine Tenart) [RHEL-115191] - tcp: use tcp_reset_xmit_timer() (Antoine Tenart) [RHEL-115191] - tcp: add a @pace_delay parameter to tcp_reset_xmit_timer() (Antoine Tenart) [RHEL-115191] - tcp: remove tcp_reset_xmit_timer() @max_when argument (Antoine Tenart) [RHEL-115191] - book3s64/hash: Remove kfence support temporarily (Mamatha Inamdar) [RHEL-114396] - padata: Reset next CPU when reorder sequence wraps around (Herbert Xu) [RHEL-39495] - padata: Remove comment for reorder_work (Herbert Xu) [RHEL-39495] - padata: Fix pd UAF once and for all (Herbert Xu) [RHEL-39495] - padata: do not leak refcount in reorder_work (Herbert Xu) [RHEL-39495] * Wed Oct 08 2025 CKI KWF Bot [5.14.0-623.el9] - crypto: seqiv - Handle EBUSY correctly (CKI Backport Bot) [RHEL-117236] {CVE-2023-53373} - ice: fix Rx page leak on multi-buffer frames (Petr Oros) [RHEL-116541] - EDAC/amd64: Fix size calculation for Non-Power-of-Two DIMMs (Joel Savitz) [RHEL-101167] * Thu Oct 02 2025 CKI KWF Bot [5.14.0-622.el9] - ppp: fix memory leak in pad_compress_skb (Guillaume Nault) [RHEL-115633] - pptp: fix pptp_xmit() error path (Guillaume Nault) [RHEL-115633] - pptp: ensure minimal skb length in pptp_xmit() (Guillaume Nault) [RHEL-115633] - mpls: Use rcu_dereference_rtnl() in mpls_route_input_rcu(). (Guillaume Nault) [RHEL-115623] - x86/boot/compressed: Remove unused header includes from kaslr.c (Ricardo Robaina) [RHEL-110658] - x86/kaslr: Include instead of (Ricardo Robaina) [RHEL-110658] * Tue Sep 30 2025 CKI KWF Bot [5.14.0-621.el9] - platform/x86: ideapad-laptop: pass a correct pointer to the driver data (David Arcari) [RHEL-105420] - ACPI: platform_profile: Avoid initializing on non-ACPI platforms (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Simplify error flow in amd_pmf_init_smart_pc() (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Prevent amd_pmf_tee_deinit() from running twice (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Use device managed allocations (David Arcari) [RHEL-105420] - drivers/platform/x86/amd: pmf: Check for invalid Smart PC Policies (David Arcari) [RHEL-105420] - drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies (David Arcari) [RHEL-105420] - platform/x86: amd: pmf: Fix STT limits (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: convert timeouts to secs_to_jiffies() (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Fix missing hidden options for Smart PC (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: fix cleanup in amd_pmf_init_smart_pc() (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Update PMF Driver for Compatibility with new PMF-TA (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Propagate PMF-TA return codes (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add balanced-performance to hidden choices (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add 'quiet' to hidden choices (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Initialize and clean up `cb_mutex` (David Arcari) [RHEL-105420] - ACPI: platform-profile: Fix CFI violation when accessing sysfs files (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add support for hidden choices (David Arcari) [RHEL-105420] - ACPI: platform_profile: Fix memory leak in profile_class_is_visible() (David Arcari) [RHEL-105420] - ACPI: platform_profile: Improve platform_profile_unregister() (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add a prefix to log messages (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add documentation (David Arcari) [RHEL-105420] - ACPI: platform_profile: Clean platform_profile_handler (David Arcari) [RHEL-105420] - ACPI: platform_profile: Move platform_profile_handler (David Arcari) [RHEL-105420] - platform/x86: thinkpad_acpi: Fix registration of tpacpi platform driver (David Arcari) [RHEL-105420] - ACPI: platform_profile: Remove platform_profile_handler from exported symbols (David Arcari) [RHEL-105420] - platform/x86: thinkpad_acpi: Use devm_platform_profile_register() (David Arcari) [RHEL-105420] - platform/x86: hp-wmi: Use devm_platform_profile_register() (David Arcari) [RHEL-105420] - platform/x86: ideapad-laptop: Use devm_platform_profile_register() (David Arcari) [RHEL-105420] - platform/surface: surface_platform_profile: Use devm_platform_profile_register() (David Arcari) [RHEL-105420] - platform/x86: amd: pmf: sps: Use devm_platform_profile_register() (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add `probe` to platform_profile_ops (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add `ops` member to handlers (David Arcari) [RHEL-105420] - ACPI: platform_profile: Remove platform_profile_handler from callbacks (David Arcari) [RHEL-105420] - ACPI: platform_profile: Let drivers set drvdata to the class device (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Get SRA sensor data from AMD SFH driver (David Arcari) [RHEL-105420] - HID: amd_sfh: Fix SRA sensor when it's the only sensor (David Arcari) [RHEL-105420] - HID: amd_sfh: Add support to export device operating states (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Switch to guard(mutex) (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Enable Custom BIOS Inputs for PMF-TA (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Drop all quirks (David Arcari) [RHEL-105420] - ACPI: platform_profile: Replace *class_dev member with class_dev (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add devm_platform_profile_register() (David Arcari) [RHEL-105420] - ACPI: platform_profile: Allow multiple handlers (David Arcari) [RHEL-105420] - ACPI: platform_profile: Notify class device from platform_profile_notify() (David Arcari) [RHEL-105420] - ACPI: platform_profile: Check all profile handler to calculate next (David Arcari) [RHEL-105420] - ACPI: platform_profile: Make sure all profile handlers agree on profile (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add concept of a "custom" profile (David Arcari) [RHEL-105420] - ACPI: platform_profile: Only show profiles common for all handlers (David Arcari) [RHEL-105420] - ACPI: platform_profile: Notify change events on register and unregister (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add profile attribute for class interface (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add choices attribute for class interface (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add name attribute to class interface (David Arcari) [RHEL-105420] - ACPI: platform_profile: Create class for ACPI platform profile (David Arcari) [RHEL-105420] - ACPI: platform_profile: Use `scoped_cond_guard` (David Arcari) [RHEL-105420] - ACPI: platform_profile: Use guard(mutex) for register/unregister (David Arcari) [RHEL-105420] - ACPI: platform_profile: Move matching string for new profile out of mutex (David Arcari) [RHEL-105420] - ACPI: platform_profile: Move sanity check out of the mutex (David Arcari) [RHEL-105420] - ACPI: platform_profile: Pass the profile handler into platform_profile_notify() (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add platform handler argument to platform_profile_remove() (David Arcari) [RHEL-105420] - ACPI: add missing MODULE_DESCRIPTION() macros (David Arcari) [RHEL-105420] - ACPI: platform_profile: Add device pointer into platform profile handler (David Arcari) [RHEL-105420] - ACPI: platform-profile: Add a name member to handlers (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Switch to platform_get_resource() and devm_ioremap_resource() (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Use dev_err_probe() to simplify error handling (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Add SMU metrics table support for 1Ah family 60h model (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add quirk for TUF Gaming A14 (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Make ASUS GA403 quirk generic (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Update SMU metrics table for 1AH family series (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Relocate CPU ID macros to the PMF header (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Add support for notifying Smart PC Solution updates (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Fix to Update HPD Data When ALS is Disabled (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Add new ACPI ID AMDI0107 (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add quirk for ROG Ally X (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Use existing input event codes to update system states (David Arcari) [RHEL-105420] - platform/x86/amd/pmf: Use memdup_user() (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add new ACPI ID AMDI0105 (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14 (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Add infrastructure for quirking supported funcs (David Arcari) [RHEL-105420] - platform/x86/amd: pmf: Decrease error message to debug (David Arcari) [RHEL-105420] - powercap: Switch to use hrtimer_setup() (David Arcari) [RHEL-111365] - PM: EM: Rework the depends on for CONFIG_ENERGY_MODEL (David Arcari) [RHEL-111365] - powercap: intel_rapl: Do not change CLAMPING bit if ENABLE bit cannot be changed (David Arcari) [RHEL-111365] - powercap: intel_rapl_msr: Add PL4 support for Panther Lake (David Arcari) [RHEL-111365] - powercap: intel_rapl: Add support for Bartlett Lake platform (David Arcari) [RHEL-111365] - kernel.spec: replace '=' with space in argument of kernel-install (Li Tian) [RHEL-114361] - net/mlx5: Not returning mlx5_link_info table when speed is unknown (Li Tian) [RHEL-114363] - arm64: fix selection of HAVE_DYNAMIC_FTRACE_WITH_ARGS (Jerome Marchand) [RHEL-101598] - ftrace: Remove unused global 'ftrace_direct_func_count' (Jerome Marchand) [RHEL-101598] - ftrace: Remove unused list 'ftrace_direct_funcs' (Jerome Marchand) [RHEL-101598] - tracing: Fix HAVE_DYNAMIC_FTRACE_WITH_REGS ifdef (Jerome Marchand) [RHEL-101598] - ftrace: Fix DIRECT_CALLS to use SAVE_REGS by default (Jerome Marchand) [RHEL-101598] - samples: ftrace: Replace bti assembly with hint for older compiler (Jerome Marchand) [RHEL-101598] - arm64: avoid executing padding bytes during kexec / hibernation (Jerome Marchand) [RHEL-101598] - arm64: ftrace: Add direct call trampoline samples support (Jerome Marchand) [RHEL-101598] - samples: ftrace: Save required argument registers in sample trampolines (Jerome Marchand) [RHEL-101598] - arm64: ftrace: Simplify get_ftrace_plt (Jerome Marchand) [RHEL-101598] - arm64: ftrace: Add direct call support (Jerome Marchand) [RHEL-101598] - ftrace: Make DIRECT_CALLS work WITH_ARGS and !WITH_REGS (Jerome Marchand) [RHEL-101598] - ftrace: Store direct called addresses in their ops (Jerome Marchand) [RHEL-101598] - ftrace: Rename _ftrace_direct_multi APIs to _ftrace_direct APIs (Jerome Marchand) [RHEL-101598] - ftrace: Remove the legacy _ftrace_direct API (Jerome Marchand) [RHEL-101598] - ftrace: Replace uses of _ftrace_direct APIs with _ftrace_direct_multi (Jerome Marchand) [RHEL-101598] - ftrace: Let unregister_ftrace_direct_multi() call ftrace_free_filter() (Jerome Marchand) [RHEL-101598] - arm64: Implement HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS (Jerome Marchand) [RHEL-101598] - arm64: ftrace: Update stale comment (Jerome Marchand) [RHEL-101598] - arm64: Extend support for CONFIG_FUNCTION_ALIGNMENT (Jerome Marchand) [RHEL-101598] - Compiler attributes: GCC cold function alignment workarounds (Jerome Marchand) [RHEL-101598] - ftrace: Add DYNAMIC_FTRACE_WITH_CALL_OPS (Jerome Marchand) [RHEL-101598] - ftrace: arm64: remove static ftrace (Jerome Marchand) [RHEL-101598] - ftrace: arm64: move from REGS to ARGS (Jerome Marchand) [RHEL-101598] - ftrace: abstract DYNAMIC_FTRACE_WITH_ARGS accesses (Jerome Marchand) [RHEL-101598] - ftrace: rename ftrace_instruction_pointer_set() -> ftrace_regs_set_instruction_pointer() (Jerome Marchand) [RHEL-101598] - ftrace: pass fregs to arch_ftrace_set_direct_caller() (Jerome Marchand) [RHEL-101598] - arm64: ftrace: remove redundant label (Jerome Marchand) [RHEL-101598] - arm64/ftrace: Make function graph use ftrace directly (Jerome Marchand) [RHEL-101598] - arm64: Improve HAVE_DYNAMIC_FTRACE_WITH_REGS selection for clang (Jerome Marchand) [RHEL-101598] - tracing: Use linker magic instead of recasting ftrace_ops_list_func() (Jerome Marchand) [RHEL-101598] - ice: fix NULL access of tx->in_use in ice_ll_ts_intr (Petr Oros) [RHEL-84608] - ice: fix NULL access of tx->in_use in ice_ptp_ts_irq (Petr Oros) [RHEL-84608] - platform/x86/amd/pmc: Add TUXEDO IB Pro Gen10 AMD to spurious 8042 quirks list (David Arcari) [RHEL-102860] - platform/x86/amd: pmc: Drop SMU F/W match for Cezanne (David Arcari) [RHEL-102860] - platform/x86/amd: pmc: Add Lenovo Yoga 6 13ALC6 to pmc quirk list (David Arcari) [RHEL-102860] - Move FCH header to a location accessible by all archs (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Add PCSpecialist Lafite Pro V 14M to 8042 quirks list (David Arcari) [RHEL-102860] - platform/x86/amd: pmc: Clear metrics table at start of cycle (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Declare quirk_spurious_8042 for MECHREVO Wujie 14XA (GX4HRXL) (David Arcari) [RHEL-102860] - platform/x86/amd: pmc: Require at least 2.5 seconds between HW sleep cycles (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: fix leak in probe() (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Use managed APIs for mutex (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Remove unnecessary line breaks (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Move macros and structures to the PMC header file (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Notify user when platform does not support s0ix transition (David Arcari) [RHEL-102860] - platform/x86: amd: Use *-y instead of *-objs in Makefiles [partial] (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Only disable IRQ1 wakeup where i8042 actually enabled it (David Arcari) [RHEL-102860] - platform/x86/amd: pmc: Use guard(mutex) (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Add STB support for AMD Desktop variants (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Update S2D message id for 1Ah Family 70h model (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Update IP information structure for newer SoCs (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Use ARRAY_SIZE() to fill num_ips information (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Isolate STB code changes to a new file (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Define enum for S2D/PMC msg_port and add helper function (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Update function names to align with new STB file (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Move STB functionality to a new file for better code organization (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Move STB block into amd_pmc_s2d_init() (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Extend support for PMC features on new AMD platform (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Fix SMU command submission path on new AMD platform (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Send OS_HINT command for new AMD platform (David Arcari) [RHEL-102860] - platform/x86/amd: pmc: Add new ACPI ID AMDI000B (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Fix implicit declaration error on i386 (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Extend Framework 13 quirk to more BIOSes (David Arcari) [RHEL-102860] - platform/x86/amd/pmc: Add AMD MP2 STB functionality (David Arcari) [RHEL-102860] - redhat/configs: enable CONFIG_AMD_MP2_STB (David Arcari) [RHEL-102860] - RAS/AMD/FMPM: Get masked address (Aristeu Rozanski) [RHEL-87600] - RAS/AMD/ATL: Include row[13] bit in row retirement (Aristeu Rozanski) [RHEL-87600] - power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint (Mark Langsdorf) [RHEL-36251] * Fri Sep 26 2025 CKI KWF Bot [5.14.0-620.el9] - use uniform permission checks for all mount propagation changes (Ian Kent) [RHEL-107304] {CVE-2025-38498} - do_change_type(): refuse to operate on unmounted/not ours mounts (Ian Kent) [RHEL-107304] {CVE-2025-38498} - selftests: netfilter: skip br_netfilter queue tests if kernel is tainted (Waiman Long) [RHEL-107520] - fhandle: do_handle_open() should get FD with user flags (Waiman Long) [RHEL-107520] - Documentation/sysctl: coredump: add %%F for pidfd number (Waiman Long) [RHEL-107520] - pidfs: never refuse ppid == 0 in PIDFD_GET_INFO (Waiman Long) [RHEL-107520] - fs/fhandle.c: fix a race in call of has_locked_children() (Waiman Long) [RHEL-107520] {CVE-2025-38306} - coredump: hand a pidfd to the usermode coredump helper (Waiman Long) [RHEL-107520] - coredump: fix error handling for replace_fd() (Waiman Long) [RHEL-107520] - pidfs: move O_RDWR into pidfs_alloc_file() (Waiman Long) [RHEL-107520] - pidfs/selftests: ensure correct headers for ioctl handling (Waiman Long) [RHEL-107520] - selftests/pidfd: fix header inclusion (Waiman Long) [RHEL-107520] - pidfs: improve ioctl handling (Waiman Long) [RHEL-107520] - selftests: remove unneeded include (Waiman Long) [RHEL-107520] - pidfs: allow bind-mounts (Waiman Long) [RHEL-107520] - pidfs: lookup pid through rbtree (Waiman Long) [RHEL-107520] - pidfs: check for valid ioctl commands (Waiman Long) [RHEL-107520] - pidfs: implement file handle support (Waiman Long) [RHEL-107520] - exportfs: add permission method (Waiman Long) [RHEL-107520] - fhandle: pull CAP_DAC_READ_SEARCH check into may_decode_fh() (Waiman Long) [RHEL-107520] - exportfs: add open method (Waiman Long) [RHEL-107520] - fhandle: simplify error handling (Waiman Long) [RHEL-107520] - pseudofs: add support for export_ops (Waiman Long) [RHEL-107520] - pidfs: support FS_IOC_GETVERSION (Waiman Long) [RHEL-107520] - pidfs: remove 32bit inode number handling (Waiman Long) [RHEL-107520] - pidfs: rework inode number allocation (Waiman Long) [RHEL-107520] - fs: fix is_mnt_ns_file() (Waiman Long) [RHEL-107520] - pidfd: add ioctl to retrieve pid info (Waiman Long) [RHEL-107520] - pidfs: check for valid pid namespace (Waiman Long) [RHEL-107520] - rbtree: provide rb_find_rcu() / rb_find_add_rcu() (Waiman Long) [RHEL-107520] - file: add fput() cleanup helper (Waiman Long) [RHEL-107520] - libfs: fix get_stashed_dentry() (Waiman Long) [RHEL-107520] {CVE-2024-46801} - pidfs: add selftests for new namespace ioctls (Waiman Long) [RHEL-107520] - pidfs: handle kernels without namespaces cleanly (Waiman Long) [RHEL-107520] - pidfs: when time ns disabled add check for ioctl (Waiman Long) [RHEL-107520] - pidfs: allow retrieval of namespace file descriptors (Waiman Long) [RHEL-107520] - nsfs: add open_namespace() (Waiman Long) [RHEL-107520] - nsproxy: add helper to go from arbitrary namespace to ns_common (Waiman Long) [RHEL-107520] - nsproxy: add a cleanup helper for nsproxy (Waiman Long) [RHEL-107520] - file: add take_fd() cleanup helper (Waiman Long) [RHEL-107520] - path: add cleanup helper (Waiman Long) [RHEL-107520] - fhandle: relax open_by_handle_at() permission checks (Waiman Long) [RHEL-107520] - fs/pidfs: make 'lsof' happy with our inode changes (Waiman Long) [RHEL-107520] - selftests: pidfd: ksft_exit functions do not return (Waiman Long) [RHEL-107520] - fs: Annotate struct file_handle with __counted_by() and use struct_size() (Waiman Long) [RHEL-107520] - selftests/pidfd: Fix wrong expectation (Waiman Long) [RHEL-107520] - selftests/pidfd: Fix config for pidfd_setns_test (Waiman Long) [RHEL-107520] - pidfs: remove config option (Waiman Long) [RHEL-107520] - libfs: improve path_from_stashed() (Waiman Long) [RHEL-107520] - libfs: add stashed_dentry_prune() (Waiman Long) [RHEL-107520] - libfs: improve path_from_stashed() helper (Waiman Long) [RHEL-107520] - pidfs: convert to path_from_stashed() helper (Waiman Long) [RHEL-107520] - nsfs: convert to path_from_stashed() helper (Waiman Long) [RHEL-107520] - libfs: add path_from_stashed() (Waiman Long) [RHEL-107520] - pidfd: add pidfs (Waiman Long) [RHEL-107520] - pidfd: move struct pidfd_fops (Waiman Long) [RHEL-107520] - pidfd: allow to override signal scope in pidfd_send_signal() (Waiman Long) [RHEL-107520] - pidfd: change pidfd_send_signal() to respect PIDFD_THREAD (Waiman Long) [RHEL-107520] - signal: fill in si_code in prepare_kill_siginfo() (Waiman Long) [RHEL-107520] - selftests: add ESRCH tests for pidfd_getfd() (Waiman Long) [RHEL-107520] - pidfd: getfd should always report ESRCH if a task is exiting (Waiman Long) [RHEL-107520] - pidfd: clone: allow CLONE_THREAD | CLONE_PIDFD together (Waiman Long) [RHEL-107520] - pidfd: change do_notify_pidfd() to use __wake_up(poll_to_key(EPOLLIN)) (Waiman Long) [RHEL-107520] - pid: kill the obsolete PIDTYPE_PID code in transfer_pid() (Waiman Long) [RHEL-107520] - pidfd: kill the no longer needed do_notify_pidfd() in de_thread() (Waiman Long) [RHEL-107520] - pidfd_poll: report POLLHUP when pid_task() == NULL (Waiman Long) [RHEL-107520] - pidfd: implement PIDFD_THREAD flag for pidfd_open() (Waiman Long) [RHEL-107520] - pidfd: don't do_notify_pidfd() if !thread_group_empty() (Waiman Long) [RHEL-107520] - pidfd: cleanup the usage of __pidfd_prepare's flags (Waiman Long) [RHEL-107520] - fork: Using clone_flags for legacy clone check (Waiman Long) [RHEL-107520] - __kill_pgrp_info: simplify the calculation of return value (Waiman Long) [RHEL-107520] - selftests/pidfd: Fix ksft print formats (Waiman Long) [RHEL-107520] - fs: convert core infrastructure to new timestamp accessors (Waiman Long) [RHEL-107520] - fs: new accessor methods for atime and mtime (Waiman Long) [RHEL-107520] - nsproxy: Convert nsproxy.count to refcount_t (Waiman Long) [RHEL-107520] - kernfs: convert to ctime accessor functions (Waiman Long) [RHEL-107520] - selftest: pidfd: Omit long and repeating outputs (Waiman Long) [RHEL-107520] - convert setns(2) to fdget()/fdput() (Waiman Long) [RHEL-107520] - fs: consolidate duplicate dt_type helpers (Waiman Long) [RHEL-107520] - Update relatime comments to include equality (Waiman Long) [RHEL-107520] - fork: use pidfd_prepare() (Waiman Long) [RHEL-107520] - pid: add pidfd_prepare() (Waiman Long) [RHEL-107520] - fork: allow CLONE_NEWTIME in clone3 flags (Waiman Long) [RHEL-107520] - selftests: pidfd: Fix incorrect kernel headers search path (Waiman Long) [RHEL-107520] - core_pattern: add CPU specifier (Waiman Long) [RHEL-107520] - selftests/pidfd_test: Remove the erroneous ',' (Waiman Long) [RHEL-107520] - selftests: pidfd: Fix compling warnings (Waiman Long) [RHEL-107520] - ksefltests: pidfd: Fix wait_states: Test terminated by timeout (Waiman Long) [RHEL-107520] - fork: remove duplicate included header files (Waiman Long) [RHEL-107520] - signal: Drop signals received after a fatal signal has been processed (Waiman Long) [RHEL-107520] - signal: Guarantee that SIGNAL_GROUP_EXIT is set on process exit (Waiman Long) [RHEL-107520] - signal: Ensure SIGNAL_GROUP_EXIT gets set in do_group_exit (Waiman Long) [RHEL-107520] - dynamic_dname(): drop unused dentry argument (Waiman Long) [RHEL-107520] - fork: Explicitly set PF_KTHREAD (Waiman Long) [RHEL-107520] - selftests: fix an unused variable warning in pidfd selftest (Waiman Long) [RHEL-107520] - selftests: fixup build warnings in pidfd / clone3 tests (Waiman Long) [RHEL-107520] - pidfd: fix test failure due to stack overflow on some arches (Waiman Long) [RHEL-107520] - kernel/fork.c: unshare(): use swap() to make code cleaner (Waiman Long) [RHEL-107520] - kernel/fork.c: unexport get_{mm,task}_exe_file (Waiman Long) [RHEL-107520] - kernel/pid.c: implement additional checks upon pidfd_create() parameters (Waiman Long) [RHEL-107520] - arm64: debug: remove debug exception registration infrastructure (Luis Claudio R. Goncalves) [RHEL-65658] - trap: cleanup trap_init() (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: split bkpt32 exception entry (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: split brk64 exception entry (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: split hardware watchpoint exception entry (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: split single stepping exception entry (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: refactor reinstall_suspended_bps() (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: split hardware breakpoint exception entry (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: entry: Add entry and exit functions for debug exceptions (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: remove break/step handler registration infrastructure (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: call step handlers statically (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: call software breakpoint handlers statically (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: kretprobes: acquire the regs via a BRK exception (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: kprobes: Return DBG_HOOK_ERROR if kprobes can not handle a BRK (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: Return early when break handler is found on linked-list (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: refactor aarch32_break_handler() (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: debug: clean up single_step_handler logic (Luis Claudio R. Goncalves) [RHEL-65658] - arm64: Subscribe Microsoft Azure Cobalt 100 to erratum 3194386 (Jeremy Linton) [RHEL-108306] - arm64: errata: Expand speculative SSBS workaround once more (Jeremy Linton) [RHEL-108306] - arm64: errata: Expand speculative SSBS workaround (again) (Jeremy Linton) [RHEL-108306] - tools headers arm64: Sync arm64's cputype.h with the kernel sources (Jeremy Linton) [RHEL-108306] - arm64: cputype: Add Neoverse-N3 definitions (Jeremy Linton) [RHEL-108306] - arm64: cputype: Add Cortex-A725 definitions (Jeremy Linton) [RHEL-108306] - arm64: cputype: Add Cortex-X1C definitions (Jeremy Linton) [RHEL-108306] - EDAC/amd64: Correct number of UMCs for family 19h models 70h-7fh (Joel Savitz) [RHEL-102251] * Tue Sep 23 2025 CKI KWF Bot [5.14.0-619.el9] - platform/x86/intel: power-domains: Use topology_logical_package_id() for package ID (David Arcari) [RHEL-110754] - io_uring/futex: ensure io_futex_wait() cleans up properly on failure (CKI Backport Bot) [RHEL-114337] {CVE-2025-39698} - bpf: Fix uninitialized values in BPF_{CORE,PROBE}_READ (Viktor Malik) [RHEL-100278] - mm/memory-tier: fix abstract distance calculation overflow (Rafael Aquini) [RHEL-109448] * Sat Sep 20 2025 Patrick Talbert [5.14.0-618.el9] - x86/hyperv: Fix kdump on Azure CVMs (Vitaly Kuznetsov) [RHEL-70228] - hv_netvsc: Fix panic during namespace deletion with VF (Maxim Levitsky) [RHEL-109583] - RDMA/mana_ib: add support of multiple ports (Maxim Levitsky) [RHEL-109583] - RDMA/mana_ib: add additional port counters (Maxim Levitsky) [RHEL-109583] - RDMA/mana_ib: Fix DSCP value in modify QP (Maxim Levitsky) [RHEL-109583] - net: mana: fix spelling for mana_gd_deregiser_irq() (Maxim Levitsky) [RHEL-109583] - net: mana: Handle Reset Request from MANA NIC (Maxim Levitsky) [RHEL-109583] - net: mana: Set tx_packets to post gso processing packet count (Maxim Levitsky) [RHEL-109583] - net: mana: Handle unsupported HWC commands (Maxim Levitsky) [RHEL-109583] - net: mana: Allocate MSI-X vectors dynamically (Maxim Levitsky) [RHEL-109583] - net: mana: Allow irq_setup() to skip cpus for affinity (Maxim Levitsky) [RHEL-109583] - net: mana: explain irq_setup() algorithm (Maxim Levitsky) [RHEL-109583] - PCI: hv: Allow dynamic MSI-X vector allocation (Maxim Levitsky) [RHEL-109583] - PCI/MSI: Export pci_msix_prepare_desc() for dynamic MSI-X allocations (Maxim Levitsky) [RHEL-109583] - net: mana: Add handler for hardware servicing events (Maxim Levitsky) [RHEL-109583] - RDMA/mana_ib: Add device statistics support (Maxim Levitsky) [RHEL-109583] - net: mana: Expose additional hardware counters for drop and TC via ethtool. (Maxim Levitsky) [RHEL-109583] - net: mana: Fix warnings for missing export.h header inclusion (Maxim Levitsky) [RHEL-109583] - net: mana: Record doorbell physical address in PF mode (Maxim Levitsky) [RHEL-109583] - tunnels: reset the GSO metadata before reusing the skb (Antoine Tenart) [RHEL-101033] - watchdog/hpwdt: Support Suspend and Resume (Joseph Szczypek) [RHEL-104148] - watchdog/hpwdt: Remove unused variable (Joseph Szczypek) [RHEL-104148] - watchdog/hpwdt: Remove redundant test. (Joseph Szczypek) [RHEL-104148] - watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO (Joseph Szczypek) [RHEL-104148] - NFSv4/flexfiles: Fix layout merge mirror check. (Benjamin Coddington) [RHEL-108616] - NFSv4: Clear the NFS_CAP_XATTR flag if not supported by the server (Benjamin Coddington) [RHEL-108616] - NFSv4: Clear NFS_CAP_OPEN_XOR and NFS_CAP_DELEGTIME if not supported (Benjamin Coddington) [RHEL-108616] - NFSv4: Clear the NFS_CAP_FS_LOCATIONS flag if it is not set (Benjamin Coddington) [RHEL-108616] - NFS: Fix a race when updating an existing write (Benjamin Coddington) [RHEL-108616] - flexfiles/pNFS: fix NULL checks on result of ff_layout_choose_ds_for_read (Benjamin Coddington) [RHEL-108616] - SUNRPC: call xs_sock_process_cmsg for all cmsg (Benjamin Coddington) [RHEL-108616] - NFSv4: Don't clear capabilities that won't be reset (Benjamin Coddington) [RHEL-108616] - sunrpc: fix handling of server side tls alerts (Benjamin Coddington) [RHEL-108616] - NFS: Fix the setting of capabilities when automounting a new filesystem (Benjamin Coddington) [RHEL-108616] - sunrpc: fix client side handling of tls alerts (Benjamin Coddington) [RHEL-108616] - NFS: Fix filehandle bounds checking in nfs_fh_to_dentry() (Benjamin Coddington) [RHEL-108616] - pNFS/flexfiles: don't attempt pnfs on fatal DS errors (Benjamin Coddington) [RHEL-108616] - NFSD: detect mismatch of file handle and delegation stateid in OPEN op (Benjamin Coddington) [RHEL-108616] - nfsd: handle get_client_locked() failure in nfsd4_setclientid_confirm() (Benjamin Coddington) [RHEL-108616] - NFSv4/flexfiles: Fix handling of NFS level errors in I/O (Benjamin Coddington) [RHEL-108616] - flexfiles/pNFS: update stats on NFS4ERR_DELAY for v4.1 DSes (Benjamin Coddington) [RHEL-108616] - nfs: Clean up /proc/net/rpc/nfs when nfs_fs_proc_net_init() fails. (Benjamin Coddington) [RHEL-108616] - nfsd: use threads array as-is in netlink interface (Benjamin Coddington) [RHEL-108616] - SUNRPC: Prevent hang on NFS mount with xprtsec=[m]tls (Benjamin Coddington) [RHEL-108616] - nfs: ignore SB_RDONLY when remounting nfs (Benjamin Coddington) [RHEL-108616] - fs/nfs/read: fix double-unlock bug in nfs_return_empty_folio() (Benjamin Coddington) [RHEL-108616] - NFSv4/pnfs: Reset the layout state after a layoutreturn (Benjamin Coddington) [RHEL-108616] - svcrdma: Reduce the number of rdma_rw contexts per-QP (Benjamin Coddington) [RHEL-108616] - nfsd: Initialize ssc before laundromat_work to prevent NULL dereference (Benjamin Coddington) [RHEL-108616] - NFSD: unregister filesystem in case genl_register_family() fails (Benjamin Coddington) [RHEL-108616] - nfs: handle failure of nfs_get_lock_context in unlock path (Benjamin Coddington) [RHEL-108616] - nfs: add missing selections of CONFIG_CRC32 (Benjamin Coddington) [RHEL-108616] - nfs: Add missing release on error in nfs_lock_and_join_requests() (Benjamin Coddington) [RHEL-108616] - NFS: Shut down the nfs_client only after all the superblocks (Benjamin Coddington) [RHEL-108616] - NFSv4: Avoid unnecessary scans of filesystems for delayed delegations (Benjamin Coddington) [RHEL-108616] - NFSv4: Avoid unnecessary scans of filesystems for expired delegations (Benjamin Coddington) [RHEL-108616] - NFSv4: Avoid unnecessary scans of filesystems for returning delegations (Benjamin Coddington) [RHEL-108616] - NFSv4: Don't trigger uneccessary scans for return-on-close delegations (Benjamin Coddington) [RHEL-108616] - NFSD: Fix callback decoder status codes (Benjamin Coddington) [RHEL-108616] - NFSD: Never return NFS4ERR_FILE_OPEN when removing a directory (Benjamin Coddington) [RHEL-108616] - nfsd: move error choice for incorrect object types to version-specific code. (Benjamin Coddington) [RHEL-108616] - nfsd: be more systematic about selecting error codes for internal use. (Benjamin Coddington) [RHEL-108616] - nfsd: Move error code mapping to per-version proc code. (Benjamin Coddington) [RHEL-108616] - NFSD: nfsd_unlink() clobbers non-zero status returned from fh_fill_pre_attrs() (Benjamin Coddington) [RHEL-108616] - NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up (Benjamin Coddington) [RHEL-108616] - nfsd: fix management of listener transports (Benjamin Coddington) [RHEL-108616] - NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback (Benjamin Coddington) [RHEL-108616] - sunrpc: suppress warnings for unused procfs functions (Benjamin Coddington) [RHEL-108616] - NFSv4: Fix a deadlock when recovering state on a sillyrenamed file (Benjamin Coddington) [RHEL-108616] - SUNRPC: Prevent looping due to rpc_signal_task() races (Benjamin Coddington) [RHEL-108616] - SUNRPC: convert RPC_TASK_* constants to enum (Benjamin Coddington) [RHEL-108616] - NFS: Adjust delegated timestamps for O_DIRECT reads and writes (Benjamin Coddington) [RHEL-108616] - NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE (Benjamin Coddington) [RHEL-108616] - NFSv4.2: fix COPY_NOTIFY xdr buf size calculation (Benjamin Coddington) [RHEL-108616] - NFSD: Insulate nfsd4_encode_read_plus_data() from page boundaries in the encode buffer (Benjamin Coddington) [RHEL-108616] - NFSD: Insulate nfsd4_encode_read_plus() from page boundaries in the encode buffer (Benjamin Coddington) [RHEL-108616] - NFSD: Insulate nfsd4_encode_read() from page boundaries in the encode buffer (Benjamin Coddington) [RHEL-108616] - NFSD: Fix CB_GETATTR status fix (Benjamin Coddington) [RHEL-108616] - NFSD: fix decoding in nfs4_xdr_dec_cb_getattr (Benjamin Coddington) [RHEL-108616] - nfsd: fix legacy client tracking initialization (Benjamin Coddington) [RHEL-108616] - nfs: clear SB_RDONLY before getting superblock (Benjamin Coddington) [RHEL-108616] - nfs: ignore SB_RDONLY when mounting nfs (Benjamin Coddington) [RHEL-108616] - platform/x86/amd/hsmp: Ensure success even if hwmon registration fails (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Ensure sock->metric_tbl_addr is non-NULL (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Enhance the print messages to prevent confusion (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Use IS_ENABLED() instead of IS_REACHABLE() (David Arcari) [RHEL-102859] - x86/platform/amd: replace down_timeout() with down_interruptible() (David Arcari) [RHEL-102859] - x86/platform/amd: move final timeout check to after final sleep (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: fix building with CONFIG_HWMON=m (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: acpi: Add sysfs files to display HSMP telemetry (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Report power via hwmon sensors (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Use a single DRIVER_VERSION for all hsmp modules (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Make amd_hsmp and hsmp_acpi as mutually exclusive drivers (David Arcari) [RHEL-102859] - x86/platform/amd: Move the header to (David Arcari) [RHEL-102859] - x86/platform/amd: Clean up the header guards a bit (David Arcari) [RHEL-102859] - x86/platform/amd: Move the header to (David Arcari) [RHEL-102859] - x86/amd_node, platform/x86/amd/hsmp: Have HSMP use SMN through AMD_NODE (David Arcari) [RHEL-102859] - x86/amd_nb: Use rdmsr_safe() in amd_get_mmconfig_range() (David Arcari) [RHEL-102859] - x86/amd_node: Use defines for SMN register offsets (David Arcari) [RHEL-102859] - x86/amd_node: Remove dependency on AMD_NB (David Arcari) [RHEL-102859] - x86/amd_node: Update __amd_smn_rw() error paths (David Arcari) [RHEL-102859] - x86/amd_nb: Move SMN access code to a new amd_node driver (David Arcari) [RHEL-102859] - x86/amd_nb, hwmon: (k10temp): Simplify amd_pci_dev_to_node_id() (David Arcari) [RHEL-102859] - x86/amd_nb: Simplify function 3 search (David Arcari) [RHEL-102859] - x86/amd_nb: Use topology info to get AMD node count (David Arcari) [RHEL-102859] - x86/amd_nb: Simplify root device search (David Arcari) [RHEL-102859] - x86/amd_nb: Simplify function 4 search (David Arcari) [RHEL-102859] - x86: Start moving AMD node functionality out of AMD_NB (David Arcari) [RHEL-102859] - x86/amd_nb: Clean up early_is_amd_nb() (David Arcari) [RHEL-102859] - x86/amd_nb: Restrict init function to AMD-based systems (David Arcari) [RHEL-102859] - x86/amd_nb: Add new PCI ID for AMD family 1Ah model 20h (David Arcari) [RHEL-102859] - x86/amd_nb: Add new PCI IDs for AMD family 1Ah model 60h-70h (David Arcari) [RHEL-102859] - x86/amd_nb: Add new PCI IDs for AMD family 1Ah model 60h (David Arcari) [RHEL-102859] - x86/amd_nb: Enhance SMN access error checking (David Arcari) [RHEL-102859] - hwmon: (k10temp) Check return value of amd_smn_read() (David Arcari) [RHEL-102859] - EDAC/amd64: Remove unused register accesses (David Arcari) [RHEL-102859] - EDAC/amd64: Check return value of amd_smn_read() (David Arcari) [RHEL-102859] - x86/amd_nb: Check for invalid SMN reads (David Arcari) [RHEL-102859] - x86/amd_nb: Add new PCI IDs for AMD family 0x1a (David Arcari) [RHEL-102859] - platform/x86: amd: Use *-y instead of *-objs in Makefiles [partial] (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Add support for HSMP protocol version 7 messages (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Change the error type (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Add new error code and error logs (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: mark hsmp_msg_desc_table[] as maybe_unused (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Make hsmp_pdev static instead of global (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Use dev_groups in the driver structure (David Arcari) [RHEL-102859] - sysfs: Fix crash on empty group attributes array (David Arcari) [RHEL-102859] - sysfs: Introduce a mechanism to hide static attribute_groups (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Use name space while exporting module symbols (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Create separate ACPI, plat and common drivers (David Arcari) [RHEL-102859] - redhat/configs: Enable CONFIG_AMD_HSMP_ACPI and CONFIG_AMD_HSMP_PLAT on RHEL (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Change generic plat_dev name to hsmp_pdev (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Move ACPI code to acpi.c (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Move platform device specific code to plat.c (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Move structure and macros to header file (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Convert amd_hsmp_rdwr() to a function pointer (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Create wrapper function init_acpi() (David Arcari) [RHEL-102859] - platform/x86/amd/hsmp: Create hsmp/ directory (David Arcari) [RHEL-102859] - Documentation/x86/amd/hsmp: Updating urls (David Arcari) [RHEL-102859] - netfilter: nf_conntrack: fix crash due to removal of uninitialised entry (Florian Westphal) [RHEL-106430] {CVE-2025-38472} - s390/sclp: Fix SCCB present check (CKI Backport Bot) [RHEL-113557] {CVE-2025-39694} - ipv6: mcast: Delay put pmc->idev in mld_del_delrec() (Hangbin Liu) [RHEL-111150] {CVE-2025-38550} - devlink: add reserved fields to devlink_*_ops (Petr Oros) [RHEL-111906] - ixgbe: prevent from unwanted interface name changes (CKI Backport Bot) [RHEL-109607] - devlink: let driver opt out of automatic phys_port_name generation (CKI Backport Bot) [RHEL-109607] - xfrm: interface: fix use-after-free after changing collect_md xfrm interface (CKI Backport Bot) [RHEL-109528] {CVE-2025-38500} - dpll: add reserved fields to dpll_device_ops and dpll_pin_ops structs (Ivan Vecera) [RHEL-111904] - ice: use fixed adapter index for E825C embedded devices (Michal Schmidt) [RHEL-104010] - net: openvswitch: remove misbehaving actions length check (Aaron Conole) [RHEL-83440] - irdma: free iwdev->rf after removing MSI-X (Kamal Heib) [RHEL-103278 RHEL-95816] - sctp: linearize cloned gso packets in sctp_rcv (CKI Backport Bot) [RHEL-113332] {CVE-2025-38718} - net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull (CKI Backport Bot) [RHEL-112247] {CVE-2023-53125} - net: usb: smsc75xx: Limit packet length to skb->len (CKI Backport Bot) [RHEL-112247] {CVE-2023-53125} - cpufreq: Move endif to the end of Kconfig file (Mark Langsdorf) [RHEL-112816] - cpufreq: Move CPPC configs to common Kconfig and add RISC-V (Mark Langsdorf) [RHEL-112816] - HID: core: Harden s32ton() against conversion to 0 bits (Benjamin Tissoires) [RHEL-111034] {CVE-2025-38556} - HID: stop exporting hid_snto32() (Benjamin Tissoires) [RHEL-111034] {CVE-2025-38556} - HID: simplify snto32() (Benjamin Tissoires) [RHEL-111034] {CVE-2025-38556} - redhat: set defaults for RHEL 9.7 (Augusto Caringi) - posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() (CKI Backport Bot) [RHEL-112783] {CVE-2025-38352} - fs: export anon_inode_make_secure_inode() and fix secretmem LSM bypass (Audra Mitchell) [RHEL-110312] {CVE-2025-38396} - idpf: convert control queue mutex to a spinlock (Michal Schmidt) [RHEL-106051] {CVE-2025-38392} - redhat/configs: Enable CONFIG_MITIGATION_TSA for x86 (Waiman Long) [RHEL-83897] - x86/process: Move the buffer clearing before MONITOR (Waiman Long) [RHEL-83897 RHEL-83906] {CVE-2024-36357 CVE-2024-36350} - x86/microcode/AMD: Add TSA microcode SHAs (Waiman Long) [RHEL-83897 RHEL-83906] {CVE-2024-36357 CVE-2024-36350} - KVM: SVM: Advertise TSA CPUID bits to guests (Waiman Long) [RHEL-83897 RHEL-83906] {CVE-2024-36357 CVE-2024-36350} - x86/bugs: Add a Transient Scheduler Attacks mitigation (Waiman Long) [RHEL-83897 RHEL-83906] {CVE-2024-36357 CVE-2024-36350} - x86/bugs: Rename MDS machinery to something more generic (Waiman Long) [RHEL-83897 RHEL-83906] {CVE-2024-36357 CVE-2024-36350} - x86/idle: Use MONITOR and MWAIT mnemonics in (Waiman Long) [RHEL-83897] - x86/idle: Remove .s output beautifying delimiters from simpler asm() templates (Waiman Long) [RHEL-83897] - x86/idle: Standardize argument types for MONITOR{,X} and MWAIT{,X} instruction wrappers on 'u32' (Waiman Long) [RHEL-83897] - x86/idle: Remove MFENCEs for X86_BUG_CLFLUSH_MONITOR in mwait_idle_with_hints() and prefer_mwait_c1_over_halt() (Waiman Long) [RHEL-83897] - x86/bugs: Rename mmio_stale_data_clear to cpu_buf_vm_clear (Waiman Long) [RHEL-83897] - x86/microcode: Consolidate the loader enablement checking (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Fix __apply_microcode_amd()'s return value (Waiman Long) [RHEL-83897] {CVE-2025-22047} - x86/microcode/AMD: Add some forgotten models to the SHA check (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Load only SHA256-checksummed patches (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Add get_patch_level() (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Get rid of the _load_microcode_amd() forward declaration (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Merge early_apply_microcode() into its single callsite (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Remove unused save_microcode_in_initrd_amd() declarations (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Remove ugly linebreak in __verify_patch_section() signature (Waiman Long) [RHEL-83897] - x86/cpu: Introduce new microcode matching helper (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Remove ret local var in early_apply_microcode() (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Have __apply_microcode_amd() return bool (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Return bool from find_blobs_in_containers() (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Flush patch buffer mapping after application (Waiman Long) [RHEL-83897] - x86/CPU/AMD: Terminate the erratum_1386_microcode array (Waiman Long) [RHEL-83897] {CVE-2024-56721} - x86/mm: Carve out INVLPG inline asm for use by others (Waiman Long) [RHEL-83897] - x86/cpu: Fix formatting of cpuid_bits[] in scattered.c (Waiman Long) [RHEL-83897] - x86/cpufeatures: Add X86_FEATURE_AMD_WORKLOAD_CLASS feature bit (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Split load_microcode_amd() (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Pay attention to the stepping dynamically (Waiman Long) [RHEL-83897] - x86/bugs: Use code segment selector for VERW operand (Waiman Long) [RHEL-83897] {CVE-2024-50072} - x86/microcode/AMD: Fix a -Wsometimes-uninitialized clang false positive (Waiman Long) [RHEL-83897] - x86/microcode/AMD: Use the family,model,stepping encoded in the patch ID (Waiman Long) [RHEL-83897] - x86/CPU/AMD: Improve the erratum 1386 workaround (Waiman Long) [RHEL-83897] - x86: Add a comment about the "magic" behind shadow sti before mwait (Waiman Long) [RHEL-83897] - x86/bugs: Revert "Reverse instruction order of CLEAR_CPU_BUFFERS" (Waiman Long) [RHEL-83897] - scsi: mpt3sas: Fix a fw_event memory leak (Tomas Henzl) [RHEL-108656] - Revert "drm/gem-dma: Use dma_buf from GEM object instance" (Robert Foss) [RHEL-106696] - Revert "drm/gem-framebuffer: Use dma_buf from GEM object instance" (Robert Foss) [RHEL-106696] - Revert "drm/prime: Use dma_buf from GEM object instance" (Robert Foss) [RHEL-106696] - drm/framebuffer: Acquire internal references on GEM handles (Robert Foss) [RHEL-106696] - drm/gem: Acquire references on GEM handles for framebuffers (CKI Backport Bot) [RHEL-106696] {CVE-2025-38449} - Revert "e1000e: change k1 configuration on MTP and later platforms" (Michal Schmidt) [RHEL-110519] * Mon Sep 15 2025 CKI KWF Bot [5.14.0-617.el9] - sctp: linearize cloned gso packets in sctp_rcv (CKI Backport Bot) [RHEL-113331] {CVE-2025-38718} - ceph: fix client race condition where r_parent becomes stale before sending message (Alex Markuze) [RHEL-109212] - ceph: fix client race condition validating r_parent before applying state (Alex Markuze) [RHEL-109212] - platform/x86/intel/pmc: Fix Arrow Lake U/H NPU PCI ID (David Arcari) [RHEL-23894] - drm/virtio: implement virtio_gpu_shutdown (Gerd Hoffmann) [RHEL-109504] * Mon Sep 15 2025 CKI KWF Bot [5.14.0-616.el9] - PM: EM: Add function for registering a PD without capacity update (David Arcari) [RHEL-112493] - cpufreq: intel_pstate: Support Clearwater Forest OOB mode (David Arcari) [RHEL-112493] - cpufreq: intel_pstate: Add Granite Rapids support in no-HWP mode (David Arcari) [RHEL-112493] - cpufreq: intel_pstate: Always use HWP_DESIRED_PERF in passive mode (David Arcari) [RHEL-112493] - cpufreq: intel_pstate: EAS: Increase cost for CPUs using L3 cache (David Arcari) [RHEL-112493] - cpufreq: intel_pstate: EAS support for hybrid platforms (David Arcari) [RHEL-112493] - arch_topology: Relocate cpu_scale to topology.[h|c] (David Arcari) [RHEL-112493] - arch_topology: Make register_cpu_capacity_sysctl() tolerant to late CPUs (David Arcari) [RHEL-112493] - PM: EM: Introduce em_adjust_cpu_capacity() (David Arcari) [RHEL-112493] - PM: EM: Move CPU capacity check to em_adjust_new_capacity() (David Arcari) [RHEL-112493] - PM: EM: Fix potential division-by-zero error in em_compute_costs() (David Arcari) [RHEL-112493] - PM: EM: Address RCU-related sparse warnings (David Arcari) [RHEL-112493] - PM: EM: Consify two parameters of em_dev_register_perf_domain() (David Arcari) [RHEL-112493] - PM: EM: use kfree_rcu() to simplify the code (David Arcari) [RHEL-112493] - PM: EM: Slightly reduce em_check_capacity_update() overhead (David Arcari) [RHEL-112493] - PM: EM: Drop unused parameter from em_adjust_new_capacity() (David Arcari) [RHEL-112493] - PM: EM: Move sched domains rebuild function from schedutil to EM (David Arcari) [RHEL-112493] - PM: EM: Add min/max available performance state limits (David Arcari) [RHEL-112493] - PM: EM: Refactor em_adjust_new_capacity() (David Arcari) [RHEL-112493] - PM: EM: fix wrong utilization estimation in em_cpu_energy() (David Arcari) [RHEL-112493] - PM: EM: Force device drivers to provide power in uW (David Arcari) [RHEL-112493] - PM: EM: Fix nr_states warnings in static checks (David Arcari) [RHEL-112493] - PM: EM: Add em_dev_compute_costs() (David Arcari) [RHEL-112493] - PM: EM: Remove old table (David Arcari) [RHEL-112493] - PM: EM: Change debugfs configuration to use runtime EM table data (David Arcari) [RHEL-112493] - PM: EM: Optimize em_cpu_energy() and remove division (David Arcari) [RHEL-112493] - PM: EM: Support late CPUs booting and capacity adjustment (David Arcari) [RHEL-112493] - PM: EM: Add performance field to struct em_perf_state and optimize (David Arcari) [RHEL-112493] - PM: EM: Add em_perf_state_from_pd() to get performance states table (David Arcari) [RHEL-112493] - PM: EM: Introduce em_dev_update_perf_domain() for EM updates (David Arcari) [RHEL-112493] - PM: EM: Add functions for memory allocations for new EM tables (David Arcari) [RHEL-112493] - PM: EM: Use runtime modified EM for CPUs energy estimation in EAS (David Arcari) [RHEL-112493] - PM: EM: Introduce runtime modifiable table (David Arcari) [RHEL-112493] - PM: EM: Split the allocation and initialization of the EM table (David Arcari) [RHEL-112493] - PM: EM: Check if the get_cost() callback is present in em_compute_costs() (David Arcari) [RHEL-112493] - PM: EM: Introduce em_compute_costs() (David Arcari) [RHEL-112493] - PM: EM: Refactor em_pd_get_efficient_state() to be more flexible (David Arcari) [RHEL-112493] - PM: EM: Find first CPU active while updating OPP efficiency (David Arcari) [RHEL-112493] - PM: EM: Extend em_cpufreq_update_efficiencies() argument list (David Arcari) [RHEL-112493] - PM: EM: Add missing newline for the message log (David Arcari) [RHEL-112493] - PM: EM: fix memory leak with using debugfs_lookup() (David Arcari) [RHEL-112493] - PM: EM: fix kernel-doc comments (David Arcari) [RHEL-112493] - cpufreq: intel_pstate: Populate the cpu_capacity sysfs entries (David Arcari) [RHEL-112493] * Fri Sep 12 2025 CKI KWF Bot [5.14.0-615.el9] - ACPI: processor: Rescan "dead" SMT siblings during initialization (David Arcari) [RHEL-113139] - intel_idle: Allow loading ACPI tables for any family (David Arcari) [RHEL-113139] - intel_idle: Update arguments of mwait_idle_with_hints() (David Arcari) [RHEL-113139] - intel_idle: Rescan "dead" SMT siblings during initialization (David Arcari) [RHEL-113139] - x86/smp: PM/hibernate: Split arch_resume_nosmt() (David Arcari) [RHEL-113139] - intel_idle: Use subsys_initcall_sync() for initialization (David Arcari) [RHEL-113139] - intel_idle: Add C1 demotion on/off sysfs knob (David Arcari) [RHEL-113139] - tools/power turbostat: version 2025.09.09 (David Arcari) [RHEL-110614] - tools/power turbostat: Handle non-root legacy-uncore sysfs permissions (David Arcari) [RHEL-110614] - tools/power turbostat: standardize PER_THREAD_PARAMS (David Arcari) [RHEL-110614] - tools/power turbostat: Fix DMR support (David Arcari) [RHEL-110614] - tools/power turbostat: add format "average" for external attributes (David Arcari) [RHEL-110614] - tools/power turbostat: delete GET_PKG() (David Arcari) [RHEL-110614] - tools/power turbostat: probe and display L3 cache topology (David Arcari) [RHEL-110614] - tools/power turbostat: Support more than 64 built-in-counters (David Arcari) [RHEL-110614] - tools/power turbostat.8: Document Totl%%C0, Any%%C0, GFX%%C0, CPUGFX%% columns (David Arcari) [RHEL-110614] - tools/power turbostat: Fix bogus SysWatt for forked program (David Arcari) [RHEL-110614] - tools/power turbostat: Handle cap_get_proc() ENOSYS (David Arcari) [RHEL-110614] - tools/power turbostat: Fix build with musl (David Arcari) [RHEL-110614] - tools/power turbostat: verify arguments to params --show and --hide (David Arcari) [RHEL-110614] - tools/power turbostat: regression fix: --show C1E%% (David Arcari) [RHEL-110614] - tools/power turbostat: version 2025.06.08 (David Arcari) [RHEL-110614] - tools/power turbostat: Add initial support for BartlettLake (David Arcari) [RHEL-110614] - tools/power turbostat: Add initial support for DMR (David Arcari) [RHEL-110614] - tools/power turbostat: Dump RAPL sysfs info (David Arcari) [RHEL-110614] - tools/power turbostat: Avoid probing the same perf counters (David Arcari) [RHEL-110614] - tools/power turbostat: Allow probing RAPL with platform_features->rapl_msrs cleared (David Arcari) [RHEL-110614] - tools/power turbostat: Clean up add perf/msr counter logic (David Arcari) [RHEL-110614] - tools/power turbostat: Introduce add_msr_counter() (David Arcari) [RHEL-110614] - tools/power turbostat: Remove add_msr_perf_counter_() (David Arcari) [RHEL-110614] - tools/power turbostat: Remove add_cstate_perf_counter_() (David Arcari) [RHEL-110614] - tools/power turbostat: Remove add_rapl_perf_counter_() (David Arcari) [RHEL-110614] - tools/power turbostat: Quit early for unsupported RAPL counters (David Arcari) [RHEL-110614] - tools/power turbostat: Always check rapl_joules flag (David Arcari) [RHEL-110614] - tools/power turbostat: Fix AMD package-energy reporting (David Arcari) [RHEL-110614] - tools/power turbostat: Fix RAPL_GFX_ALL typo (David Arcari) [RHEL-110614] - tools/power turbostat: Add Android support for MSR device handling (David Arcari) [RHEL-110614] - tools/power turbostat.8: pm_domain wording fix (David Arcari) [RHEL-110614] - tools/power turbostat.8: fix typo: idle_pct should be pct_idle (David Arcari) [RHEL-110614] * Wed Sep 10 2025 CKI KWF Bot [5.14.0-614.el9] - ibmvnic: Increase max subcrq indirect entries with fallback (Mamatha Inamdar) [RHEL-111532] - EDAC/bluefield: Don't use bluefield_edac_readl() result on error (Jennifer Berringer) [RHEL-103881] - EDAC/bluefield: Use Arm SMC for EMI access on BlueField-2 (Jennifer Berringer) [RHEL-103881] - powerpc/pseries: Correct secvar format representation for static key management (Mamatha Inamdar) [RHEL-101853] - powerpc/secvar: Expose secvars relevant to the key management mode (Mamatha Inamdar) [RHEL-101853] - integrity/platform_certs: Allow loading of keys in the static key management mode (Mamatha Inamdar) [RHEL-101853] - s390/hypfs: Enable limited access during lockdown (Mete Durlu) [RHEL-111204] - s390/hypfs: Avoid unnecessary ioctl registration in debugfs (Mete Durlu) [RHEL-111204] - x86/CPU/AMD: Add X86_FEATURE_ZEN6 (David Arcari) [RHEL-106912] - x86/cpufeatures: Free up unused feature bits (David Arcari) [RHEL-106912] - x86/CPU/AMD: Ignore invalid reset reason value (David Arcari) [RHEL-103591] - PCI/ASPM: Fix link state exit during switch upstream function removal (Marcin Juszkiewicz) [RHEL-102694] - PCI/ASPM: Fix L1SS saving (Marcin Juszkiewicz) [RHEL-102694] - PCI/ASPM: Save parent L1SS config in pci_save_aspm_l1ss_state() (Marcin Juszkiewicz) [RHEL-102694] - PCI/ASPM: Add notes about enabling PCI-PM L1SS to pci_enable_link_state(_locked) (Marcin Juszkiewicz) [RHEL-102694] - PCI/ASPM: Disable L1 before disabling L1 PM Substates (Marcin Juszkiewicz) [RHEL-102694] - x86/cpufeatures: Add X86_FEATURE_AMD_WORKLOAD_CLASS feature bit (David Arcari) [RHEL-105422] - cpufreq/amd-pstate: Avoid shadowing ret in amd_pstate_ut_check_driver() (David Arcari) [RHEL-105422] - cpufreq/amd-pstate: Disable preferred cores on designs with workload classification (David Arcari) [RHEL-105422] - amd-pstate-ut: Reset amd-pstate driver mode after running selftests (David Arcari) [RHEL-105422] - ACPI: CPPC: Modify cppc_get_auto_sel_caps() to cppc_get_auto_sel() (David Arcari) [RHEL-105422] - ACPI: CPPC: Adjust return code for inline functions in !CONFIG_ACPI_CPPC_LIB (David Arcari) [RHEL-105422] - ACPI: CPPC: Refactor register value get and set ABIs (David Arcari) [RHEL-105422] - ACPI: CPPC: Add cppc_set_reg_val() (David Arcari) [RHEL-105422] - ACPI: CPPC: Extract cppc_get_reg_val_in_pcc() (David Arcari) [RHEL-105422] - ACPI: CPPC: Rename cppc_get_perf() to cppc_get_reg_val() (David Arcari) [RHEL-105422] - ACPI: CPPC: Optimize cppc_get_perf() (David Arcari) [RHEL-105422] - ACPI: CPPC: Add IS_OPTIONAL_CPC_REG macro to judge if a cpc_reg is optional (David Arcari) [RHEL-105422] - cpufreq/amd-pstate: Add support for the "Requested CPU Min frequency" BIOS option (David Arcari) [RHEL-105422] - cpufreq/amd-pstate: Add offline, online and suspend callbacks for amd_pstate_driver (David Arcari) [RHEL-105422] - cpufreq/amd-pstate: Move max_perf limiting in amd_pstate_update (David Arcari) [RHEL-105422] - cpufreq/amd-pstate: Use scope based cleanup for cpufreq_policy refs [partial] (David Arcari) [RHEL-105422] * Sat Sep 06 2025 Patrick Talbert [5.14.0-613.el9] - x86/cpu: Remove useless work in detect_tme_early() (Frank Liang) [RHEL-111095] - x86/cpu: Clear TME feature flag if TME is not enabled by BIOS (Frank Liang) [RHEL-111095] - s390/ism: fix concurrency management in ism_cmd() (Mete Durlu) [RHEL-110206] - s390/pci: Allow automatic recovery with minimal driver support (Mete Durlu) [RHEL-110235] - Makefile: add $(srctree) to dependency of compile_commands.json target (Herton R. Krzesinski) [RHEL-107194] - kbuild: scripts/gdb: bring the "abspath" back (Herton R. Krzesinski) [RHEL-107194] - kbuild: Use $(obj)/%%.cc to fix host C++ module builds (Herton R. Krzesinski) [RHEL-107194] - kbuild: scripts/gdb: Replace missed $(srctree)/$(src) w/ $(src) (Herton R. Krzesinski) [RHEL-107194] - kbuild: use $(src) instead of $(srctree)/$(src) for source directory (Herton R. Krzesinski) [RHEL-107194] - kbuild: use $(obj)/ instead of $(src)/ for common pattern rules (Herton R. Krzesinski) [RHEL-107194] - kbuild: do not add $(srctree) or $(objtree) to header search paths (Herton R. Krzesinski) [RHEL-107194] - arch: use $(obj)/ instead of $(src)/ for preprocessed linker scripts (Herton R. Krzesinski) [RHEL-107194] - arm64: vdso32: Remove unused vdso32-offsets.h (Herton R. Krzesinski) [RHEL-107194] - staging: vc04_services: interface: Drop include Makefile directive (Herton R. Krzesinski) [RHEL-107194] - staging: vc04_services: vchiq-mmal: Drop include Makefile directive (Herton R. Krzesinski) [RHEL-107194] - staging: vc04_services: bcm2835-camera: Drop include Makefile directive (Herton R. Krzesinski) [RHEL-107194] - staging: vc04_services: bcm2835-audio: Drop include Makefile directive (Herton R. Krzesinski) [RHEL-107194] - certs: check-in the default x509 config file (Herton R. Krzesinski) [RHEL-107194] - sparc: move the install rule to arch/sparc/Makefile (Herton R. Krzesinski) [RHEL-107194] - riscv: move the (z)install rules to arch/riscv/Makefile (Herton R. Krzesinski) [RHEL-107194] - powerpc: move the install rule to arch/powerpc/Makefile (Herton R. Krzesinski) [RHEL-107194] - powerpc: make the install target not depend on any build artifact (Herton R. Krzesinski) [RHEL-107194] - powerpc: remove unused zInstall target from arch/powerpc/boot/Makefile (Herton R. Krzesinski) [RHEL-107194] - nios2: move the install rule to arch/nios2/Makefile (Herton R. Krzesinski) [RHEL-107194] - ARM: 9102/1: move theinstall rules to arch/arm/Makefile (Herton R. Krzesinski) [RHEL-107194] - dpll: zl3073x: ZL3073X_I2C and ZL3073X_SPI should depend on NET (Ivan Vecera) [RHEL-105063] - dpll: Make ZL3073X invisible (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Fix build failure (Ivan Vecera) [RHEL-105063] - redhat/configs: enable CONFIG_ZL3073X* (Ivan Vecera) [RHEL-105063] - redhat/configs: enable CONFIG_I2C_MUX_PCA954x on x86 (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Add support to get fractional frequency offset (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Add support to adjust phase (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Implement phase offset monitor feature (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Add support to get phase offset on connected input pin (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Add support to get/set esync on pins (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Add support to get/set frequency on pins (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Implement input pin state setting in automatic mode (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Add support to get/set priority on input pins (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Implement input pin selection in manual mode (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Register DPLL devices and pins (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Read DPLL types and pin properties from system firmware (Ivan Vecera) [RHEL-105063] - dpll: zl3073x: Fetch invariants during probe (Ivan Vecera) [RHEL-105063] - dpll: Add basic Microchip ZL3073x support (Ivan Vecera) [RHEL-105063] - spi: Introduce spi_get_device_match_data() helper (Ivan Vecera) [RHEL-105063] - dt-bindings: dpll: Add support for Microchip Azurite chip family (Ivan Vecera) [RHEL-105063] - dt-bindings: dpll: Add DPLL device and pin (Ivan Vecera) [RHEL-105063] - tpm_crb_ffa: Remove unused export (Marcin Juszkiewicz) [RHEL-102691] - redhat/configs: enable CONFIG_TCG_ARM_CRB_FFA on aarch64 (Marcin Juszkiewicz) [RHEL-102691] - tpm: Do not remap from ACPI resources again for Pluton TPM (Marcin Juszkiewicz) [RHEL-102691] - tpm_crb: ffa_tpm: Implement driver compliant to CRB over FF-A (Marcin Juszkiewicz) [RHEL-102691] - ACPICA: Add start method for ARM FF-A (Marcin Juszkiewicz) [RHEL-102691] - tpm_crb: Add support for the ARM FF-A start method (Marcin Juszkiewicz) [RHEL-102691] - tpm_crb: Clean-up and refactor check for idle support (Marcin Juszkiewicz) [RHEL-102691] - tpm_crb: Fix an error handling path in crb_acpi_add() (Marcin Juszkiewicz) [RHEL-102691] - tpm_crb: Add support for CRB devices based on Pluton (Marcin Juszkiewicz) [RHEL-102691] - Documentation: tpm: Add documentation for the CRB FF-A interface (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix the missing entry in struct ffa_indirect_msg_hdr (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Replace mutex with rwlock to avoid sleep in atomic context (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Move memory allocation outside the mutex locking (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix memory leak by freeing notifier callback node (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Skip Rx buffer ownership release if not acquired (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Set dma_mask for ffa devices (Marcin Juszkiewicz) [RHEL-102691] {CVE-2025-38043} - firmware: arm_ffa: Skip the first/partition ID when parsing vCPU list (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Explicitly cast return value from NOTIFICATION_INFO_GET (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Explicitly cast return value from FFA_VERSION before comparison (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Handle ffa_notification_get correctly at virtual FF-A instance (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Allow multiple UUIDs per partition to register SRI callback (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for handling framework notifications (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for {un,}registration of framework notifications (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Stash ffa_device instead of notify_type in notifier_cb_info (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Refactoring to prepare for framework notification support (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Remove unnecessary declaration of ffa_partitions_cleanup() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Reject higher major version as incompatible (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Upgrade FF-A version to v1.2 in the driver (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for passing UUID in FFA_MSG_SEND2 (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Unregister the FF-A devices when cleaning up the partitions (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Handle the presence of host partition in the partition info (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Refactor addition of partition information into XArray (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix big-endian support in __ffa_partition_info_regs_get() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix big-endian support in __ffa_partition_info_get() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Align sync_send_receive{,2} function prototypes (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Replace UUID buffer to standard UUID format (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Replace SCMI by FF-A in the macro (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix the race around setting ffa_dev->properties (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Avoid string-fortify warning caused by memcpy() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Avoid string-fortify warning in export_uuid() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fetch the Rx/Tx buffer size using ffa_features() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for FFA_YIELD in direct messaging (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for FFA_MSG_SEND_DIRECT_{REQ,RESP}2 (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for FFA_PARTITION_INFO_GET_REGS (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Move the function ffa_features() earlier (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Update the FF-A command list with v1.2 additions (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Some coding style fixes (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Split bus and driver into distinct modules (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Move the FF-A v1.0 NULL UUID workaround to bus notifier (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Avoid queuing work when running on the worker queue (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix memory corruption in ffa_msg_send2() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for FFA_MSG_SEND2 (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Stash the partition properties for query purposes (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix kernel warning about incorrect SRI/NPI (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add support for handling notification pending interrupt(NPI) (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Refactor SRI handling in prepartion to add NPI support (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Skip creation of the notification bitmaps (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix the partition ID check in ffa_notification_info_get() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Handle partitions setup failures (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Use xa_insert() and check for result (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Simplify ffa_partitions_cleanup() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Check xa_load() return value (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add missing rwlock_init() for the driver partition (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add missing rwlock_init() in ffa_setup_partitions() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix ffa_notification_info_get() IDs handling (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix the size of the allocation in ffa_partitions_cleanup() (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Fix FFA notifications cleanup path (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add checks for the notification enabled state (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Setup the partitions after the notification initialisation (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Allow FF-A initialisation even when notification fails (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Upgrade the driver version to v1.1 (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Update memory descriptor to support v1.1 format (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Switch to using ffa_mem_desc_offset() accessor (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Simplify the computation of transmit and fragment length (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add notification handling mechanism (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add interface to send a notification to a given partition (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add interfaces to request notification callbacks (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Add schedule receiver callback mechanism (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Initial support for scheduler receiver interrupt (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Implement the NOTIFICATION_INFO_GET interface (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Implement the FFA_NOTIFICATION_GET interface (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Implement the FFA_NOTIFICATION_SET interface (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Implement the FFA_RUN interface (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Implement the notification bind and unbind interface (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Implement notification bitmap create and destroy interfaces (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Update the FF-A command list with v1.1 additions (Marcin Juszkiewicz) [RHEL-102691] - firmware: arm_ffa: Emit modalias for FF-A devices (Marcin Juszkiewicz) [RHEL-102691] * Sat Aug 30 2025 CKI KWF Bot [5.14.0-612.el9] - redhat: bump RHEL_MINOR to 8 (Patrick Talbert) - x86/cpu: Add new Intel CPU model numbers for Wildcatlake and Novalake (David Arcari) [RHEL-95631] - x86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores (David Arcari) [RHEL-95631] - s390/pci: Fix __pcilg_mio_inuser() inline assembly (Mete Durlu) [RHEL-105605] - s390/pci: Do not try re-enabling load/store if device is disabled (Mete Durlu) [RHEL-105598] - s390/pci: Fix stale function handles in error handling (Mete Durlu) [RHEL-105598] - net/smc: Fix lookup of netdev by using ib_device_get_netdev() (Mete Durlu) [RHEL-102713] - ibmveth: Add multi buffers rx replenishment hcall support (Mamatha Inamdar) [RHEL-104667] - net: ibmveth: Reset the adapter when unexpected states are detected (Mamatha Inamdar) [RHEL-104667] - ibmvnic: Use ndo_get_stats64 to fix inaccurate SAR reporting (Mamatha Inamdar) [RHEL-104119] - ibmvnic: Fix hardcoded NUM_RX_STATS/NUM_TX_STATS with dynamic sizeof (Mamatha Inamdar) [RHEL-104119] - ibmvnic: Add stat for tx direct vs tx batched (Mamatha Inamdar) [RHEL-104119] - memory: tegra: Fix indentation (Marcin Juszkiewicz) [RHEL-26426] - memory: tegra: Add BPMP and ICC info for DLA clients (Marcin Juszkiewicz) [RHEL-26426] - memory: tegra: Correct DLA client names (Marcin Juszkiewicz) [RHEL-26426] - soc/tegra: pmc: Add SD wake event for Tegra234 (Marcin Juszkiewicz) [RHEL-26405] ### # The following Emacs magic makes C-c C-e use UTC dates. # Local Variables: # rpm-change-log-uses-utc: t # End: ###