# 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 frame pointers %undefine _include_frame_pointers # 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 # 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 # Add additional rhel certificates to system trusted keys. %global rhelkeys 1 # Compress modules only for architectures that build modules %ifarch noarch %global zipmodules 0 %else %global zipmodules 1 %endif # Default compression algorithm %global compression xz %global compression_flags --compress --check=crc32 --lzma2=dict=1MiB %global compext xz %if 0%{?fedora} %define primary_target fedora %else %define primary_target rhel %endif # # genspec.sh variables # # kernel package name %global package_name kernel %global gemini 0 # Include Fedora files %global include_fedora 0 # Include RHEL files %global include_rhel 1 # Include RT files %global include_rt 1 # Include Automotive files %global include_automotive 0 # Provide Patchlist.changelog file %global patchlist_changelog 0 # Set released_kernel to 1 when the upstream source tarball contains a # kernel release. (This includes prepatch or "rc" releases.) # Set released_kernel to 0 when the upstream source tarball contains an # unreleased kernel development snapshot. %global released_kernel 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 .0.rpi64 %define specrpmversion 6.12.0 %define specversion 6.12.0 %define patchversion 6.12 %define pkgrelease 126.0.rpi64 %define kversion 6 %define tarfile_release 6.12.0-126.0.rpi64.el10 # This is needed to do merge window version magic %define patchlevel 12 # This allows pkg_release to have configurable %%{?dist} tag %define specrelease 126%{?buildid}%{?dist} # This defines the kabi tarball version %define kabiversion 6.12.0-126.0.rpi64.el10 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error %define selftests_must_build 0 # # 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 (mostly) enabled by default, but may become # enabled/disabled by later architecture-specific checks. # Where disabled by default, they can be enabled by using --with in the # rpmbuild command, or by forcing these values to 1. # Where enabled by default, they can 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} # build the base variants %define with_base %{?_without_base: 0} %{?!_without_base: 1} # build also debug variants %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-16k (aarch64 kernel with 16K page_size) %define with_arm64_16k %{?_with_arm64_16k: 1} %{?!_with_arm64_16k: 0} # 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-automotive (x86_64 and aarch64 with PREEMPT_RT enabled - currently off by default) %define with_automotive %{?_with_automotive: 1} %{?!_with_automotive: 0} # Supported variants # with_base with_debug with_gcov # up X X X # zfcpdump X X # arm64_16k X X X # arm64_64k X X X # realtime X X X # automotive X X X # 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} # libperf %define with_libperf %{?_without_libperf: 0} %{?!_without_libperf: 1} # tools %define with_tools %{?_without_tools: 0} %{?!_without_tools: 1} # ynl %define with_ynl %{?_without_ynl: 0} %{?!_without_ynl: 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 debug variants (--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} # Only build the automotive variant of the kernel (--with automotiveonly): %define with_automotiveonly %{?_with_automotiveonly: 1} %{?!_with_automotiveonly: 0} # Build the automotive kernel (--with automotive_build), this builds base variant with automotive config/options: %define with_automotive_build %{?_with_automotive_build: 1} %{?!_with_automotive_build: 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} %ifarch x86_64 riscv64 %define with_efiuki %{?_without_efiuki: 0} %{?!_without_efiuki: 1} %else %define with_efiuki 0 %endif %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 %define with_arm64_64k 0 %define with_realtime 0 %define with_realtime_arm64_64k 0 %define with_automotive 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} # LLVM=1 enables use of all LLVM tools. %global clang_make_opts %{clang_make_opts} LLVM=1 %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 %{specversion}-%{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 # if requested, only build base kernel %if %{with_baseonly} %define with_debug 0 %define with_realtime 0 %define with_vdso_install 0 %define with_perf 0 %define with_libperf 0 %define with_tools 0 %define with_kernel_abi_stablelists 0 %define with_selftests 0 %endif # if requested, only build debug kernel %if %{with_dbgonly} %define with_base 0 %define with_vdso_install 0 %define with_perf 0 %define with_libperf 0 %define with_tools 0 %define with_kernel_abi_stablelists 0 %define with_selftests 0 %endif # if requested, only build realtime kernel %if %{with_rtonly} %define with_realtime 1 %define with_realtime_arm64_64k 1 %define with_automotive 0 %define with_up 0 %define with_debug 0 %define with_debuginfo 0 %define with_vdso_install 0 %define with_perf 0 %define with_libperf 0 %define with_tools 0 %define with_kernel_abi_stablelists 0 %define with_selftests 0 %define with_headers 0 %define with_efiuki 0 %define with_zfcpdump 0 %define with_arm64_16k 0 %define with_arm64_64k 0 %endif # if requested, only build the automotive variant of the kernel %if %{with_automotiveonly} %define with_automotive 1 %define with_realtime 0 %define with_up 0 %define with_debug 0 %define with_debuginfo 0 %define with_vdso_install 0 %define with_selftests 1 %endif # if requested, build kernel-automotive %if %{with_automotive_build} %define with_automotive 1 %define with_selftests 1 %endif # RT and Automotive kernels are only built on x86_64 and aarch64 %ifnarch x86_64 aarch64 %define with_realtime 0 %define with_automotive 0 %endif %if %{with_automotive} # overrides compression algorithms for automotive %global compression zstd %global compression_flags --rm %global compext zst # automotive does not support the following variants %define with_realtime 0 %define with_realtime_arm64_64k 0 %define with_arm64_16k 0 %define with_arm64_64k 0 %define with_efiuki 0 %define with_doc 0 %define with_headers 0 %define with_cross_headers 0 %define with_perf 0 %define with_libperf 0 %define with_tools 0 %define with_kabichk 0 %define with_kernel_abi_stablelists 0 %define with_kabidw_base 0 %define signkernel 0 %define signmodules 1 %define rhelkeys 0 %endif %if %{zipmodules} %global zipsed -e 's/\.ko$/\.ko.%compext/' # for parallel xz processes, replace with 1 to go back to single process %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 aarch64 and x86_64 %ifnarch aarch64 x86_64 %define with_debug 0 %endif %endif %define all_configs %{name}-%{specrpmversion}-*.config # don't build noarch kernels or headers (duh) %ifarch noarch %define with_up 0 %define with_realtime 0 %define with_automotive 0 %define with_headers 0 %define with_cross_headers 0 %define with_tools 0 %define with_perf 0 %define with_libperf 0 %define with_selftests 0 %define with_debug 0 %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 # 16k and 64k variants only for aarch64 %ifnarch aarch64 %define with_arm64_16k 0 %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 kernel_image arch/x86/boot/bzImage %endif %ifarch x86_64 %define asmarch x86 %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 %endif %ifarch s390x %define asmarch s390 %define hdrarch s390 %define kernel_image arch/s390/boot/bzImage %define vmlinux_decompressor arch/s390/boot/vmlinux %endif %ifarch aarch64 %define asmarch arm64 %define hdrarch arm64 %define make_target Image.gz %define kernel_image arch/arm64/boot/Image.gz %endif %ifarch riscv64 %define asmarch riscv %define hdrarch riscv %define make_target vmlinuz.efi %define kernel_image arch/riscv/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 %endif %ifarch %nobuildarches # disable BuildKernel commands %define with_up 0 %define with_debug 0 %define with_zfcpdump 0 %define with_arm64_16k 0 %define with_arm64_64k 0 %define with_realtime 0 %define with_realtime_arm64_64k 0 %define with_automotive 0 %define with_debuginfo 0 %define with_perf 0 %define with_libperf 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 aarch64 %else %define cpupowerarchs i686 x86_64 ppc64le aarch64 riscv64 %endif %if 0%{?use_vdso} %define _use_vdso 1 %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 # short-hand for "are we building base/non-debug variants of ...?" %if %{with_up} && %{with_base} %define with_up_base 1 %else %define with_up_base 0 %endif %if %{with_realtime} && %{with_base} %define with_realtime_base 1 %else %define with_realtime_base 0 %endif %if %{with_automotive} && %{with_base} && !%{with_automotive_build} %define with_automotive_base 1 %else %define with_automotive_base 0 %endif %if %{with_arm64_16k} && %{with_base} %define with_arm64_16k_base 1 %else %define with_arm64_16k_base 0 %endif %if %{with_arm64_64k} && %{with_base} %define with_arm64_64k_base 1 %else %define with_arm64_64k_base 0 %endif %if %{with_realtime_arm64_64k} && %{with_base} %define with_realtime_arm64_64k_base 1 %else %define with_realtime_arm64_64k_base 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: %{package_name} 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 0BSD AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0) AND BSD-3-Clause AND BSD-3-Clause-Clear AND CC0-1.0 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 Apache-2.0) 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: %{specrpmversion} 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 aarch64 ppc64le riscv64 %else ExclusiveArch: noarch i386 i686 x86_64 s390x aarch64 ppc64le riscv64 %endif ExclusiveOS: Linux %ifnarch %{nobuildarches} Requires: %{name}-core-uname-r = %{KVERREL} Requires: %{name}-modules-uname-r = %{KVERREL} Requires: %{name}-modules-core-uname-r = %{KVERREL} Requires: ((%{name}-modules-extra-uname-r = %{KVERREL}) if %{name}-modules-extra-matched) Provides: installonlypkg(kernel) %endif # # List the packages used during the kernel build # BuildRequires: kmod, bash, coreutils, tar, git-core, which BuildRequires: bzip2, xz, findutils, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk, %compression BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex, gcc-c++ %if 0%{?fedora} BuildRequires: rust, rust-src, bindgen %endif BuildRequires: net-tools, hostname, bc, elfutils-devel BuildRequires: dwarves BuildRequires: python3 BuildRequires: python3-devel BuildRequires: python3-pyyaml BuildRequires: kernel-rpm-macros # glibc-static is required for a consistent build environment (specifically # CONFIG_CC_CAN_LINK_STATIC=y). BuildRequires: glibc-static %if %{with_headers} || %{with_cross_headers} BuildRequires: rsync %endif %if %{with_doc} BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme %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: libbpf-devel >= 0.6.0-1 BuildRequires: libbabeltrace-devel BuildRequires: libtraceevent-devel %ifnarch s390x BuildRequires: numactl-devel %endif %ifarch aarch64 BuildRequires: opencsd-devel >= 1.0.0 %endif %endif %if %{with_tools} BuildRequires: python3-docutils 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} && %{with_ynl} BuildRequires: python3-pyyaml python3-jsonschema python3-pip python3-setuptools python3-wheel %endif BuildRequires: openssl-devel %if %{with_selftests} BuildRequires: clang llvm-devel fuse-devel zlib-devel binutils-devel python3-docutils python3-jsonschema %ifarch x86_64 riscv64 BuildRequires: lld %endif BuildRequires: libcap-devel libcap-ng-devel rsync libmnl-devel libxml2-devel BuildRequires: numactl-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 riscv64 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 %if 0%{?fedora} && 0%{?fedora} <= 41 # Work around find-debuginfo for cross builds. # find-debuginfo doesn't support any of CROSS options (RHEL-21797), # and since debugedit > 5.0-16.el10, or since commit # dfe1f7ff30f4 ("find-debuginfo.sh: Exit with real exit status in parallel jobs") # it now aborts on failure and build fails. # debugedit-5.1-5 in F42 added support to override tools with target versions. %undefine _include_gdb_index %endif %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 %{with_efiuki} BuildRequires: dracut >= 104 # For dracut UEFI uki binaries BuildRequires: binutils # For the initrd BuildRequires: lvm2 BuildRequires: systemd-boot-unsigned # For systemd-stub and systemd-pcrphase BuildRequires: systemd-udev >= 252-1 # For UKI kernel cmdline addons BuildRequires: systemd-ukify # For TPM operations in UKI initramfs BuildRequires: tpm2-tools # For UKI sb cert %if 0%{?rhel}%{?centos} && !0%{?eln} %if 0%{?centos} BuildRequires: centos-sb-certs >= 9.0-23 %else BuildRequires: redhat-sb-certs >= 9.4-0.1 %endif %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: %{package_name}.changelog Source10: redhatsecurebootca5.cer Source13: redhatsecureboot501.cer %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 # Fedora/ELN pesign macro expects to see these cert file names, see: # https://github.com/rhboot/pesign/blob/main/src/pesign-rpmbuild-helper.in#L216 %if 0%{?fedora}%{?eln} %define pesign_name_0 redhatsecureboot501 %define secureboot_ca_0 %{SOURCE10} %define secureboot_key_0 %{SOURCE13} %endif # RHEL/centos certs come from system-sb-certs %if 0%{?rhel} && !0%{?eln} %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 redhatsecureboot501 %endif %ifarch s390x %define pesign_name_0 redhatsecureboot302 %endif %ifarch ppc64le %define pesign_name_0 redhatsecureboot701 %endif %endif # rhel && !eln %endif # signkernel %endif Source20: mod-denylist.sh Source21: mod-sign.sh Source22: filtermods.py %define modsign_cmd %{SOURCE21} %if 0%{?include_rhel} Source24: %{name}-aarch64-rhel.config Source25: %{name}-aarch64-debug-rhel.config Source27: %{name}-ppc64le-rhel.config Source28: %{name}-ppc64le-debug-rhel.config Source29: %{name}-s390x-rhel.config Source30: %{name}-s390x-debug-rhel.config Source31: %{name}-s390x-zfcpdump-rhel.config Source32: %{name}-x86_64-rhel.config Source33: %{name}-x86_64-debug-rhel.config # ARM64 64K page-size kernel config Source42: %{name}-aarch64-64k-rhel.config Source43: %{name}-aarch64-64k-debug-rhel.config Source44: %{name}-riscv64-rhel.config Source45: %{name}-riscv64-debug-rhel.config # ARM64 16K page-size kernel config Source46: %{name}-aarch64-16k-rhel.config Source47: %{name}-aarch64-16k-debug-rhel.config %endif %if %{include_rhel} || %{include_automotive} Source23: x509.genkey.rhel Source34: def_variants.yaml.rhel Source41: x509.genkey.centos %endif %if 0%{?include_fedora} Source50: x509.genkey.fedora Source52: %{name}-aarch64-fedora.config Source53: %{name}-aarch64-debug-fedora.config Source54: %{name}-aarch64-16k-fedora.config Source55: %{name}-aarch64-16k-debug-fedora.config Source56: %{name}-ppc64le-fedora.config Source57: %{name}-ppc64le-debug-fedora.config Source58: %{name}-s390x-fedora.config Source59: %{name}-s390x-debug-fedora.config Source60: %{name}-x86_64-fedora.config Source61: %{name}-x86_64-debug-fedora.config Source700: %{name}-riscv64-fedora.config Source701: %{name}-riscv64-debug-fedora.config Source62: def_variants.yaml.fedora %endif Source70: partial-kgcov-snip.config Source71: partial-kgcov-debug-snip.config Source72: partial-clang-snip.config Source73: partial-clang-debug-snip.config Source74: partial-clang_lto-x86_64-snip.config Source75: partial-clang_lto-x86_64-debug-snip.config Source76: partial-clang_lto-aarch64-snip.config Source77: partial-clang_lto-aarch64-debug-snip.config Source80: generate_all_configs.sh Source81: process_configs.sh Source86: dracut-virt.conf Source87: flavors Source151: uki_create_addons.py Source152: uki_addons.json Source100: rheldup3.x509 Source101: rhelkpatch1.x509 Source102: nvidiagpuoot001.x509 Source103: rhelimaca1.x509 Source104: rhelima.x509 Source105: rhelima_centos.x509 Source106: fedoraimaca.x509 %if 0%{?fedora}%{?eln} %define ima_ca_cert %{SOURCE106} %endif %if 0%{?rhel} && !0%{?eln} %define ima_ca_cert %{SOURCE103} # rhel && !eln %endif %if 0%{?centos} %define ima_signing_cert %{SOURCE105} %else %define ima_signing_cert %{SOURCE104} %endif %define ima_cert_name ima.cer Source200: check-kabi Source201: Module.kabi_aarch64 Source202: Module.kabi_ppc64le Source203: Module.kabi_s390x Source204: Module.kabi_x86_64 Source205: Module.kabi_riscv64 Source210: Module.kabi_dup_aarch64 Source211: Module.kabi_dup_ppc64le Source212: Module.kabi_dup_s390x Source213: Module.kabi_dup_x86_64 Source214: Module.kabi_dup_riscv64 Source300: kernel-abi-stablelists-%{kabiversion}.tar.xz Source301: kernel-kabi-dw-%{kabiversion}.tar.xz %if 0%{include_rt} %if 0%{include_rhel} Source474: %{name}-aarch64-rt-rhel.config Source475: %{name}-aarch64-rt-debug-rhel.config Source476: %{name}-aarch64-rt-64k-rhel.config Source477: %{name}-aarch64-rt-64k-debug-rhel.config Source478: %{name}-x86_64-rt-rhel.config Source479: %{name}-x86_64-rt-debug-rhel.config %endif %if 0%{include_fedora} Source478: %{name}-aarch64-rt-fedora.config Source479: %{name}-aarch64-rt-debug-fedora.config Source480: %{name}-aarch64-rt-64k-fedora.config Source481: %{name}-aarch64-rt-64k-debug-fedora.config Source482: %{name}-x86_64-rt-fedora.config Source483: %{name}-x86_64-rt-debug-fedora.config Source484: %{name}-riscv64-rt-fedora.config Source485: %{name}-riscv64-rt-debug-fedora.config %endif %endif %if %{include_automotive} %if %{with_automotive_build} Source486: %{name}-aarch64-rhel.config Source487: %{name}-aarch64-debug-rhel.config Source488: %{name}-x86_64-rhel.config Source489: %{name}-x86_64-debug-rhel.config %else Source486: %{name}-aarch64-automotive-rhel.config Source487: %{name}-aarch64-automotive-debug-rhel.config Source488: %{name}-x86_64-automotive-rhel.config Source489: %{name}-x86_64-automotive-debug-rhel.config %endif %endif # Sources for kernel-tools 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.py 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 %{package_name} 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. # -o: Skips main "Provides" that would satisfy general kernel requirements that # special-purpose kernels shouldn't include. # For example, used for zfcpdump-core to *not* provide kernel-core. (BZ 2027654) # %define kernel_reqprovconf(o) \ %if %{-o:0}%{!-o:1}\ Provides: kernel = %{specversion}-%{pkg_release}\ Provides: %{name} = %{specversion}-%{pkg_release}\ %endif\ Provides: %{name}-%{_target_cpu} = %{specrpmversion}-%{pkg_release}%{uname_suffix %{?1}}\ Provides: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?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. %if %{with_headers} %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 %if 0%{?gemini} Provides: %{name}-headers = %{specversion}-%{release} Obsoletes: kernel-headers < %{specversion} %endif %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. %endif %if %{with_cross_headers} %package cross-headers Summary: Header files for the Linux kernel for use by cross-glibc %if 0%{?gemini} Provides: %{name}-cross-headers = %{specversion}-%{release} Obsoletes: kernel-cross-headers < %{specversion} %endif %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. %endif %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 %if 0%{gemini} Epoch: %{gemini} %endif 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 %if 0%{gemini} Epoch: %{gemini} %endif Summary: Debug information for package perf Requires: %{name}-debuginfo-common-%{_target_cpu} = %{specrpmversion}-%{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 %if 0%{gemini} Epoch: %{gemini} %endif 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 %if 0%{gemini} Epoch: %{gemini} %endif Summary: Debug information for package perf python bindings Requires: %{name}-debuginfo-common-%{_target_cpu} = %{specrpmversion}-%{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} # with_perf %endif %if %{with_libperf} %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_libperf %endif %if %{with_tools} %package -n %{package_name}-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: %{package_name}-tools-libs = %{specrpmversion}-%{release} %endif %define __requires_exclude ^%{_bindir}/python %description -n %{package_name}-tools This package contains the tools/ directory from the kernel source and the supporting documentation. %package -n %{package_name}-tools-libs Summary: Libraries for the kernels-tools %description -n %{package_name}-tools-libs This package contains the libraries built from the tools/ directory from the kernel source. %package -n %{package_name}-tools-libs-devel Summary: Assortment of tools for the Linux kernel Requires: %{package_name}-tools = %{version}-%{release} %ifarch %{cpupowerarchs} Provides: cpupowerutils-devel = 1:009-0.6.p1 Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 %endif Requires: %{package_name}-tools-libs = %{version}-%{release} Provides: %{package_name}-tools-devel %description -n %{package_name}-tools-libs-devel This package contains the development files for the tools/ directory from the kernel source. %package -n %{package_name}-tools-debuginfo Summary: Debug information for package %{package_name}-tools Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release} AutoReqProv: no %description -n %{package_name}-tools-debuginfo This package provides debug information for package %{package_name}-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 %{package_name}-tools-debuginfo.list} %package -n rtla %if 0%{gemini} Epoch: %{gemini} %endif Summary: Real-Time Linux Analysis tools Requires: libtraceevent Requires: libtracefs Requires: libbpf %ifarch %{cpupowerarchs} Requires: %{package_name}-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} %if %{with_kernel_abi_stablelists} %package -n %{package_name}-abi-stablelists Summary: The Red Hat Enterprise Linux kernel ABI symbol stablelists AutoReqProv: no %description -n %{package_name}-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. %endif %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, # rt, 64k 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} = %{specrpmversion}-%{release}\ Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{specrpmversion}-%{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: %{name}%{?1:-%{1}}-devel-%{_target_cpu} = %{specrpmversion}-%{release}\ Provides: %{name}-devel-%{_target_cpu} = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: kernel-devel-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Provides: %{name}-devel-uname-r = %{KVERREL}%{uname_suffix %{?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: %{name}-devel-uname-r = %{KVERREL}%{uname_variant %{?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: %{package_name}%{?1:-%{1}}-devel = %{specrpmversion}-%{release}\ Requires: %{package_name}%{?1:-%{1}}-core = %{specrpmversion}-%{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} %define kernel_modules_extra_matched_package(m) \ %package modules-extra-matched\ Summary: Meta package which requires modules-extra to be installed for all kernels.\ %description modules-extra-matched\ This meta package provides a single reference that other packages can Require to have modules-extra installed for all kernels.\ %{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: %{name}%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{specrpmversion}-%{release}\ Provides: %{name}%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: %{name}%{?1:-%{1}}-modules-internal = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: installonlypkg(kernel-module)\ Provides: %{name}%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?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: %{name}%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{specrpmversion}-%{release}\ Provides: %{name}%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: %{name}%{?1:-%{1}}-modules-extra = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: installonlypkg(kernel-module)\ Provides: %{name}%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ %if %{-m:1}%{!-m:0}\ Requires: %{name}-modules-extra-uname-r = %{KVERREL}%{uname_variant %{?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: %{name}%{?1:-%{1}}-modules-%{_target_cpu} = %{specrpmversion}-%{release}\ Provides: %{name}-modules-%{_target_cpu} = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: %{name}-modules = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: installonlypkg(kernel-module)\ Provides: %{name}%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ %if %{-m:1}%{!-m:0}\ Requires: %{name}-modules-uname-r = %{KVERREL}%{uname_variant %{?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: %{name}%{?1:-%{1}}-modules-core-%{_target_cpu} = %{specrpmversion}-%{release}\ Provides: %{name}-modules-core-%{_target_cpu} = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: %{name}-modules-core = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: installonlypkg(kernel-module)\ Provides: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ %if %{-m:1}%{!-m:0}\ Requires: %{name}-modules-core-uname-r = %{KVERREL}%{uname_variant %{?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: %{name}-%{1}-core-uname-r = %{KVERREL}%{uname_suffix %{1}}\ Requires: %{name}-%{1}-modules-uname-r = %{KVERREL}%{uname_suffix %{1}}\ Requires: %{name}-%{1}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{1}}\ Requires: ((%{name}-%{1}-modules-extra-uname-r = %{KVERREL}%{uname_suffix %{1}}) if %{name}-modules-extra-matched)\ %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] # -m: Used with debugbuildsenabled==0 to create a "meta" debug variant that # depends on base variant and skips debug/internal/partner packages. # -o: Skips main "Provides" that would satisfy general kernel requirements that # special-purpose kernels shouldn't include. # %define kernel_variant_package(n:mo) \ %package %{?1:%{1}-}core\ Summary: %{variant_summary}\ Provides: %{name}-%{?1:%{1}-}core-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Provides: installonlypkg(kernel)\ %if %{-m:1}%{!-m:0}\ Requires: %{name}-core-uname-r = %{KVERREL}%{uname_variant %{?1}}\ Requires: %{name}-%{?1:%{1}-}-modules-core-uname-r = %{KVERREL}%{uname_variant %{?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 %{with_efiuki} && ("%{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: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires(pre): %{kernel_prereq}\ Requires(pre): systemd >= 254-1\ %package %{?1:%{1}-}uki-virt-addons\ Summary: %{variant_summary} unified kernel image addons for virtual machines\ Provides: installonlypkg(kernel)\ Requires: %{name}%{?1:-%{1}}-uki-virt = %{specrpmversion}-%{release}\ Requires(pre): systemd >= 254-1\ %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: %{name}%{?1:-%{1}}-modules-partner-%{_target_cpu} = %{specrpmversion}-%{release}\ Provides: %{name}%{?1:-%{1}}-modules-partner-%{_target_cpu} = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: %{name}%{?1:-%{1}}-modules-partner = %{specrpmversion}-%{release}%{uname_suffix %{?1}}\ Provides: installonlypkg(kernel-module)\ Provides: %{name}%{?1:-%{1}}-modules-partner-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1}}\ Requires: %{name}%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?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_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_16k_base} %define variant_summary The Linux kernel compiled for 16k pagesize usage %kernel_variant_package 16k %description 16k-core The kernel package contains a variant of the ARM64 Linux kernel using a 16K page size. %endif %if %{with_arm64_16k} && %{with_debug} %define variant_summary The Linux kernel compiled with extra debugging enabled %if !%{debugbuildsenabled} %kernel_variant_package -m 16k-debug %else %kernel_variant_package 16k-debug %endif %description 16k-debug-core The debug kernel package contains a variant of the ARM64 Linux kernel using a 16K 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_arm64_64k_base} %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_debug} && %{with_realtime} %define variant_summary The Linux PREEMPT_RT kernel compiled with extra debugging enabled %kernel_variant_package rt-debug %description rt-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. %endif %if %{with_realtime_base} %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 the PREEMPT_RT real-time preemption support %endif %if %{with_realtime_arm64_64k_base} %define variant_summary The Linux PREEMPT_RT kernel compiled for 64k pagesize usage %kernel_variant_package rt-64k %description rt-64k-core The kernel package contains a variant of the ARM64 Linux PREEMPT_RT kernel 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 %{with_debug} && %{with_automotive} && !%{with_automotive_build} %define variant_summary The Linux Automotive kernel compiled with extra debugging enabled %kernel_variant_package automotive-debug %description automotive-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. %endif %if %{with_automotive_base} %define variant_summary The Linux kernel compiled with PREEMPT_RT enabled %kernel_variant_package automotive %description automotive-core This package includes a version of the Linux kernel compiled with the PREEMPT_RT real-time preemption support, targeted for Automotive platforms %endif %if %{with_up} && %{with_debug} %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. %endif %if %{with_up_base} # 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. %endif %if %{with_up} && %{with_debug} && %{with_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. %endif %if %{with_up_base} && %{with_efiuki} %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 %if %{with_arm64_16k} && %{with_debug} && %{with_efiuki} %description 16k-debug-uki-virt Prebuilt 16k debug unified kernel image for virtual machines. %description 16k-debug-uki-virt-addons Prebuilt 16k debug unified kernel image addons for virtual machines. %endif %if %{with_arm64_16k_base} && %{with_efiuki} %description 16k-uki-virt Prebuilt 16k unified kernel image for virtual machines. %description 16k-uki-virt-addons Prebuilt 16k unified kernel image addons for virtual machines. %endif %if %{with_arm64_64k} && %{with_debug} && %{with_efiuki} %description 64k-debug-uki-virt Prebuilt 64k debug unified kernel image for virtual machines. %description 64k-debug-uki-virt-addons Prebuilt 64k debug unified kernel image addons for virtual machines. %endif %if %{with_arm64_64k_base} && %{with_efiuki} %description 64k-uki-virt Prebuilt 64k unified kernel image for virtual machines. %description 64k-uki-virt-addons Prebuilt 64k unified kernel image addons for virtual machines. %endif %ifnarch noarch %{nobuildarches} %kernel_modules_extra_matched_package %endif %define log_msg() \ { set +x; } 2>/dev/null \ _log_msglineno=$(grep -n %{*} %{_specdir}/${RPM_PACKAGE_NAME}.spec | grep log_msg | cut -d":" -f1) \ echo "kernel.spec:${_log_msglineno}: %{*}" \ set -x %prep %{log_msg "Start of prep stage"} %{log_msg "Sanity checks"} # do a few sanity-checks for --with *only builds %if %{with_baseonly} %if !%{with_up} %{log_msg "Cannot build --with baseonly, up build is disabled"} exit 1 %endif %endif %if %{with_automotive} %if 0%{?fedora} %{log_msg "Cannot build automotive with a fedora baseline, must be rhel/centos/eln"} exit 1 %endif %endif # more sanity checking; do it quietly if [ "%{patches}" != "%%{patches}" ] ; then for patch in %{patches} ; do if [ ! -f $patch ] ; then %{log_msg "ERROR: Patch ${patch##/*/} listed in specfile but is missing"} exit 1 fi done fi 2>/dev/null patch_command='git --work-tree=. 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 %{log_msg "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 %{log_msg "ApplyOptionalPatch: $1"} 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 } %{log_msg "Untar kernel tarball"} %setup -q -n kernel-%{tarfile_release} -c mv linux-%{tarfile_release} linux-%{KVERREL} cd linux-%{KVERREL} cp -a %{SOURCE1} . %{log_msg "Start of patch applications"} %if !%{nopatches} ApplyOptionalPatch patch-%{patchversion}-redhat.patch %endif ApplyOptionalPatch linux-kernel-test.patch %{log_msg "End of patch applications"} # END OF PATCH APPLICATIONS # Any further pre-build tree manipulations happen here. %{log_msg "Pre-build tree manipulations"} chmod +x scripts/checkpatch.pl mv COPYING COPYING-%{specrpmversion}-%{release} # on linux-next prevent scripts/setlocalversion from mucking with our version numbers rm -f localversion-next localversion-rt # 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. %{log_msg "Fixing Python shebangs..."} %py3_shebang_fix \ tools/kvm/kvm_stat/kvm_stat \ scripts/show_delta \ scripts/diffconfig \ scripts/bloat-o-meter \ scripts/jobserver-exec \ tools \ Documentation \ scripts/clang-tools 2> /dev/null # 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 %{log_msg "Copy additional source files into buildroot"} # Drop some necessary files from the source dir into the buildroot cp $RPM_SOURCE_DIR/%{name}-*.config . cp %{SOURCE80} . # merge.py cp %{SOURCE3000} . # kernel-local - rename and copy for partial snippet config process cp %{SOURCE3001} partial-kernel-local-snip.config cp %{SOURCE3001} partial-kernel-local-debug-snip.config FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} SPECVERSION=%{specversion} SPECRPMVERSION=%{specrpmversion} ./generate_all_configs.sh %{debugbuildsenabled} # Collect custom defined config options %{log_msg "Collect custom defined config options"} PARTIAL_CONFIGS="" %if %{with_gcov} PARTIAL_CONFIGS="$PARTIAL_CONFIGS %{SOURCE70} %{SOURCE71}" %endif %if %{with toolchain_clang} PARTIAL_CONFIGS="$PARTIAL_CONFIGS %{SOURCE72} %{SOURCE73}" %endif %if %{with clang_lto} PARTIAL_CONFIGS="$PARTIAL_CONFIGS %{SOURCE74} %{SOURCE75} %{SOURCE76} %{SOURCE77}" %endif PARTIAL_CONFIGS="$PARTIAL_CONFIGS partial-kernel-local-snip.config partial-kernel-local-debug-snip.config" GetArch() { case "$1" in *aarch64*) echo "aarch64" ;; *ppc64le*) echo "ppc64le" ;; *s390x*) echo "s390x" ;; *x86_64*) echo "x86_64" ;; *riscv64*) echo "riscv64" ;; # no arch, apply everywhere *) echo "" ;; esac } # Merge in any user-provided local config option changes %{log_msg "Merge in any user-provided local config option changes"} %ifnarch %nobuildarches for i in %{all_configs} do kern_arch="$(GetArch $i)" kern_debug="$(echo $i | grep -q debug && echo "debug" || echo "")" for j in $PARTIAL_CONFIGS do part_arch="$(GetArch $j)" part_debug="$(echo $j | grep -q debug && echo "debug" || echo "")" # empty arch means apply to all arches if [ "$part_arch" == "" -o "$part_arch" == "$kern_arch" ] && [ "$part_debug" == "$kern_debug" ] then mv $i $i.tmp ./merge.py $j $i.tmp > $i fi done rm -f $i.tmp done %endif %if %{signkernel}%{signmodules} # Add DUP and kpatch certificates to system trusted keys for RHEL truncate -s0 ../certs/rhel.pem %if 0%{?rhel} %if %{rhelkeys} %{log_msg "Add DUP and kpatch certificates to system trusted keys for RHEL"} 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 nvidiagpuoot001.pem cat rheldup3.pem rhelkpatch1.pem nvidiagpuoot001.pem >> ../certs/rhel.pem # rhelkeys %endif %if %{signkernel} %ifarch s390x ppc64le openssl x509 -inform der -in %{secureboot_ca_0} -out secureboot.pem cat secureboot.pem >> ../certs/rhel.pem %endif %endif # rhel %endif openssl x509 -inform der -in %{ima_ca_cert} -out imaca.pem cat imaca.pem >> ../certs/rhel.pem for i in *.config; do sed -i 's@CONFIG_SYSTEM_TRUSTED_KEYS=""@CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"@' $i done %endif # Adjust FIPS module name for RHEL %if 0%{?rhel} %{log_msg "Adjust FIPS module name for 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 %{log_msg "Set process_configs.sh $OPTS"} 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 %{log_msg "Generate redhat configs"} RHJOBS=$RPM_BUILD_NCPUS SPECPACKAGE_NAME=%{name} ./process_configs.sh $OPTS %{specrpmversion} # 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 update_scripts() { TARGET="$1" for i in "$RPM_SOURCE_DIR"/*."$TARGET"; do NEW=${i%."$TARGET"} cp "$i" "$(basename "$NEW")" done } %{log_msg "Set scripts/SOURCES targets"} update_target=%{primary_target} if [ "%{primary_target}" == "rhel" ]; then : # no-op to avoid empty if-fi error %if 0%{?centos} update_scripts $update_target %{log_msg "Updating scripts/sources to centos version"} update_target=centos %endif fi update_scripts $update_target %endif %{log_msg "End of kernel config"} 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 %{log_msg "Start of build stage"} %{log_msg "General arch build configuration"} 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() { %{log_msg "InitBuildVars for $1"} %{log_msg "InitBuildVars: Initialize build variables"} # 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=%{name}-%{specrpmversion}-%{_target_cpu}${Variant:+-${Variant}}.config DevelDir=/usr/src/kernels/%{KVERREL}${Variant:++${Variant}} KernelVer=%{specversion}-%{release}.%{_target_cpu}${Variant:++${Variant}} %{log_msg "InitBuildVars: Update Makefile"} # 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 %{log_msg "InitBuildVars: Copy files"} %{make} %{?_smp_mflags} mrproper cp configs/$Config .config %if %{signkernel}%{signmodules} cp configs/x509.genkey certs/. %endif %if %{with_debuginfo} == 0 sed -i 's/^\(CONFIG_DEBUG_INFO.*\)=y/# \1 is not set/' .config %endif Arch=`head -1 .config | cut -b 3-` %{log_msg "InitBuildVars: USING ARCH=$Arch"} KCFLAGS="%{?kcflags}" } #Build bootstrap bpftool BuildBpftool(){ export BPFBOOTSTRAP_CFLAGS=$(echo "%{__global_compiler_flags}" | sed -r "s/\-specs=[^\ ]+\/redhat-annobin-cc1//") export BPFBOOTSTRAP_LDFLAGS=$(echo "%{__global_ldflags}" | sed -r "s/\-specs=[^\ ]+\/redhat-annobin-cc1//") CFLAGS="" LDFLAGS="" make EXTRA_CFLAGS="${BPFBOOTSTRAP_CFLAGS}" EXTRA_CXXFLAGS="${BPFBOOTSTRAP_CFLAGS}" EXTRA_LDFLAGS="${BPFBOOTSTRAP_LDFLAGS}" %{?make_opts} %{?clang_make_opts} V=1 -C tools/bpf/bpftool bootstrap } BuildKernel() { %{log_msg "BuildKernel for $4"} MakeTarget=$1 KernelImage=$2 DoVDSO=$3 Variant=$4 InstallName=${5:-vmlinuz} %{log_msg "Setup variables"} 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} %{log_msg "Setup build directories"} # 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 %{log_msg "GCOV - continuing build in: $(pwd)"} pushd ../linux-%{KVERREL}${Variant:+-${Variant}} pwd > ../kernel${Variant:+-${Variant}}-gcov.list %endif %{log_msg "Calling InitBuildVars for $Variant"} InitBuildVars $Variant %{log_msg "BUILDING A KERNEL FOR ${Variant} %{_target_cpu}..."} %{make} ARCH=$Arch olddefconfig >/dev/null %{log_msg "Setup build-ids"} # 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 %{log_msg "Setup RPM_BUILD_ROOT directories"} 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 aarch64 riscv64 %{log_msg "Build dtb kernel"} mkdir -p $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer %{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 -f arch/arm64/boot/dts/overlays/README $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer/overlays/ 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 %{log_msg "Cleanup temp btf files"} # Remove large intermediate files we no longer need to save space # (-f required for zfcpdump builds that do not enable BTF) rm -f vmlinux.o .tmp_vmlinux.btf %{log_msg "Install files to RPM_BUILD_ROOT"} # Comment out specific config settings that may use resources not available # to the end user so that the packaged config file can be easily reused with # upstream make targets %if %{signkernel}%{signmodules} sed -i -e '/^CONFIG_SYSTEM_TRUSTED_KEYS/{ i\# The kernel was built with s/^/# / a\# We are resetting this value to facilitate local builds a\CONFIG_SYSTEM_TRUSTED_KEYS="" }' .config %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 %{log_msg "Create initrfamfs"} # 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 %{log_msg "Copy zImage.stub to RPM_BUILD_ROOT"} 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} %{log_msg "Copy kernel for signing"} 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 %{log_msg "Sign kernel image"} %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 %{log_msg "pesigning failed"} exit 1 fi mv vmlinuz.signed $SignImage if [ "$KernelExtension" == "gz" ]; then gzip -f9 $SignImage fi # signkernel %endif %{log_msg "copy signed kernel"} $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 %{log_msg "hmac sign the kernel for FIPS"} %{log_msg "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 %{log_msg "Install modules in RPM_BUILD_ROOT"} # 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} %{log_msg "install gcov-needed files to $BUILDROOT/$BUILD/"} # 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 %{log_msg "Add VDSO files"} # 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 %{log_msg "Save headers/makefiles, etc. for kernel-headers"} # 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 %{log_msg "GENERATING kernel ABI metadata"} %compression --stdout %compression_flags < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.%compext cp $RPM_BUILD_ROOT/boot/symvers-$KernelVer.%compext $RPM_BUILD_ROOT/lib/modules/$KernelVer/symvers.%compext %if %{with_kabichk} %{log_msg "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 %{log_msg "NOTE: Cannot find reference Module.kabi file."} fi %endif %if %{with_kabidupchk} %{log_msg "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 %{log_msg "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 -xvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/stablelists tar -xvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists %{log_msg "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 -xvf %{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 -xvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/stablelists %{log_msg "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" || : %{log_msg "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" || : %{log_msg "End of kABI DWARF-based comparison report"} else %{log_msg "Baseline dataset for kABI DWARF-BASED comparison report not found"} fi rm -rf $RPM_BUILD_ROOT/kabi-dwarf fi %endif %{log_msg "Cleanup Makefiles/Kconfig files"} # 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. %{log_msg "Copy expoline.o"} 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 %{log_msg "Copy additional files for make targets"} # 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 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 %{log_msg "Clean up intermediate tools files"} # 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 %{log_msg "Copy additional files for kernel-debuginfo rpm"} # # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm # (use mv + symlink instead of cp to reduce disk space requirements) # mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer mv vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer ln -s $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer/vmlinux vmlinux 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 # build and copy the vmlinux-gdb plugin files into kernel-debuginfo %{make} ARCH=$Arch %{?_smp_mflags} scripts_gdb cp -a --parents scripts/gdb/{,linux/}*.py $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer # this should be a relative symlink (Kbuild creates an absolute one) ln -s scripts/gdb/vmlinux-gdb.py $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer/vmlinux-gdb.py %py_byte_compile %{python3} $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer/scripts/gdb %endif %{log_msg "Create modnames"} 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. %{log_msg "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' %{log_msg "detect missing or incorrect license tags"} # 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 if [ $DoModules -eq 0 ]; then %{log_msg "Create empty files for RPM packaging"} # Ensure important files/directories exist to let the packaging succeed echo '%%defattr(-,-,-)' > ../kernel${Variant:+-${Variant}}-modules-core.list echo '%%defattr(-,-,-)' > ../kernel${Variant:+-${Variant}}-modules.list echo '%%defattr(-,-,-)' > ../kernel${Variant:+-${Variant}}-modules-extra.list echo '%%defattr(-,-,-)' > ../kernel${Variant:+-${Variant}}-modules-internal.list echo '%%defattr(-,-,-)' > ../kernel${Variant:+-${Variant}}-modules-partner.list mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/kernel # Add files usually created by make modules, needed to prevent errors # thrown by depmod during package installation touch $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.order touch $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.builtin fi # Copy the System.map file for depmod to use cp System.map $RPM_BUILD_ROOT/. if [[ "$Variant" == "rt" || "$Variant" == "rt-debug" || "$Variant" == "rt-64k" || "$Variant" == "rt-64k-debug" || "$Variant" == "automotive" || "$Variant" == "automotive-debug" ]]; then %{log_msg "Skipping efiuki build"} else %if %{with_efiuki} %{log_msg "Setup the EFI UKI kernel"} # 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=%{SOURCE86} \ --confdir=$(mktemp -d) \ --verbose \ --kver "$KernelVer" \ --kmoddir "$RPM_BUILD_ROOT/lib/modules/$KernelVer/" \ --logfile=$(mktemp) \ --uefi \ %if 0%{?rhel} && !0%{?eln} --sbat "$SBAT" \ %endif --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} %{log_msg "Sign the EFI UKI kernel"} %if 0%{?fedora}%{?eln} %pesign -s -i $KernelUnifiedImage -o $KernelUnifiedImage.signed -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0} %else %if 0%{?centos} UKI_secureboot_name=centossecureboot204 %else UKI_secureboot_name=redhatsecureboot504 %endif UKI_secureboot_cert=%{_datadir}/pki/sb-certs/secureboot-uki-virt-%{_arch}.cer %pesign -s -i $KernelUnifiedImage -o $KernelUnifiedImage.signed -a %{secureboot_ca_0} -c $UKI_secureboot_cert -n $UKI_secureboot_name # 0%{?fedora}%{?eln} %endif 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 # signkernel %endif # hmac sign the UKI for FIPS KernelUnifiedImageHMAC="$KernelUnifiedImageDir/.$InstallName-virt.efi.hmac" %{log_msg "hmac sign the UKI for FIPS"} %{log_msg "Creating hmac file: $KernelUnifiedImageHMAC"} (cd $KernelUnifiedImageDir && sha512hmac $InstallName-virt.efi) > $KernelUnifiedImageHMAC; # with_efiuki %endif : # in case of empty block fi # "$Variant" == "rt" || "$Variant" == "rt-debug" || "$Variant" == "automotive" || "$Variant" == "automotive-debug" # # Generate the modules files lists # move_kmod_list() { local module_list="$1" local subdir_name="$2" mkdir -p "$RPM_BUILD_ROOT/lib/modules/$KernelVer/$subdir_name" set +x while read -r kmod; do local target_file="$RPM_BUILD_ROOT/lib/modules/$KernelVer/$subdir_name/$kmod" local target_dir="${target_file%/*}" mkdir -p "$target_dir" mv "$RPM_BUILD_ROOT/lib/modules/$KernelVer/kernel/$kmod" "$target_dir" done < <(sed -e 's|^kernel/||' "$module_list") set -x } create_module_file_list() { # subdirectory within /lib/modules/$KernelVer where kmods should go local module_subdir="$1" # kmod list with relative paths produced by filtermods.py local relative_kmod_list="$2" # list with absolute paths to kmods and other files to be included local absolute_file_list="$3" # if 1, this adds also all kmod directories to absolute_file_list local add_all_dirs="$4" local run_mod_deny="$5" if [ "$module_subdir" != "kernel" ]; then # move kmods into subdirs if needed (internal, partner, extra,..) move_kmod_list $relative_kmod_list $module_subdir fi # make kmod paths absolute sed -e 's|^kernel/|/lib/modules/'$KernelVer'/'$module_subdir'/|' $relative_kmod_list > $absolute_file_list if [ "$run_mod_deny" -eq 1 ]; then # run deny-mod script, this adds blacklist-* files to absolute_file_list %{SOURCE20} "$RPM_BUILD_ROOT" lib/modules/$KernelVer $absolute_file_list fi %if %{zipmodules} # deny-mod script works with kmods as they are now (not compressed), # but if they will be we need to add compext to all sed -i %{?zipsed} $absolute_file_list %endif # add also dir for the case when there are no kmods # "kernel" subdir is covered in %files section, skip it here if [ "$module_subdir" != "kernel" ]; then echo "%dir /lib/modules/$KernelVer/$module_subdir" >> $absolute_file_list fi if [ "$add_all_dirs" -eq 1 ]; then (cd $RPM_BUILD_ROOT; find lib/modules/$KernelVer/kernel -mindepth 1 -type d | sort -n) > ../module-dirs.list sed -e 's|^lib|%dir /lib|' ../module-dirs.list >> $absolute_file_list fi } if [ $DoModules -eq 1 ]; then # save modules.dep for debugging cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.dep ../ %{log_msg "Create module list files for all kernel variants"} variants_param="" if [[ "$Variant" == "rt" || "$Variant" == "rt-debug" ]]; then variants_param="-r rt" fi if [[ "$Variant" == "rt-64k" || "$Variant" == "rt-64k-debug" ]]; then variants_param="-r rt-64k" fi if [[ "$Variant" == "automotive" || "$Variant" == "automotive-debug" ]]; then variants_param="-r automotive" fi # this creates ../modules-*.list output, where each kmod path is as it # appears in modules.dep (relative to lib/modules/$KernelVer) ret=0 %{SOURCE22} -l "../filtermods-$KernelVer.log" sort -d $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.dep -c configs/def_variants.yaml $variants_param -o .. || ret=$? if [ $ret -ne 0 ]; then echo "8< --- filtermods-$KernelVer.log ---" cat "../filtermods-$KernelVer.log" echo "--- filtermods-$KernelVer.log --- >8" echo "8< --- modules.dep ---" cat $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.dep echo "--- modules.dep --- >8" exit 1 fi create_module_file_list "kernel" ../modules-core.list ../kernel${Variant:+-${Variant}}-modules-core.list 1 0 create_module_file_list "kernel" ../modules.list ../kernel${Variant:+-${Variant}}-modules.list 0 0 create_module_file_list "internal" ../modules-internal.list ../kernel${Variant:+-${Variant}}-modules-internal.list 0 1 create_module_file_list "kernel" ../modules-extra.list ../kernel${Variant:+-${Variant}}-modules-extra.list 0 1 %if 0%{!?fedora:1} create_module_file_list "partner" ../modules-partner.list ../kernel${Variant:+-${Variant}}-modules-partner.list 1 1 %endif fi # $DoModules -eq 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,weakdep} popd } # Cleanup %{log_msg "Cleanup build files"} rm -f $RPM_BUILD_ROOT/System.map %{log_msg "Remove depmod files"} remove_depmod_files %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 %{log_msg "Move the devel headers to RPM_BUILD_ROOT"} 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 %if %{with_debuginfo} # Generate vmlinux.h and put it to kernel-devel path # zfcpdump build does not have btf anymore if [ "$Variant" != "zfcpdump" ]; then %{log_msg "Build the bootstrap bpftool to generate vmlinux.h"} # Build the bootstrap bpftool to generate vmlinux.h BuildBpftool tools/bpf/bpftool/bootstrap/bpftool btf dump file vmlinux format c > $RPM_BUILD_ROOT/$DevelDir/vmlinux.h fi %endif %{log_msg "Cleanup kernel-devel and kernel-debuginfo files"} # prune junk from kernel-devel find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete # prune junk from kernel-debuginfo find $RPM_BUILD_ROOT/usr/src/kernels -name "*.mod.c" -delete # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel %{log_msg "Install certs"} 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} %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 %if %{with_automotive} && !%{with_automotive_build} BuildKernel %make_target %kernel_image %{_use_vdso} automotive-debug %endif %if %{with_arm64_16k} BuildKernel %make_target %kernel_image %{_use_vdso} 16k-debug %endif %if %{with_arm64_64k} BuildKernel %make_target %kernel_image %{_use_vdso} 64k-debug %endif %if %{with_up} BuildKernel %make_target %kernel_image %{_use_vdso} debug %endif %endif %if %{with_zfcpdump} BuildKernel %make_target %kernel_image %{_use_vdso} zfcpdump %endif %if %{with_arm64_16k_base} BuildKernel %make_target %kernel_image %{_use_vdso} 16k %endif %if %{with_arm64_64k_base} BuildKernel %make_target %kernel_image %{_use_vdso} 64k %endif %if %{with_realtime_base} BuildKernel %make_target %kernel_image %{_use_vdso} rt %endif %if %{with_realtime_arm64_64k_base} BuildKernel %make_target %kernel_image %{_use_vdso} rt-64k %endif %if %{with_automotive_base} BuildKernel %make_target %kernel_image %{_use_vdso} automotive %endif %if %{with_up_base} BuildKernel %make_target %kernel_image %{_use_vdso} %endif %ifnarch noarch i686 %{nobuildarches} %if !%{with_debug} && !%{with_zfcpdump} && !%{with_up} && !%{with_arm64_16k} && !%{with_arm64_64k} && !%{with_realtime} && !%{with_realtime_arm64_64k} && !%{with_automotive} # If only building the user space tools, then initialize the build environment # and some variables so that the various userspace tools can be built. %{log_msg "Initialize userspace tools build environment"} InitBuildVars # Some tests build also modules, and need Module.symvers if ! [[ -e Module.symvers ]] && [[ -f $DevelDir/Module.symvers ]]; then %{log_msg "Found Module.symvers in DevelDir, copying to ."} cp "$DevelDir/Module.symvers" . fi %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 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 LIBBPF_DYNAMIC=1 LIBTRACEEVENT_DYNAMIC=1 %{?perf_build_extra_opts} prefix=%{_prefix} PYTHON=%{__python3} %if %{with_perf} %{log_msg "Build perf"} # perf # make sure check-headers.sh is executable chmod +x tools/perf/check-headers.sh %{perf_make} DESTDIR=$RPM_BUILD_ROOT all %endif %if %{with_libperf} %global libperf_make \ %{__make} %{?make_opts} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" %{?cross_opts} -C tools/lib/perf V=1 %{log_msg "build libperf"} %{libperf_make} DESTDIR=$RPM_BUILD_ROOT %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} %if %{with_ynl} pushd tools/net/ynl export PIP_CONFIG_FILE=/tmp/pip.config cat < $PIP_CONFIG_FILE [install] no-index = true no-build-isolation = false EOF %{tools_make} %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT install popd %endif %ifarch %{cpupowerarchs} # cpupower # make sure version-gen.sh is executable. chmod +x tools/power/cpupower/utils/version-gen.sh %{log_msg "build cpupower"} %{tools_make} %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false DEBUG=false %ifarch x86_64 pushd tools/power/cpupower/debug/x86_64 %{log_msg "build centrino-decode powernow-k8-decode"} %{tools_make} %{?_smp_mflags} centrino-decode powernow-k8-decode popd %endif %ifarch x86_64 pushd tools/power/x86/x86_energy_perf_policy/ %{log_msg "build x86_energy_perf_policy"} %{tools_make} popd pushd tools/power/x86/turbostat %{log_msg "build turbostat"} %{tools_make} popd pushd tools/power/x86/intel-speed-select %{log_msg "build intel-speed-select"} %{tools_make} popd pushd tools/arch/x86/intel_sdsi %{log_msg "build intel_sdsi"} %{tools_make} CFLAGS="${RPM_OPT_FLAGS}" popd %endif %endif pushd tools/thermal/tmon/ %{log_msg "build tmon"} %{tools_make} popd pushd tools/bootconfig/ %{log_msg "build bootconfig"} %{tools_make} popd pushd tools/iio/ %{log_msg "build iio"} %{tools_make} popd pushd tools/gpio/ %{log_msg "build gpio"} %{tools_make} popd # build VM tools pushd tools/mm/ %{log_msg "build slabinfo page_owner_sort"} %{tools_make} slabinfo page_owner_sort popd pushd tools/verification/rv/ %{log_msg "build rv"} %{tools_make} popd pushd tools/tracing/rtla %{log_msg "build rtla"} %{rtla_make} popd %endif #set RPM_VMLINUX_H if [ -f $RPM_BUILD_ROOT/$DevelDir/vmlinux.h ]; then RPM_VMLINUX_H=$RPM_BUILD_ROOT/$DevelDir/vmlinux.h elif [ -f $DevelDir/vmlinux.h ]; then RPM_VMLINUX_H=$DevelDir/vmlinux.h fi echo "${RPM_VMLINUX_H}" > ../vmlinux_h_path %if %{with_selftests} %{log_msg "start build 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. %{log_msg "install headers for selftests"} %{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 %{log_msg "modules_prepare for selftests"} %{make} %{?_smp_mflags} modules_prepare fi # Build BPFtool for samples/bpf if [ ! -f tools/bpf/bpftool/bootstrap/bpftool ]; then BuildBpftool fi %{log_msg "build samples/bpf"} %{make} %{?_smp_mflags} EXTRA_CXXFLAGS="${RPM_OPT_FLAGS}" ARCH=$Arch BPFTOOL=$(pwd)/tools/bpf/bpftool/bootstrap/bpftool 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. %if %{selftests_must_build} force_targets="FORCE_TARGETS=1" %else force_targets="" %endif %{log_msg "main selftests compile"} # Some selftests (especially bpf) do not build with source fortification. # Since selftests are not shipped, disable source fortification for them. %global _fortify_level_bak %{_fortify_level} %undefine _fortify_level export CFLAGS="%{build_cflags}" export CXXFLAGS="%{build_cxxflags}" TARGETS="bpf cgroup kmod mm net net/forwarding net/mptcp net/netfilter net/packetdrill tc-testing memfd drivers/net/hw iommu cachestat pid_namespace rlimits timens pidfd" %{make} %{?_smp_mflags} EXTRA_CFLAGS="${RPM_OPT_FLAGS}" EXTRA_CXXFLAGS="${RPM_OPT_FLAGS}" EXTRA_LDFLAGS="%{__global_ldflags}" ARCH=$Arch V=1 TARGETS="$TARGETS" SKIP_TARGETS="" $force_targets VMLINUX_H="${RPM_VMLINUX_H}" # Restore the original level of source fortification %define _fortify_level %{_fortify_level_bak} export CFLAGS="%{build_cflags}" export CXXFLAGS="%{build_cxxflags}" # We must install all the targets in a single step as each `make install` # command overrides the kselftest-list.txt file. %{make} ARCH=$Arch TARGETS="${TARGETS}" SKIP_TARGETS="" $force_targets INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests install # 'make install' for bpf is broken and upstream refuses to fix it. # Install the needed files manually. %{log_msg "install selftests"} 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 -o -type l \) \ \( -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 %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" # The urandom_read binary doesn't pass the check-rpaths check and upstream # refuses to fix it. So, we save it to buildroot_unstripped and delete it so it # will be hidden from check-rpaths and will automatically get restored later. %buildroot_save_unstripped "usr/libexec/kselftests/bpf/urandom_read" %buildroot_save_unstripped "usr/libexec/kselftests/bpf/no_alu32/urandom_read" %buildroot_save_unstripped "usr/libexec/kselftests/bpf/cpuv4/urandom_read" rm -f %{buildroot}/usr/libexec/kselftests/bpf/urandom_read rm -f %{buildroot}/usr/libexec/kselftests/bpf/no_alu32/urandom_read rm -f %{buildroot}/usr/libexec/kselftests/bpf/cpuv4/urandom_read # Copy bpftool to kselftests so selftests is packaged with # the full bpftool instead of bootstrap bpftool cp ./bpf/tools/sbin/bpftool %{buildroot}%{_libexecdir}/kselftests/bpf/bpftool popd %{log_msg "end build selftests"} %endif %if %{with_doc} %{log_msg "start install docs"} # Make the HTML pages. %{log_msg "build html docs"} %{__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 %{log_msg "end install docs"} %endif # Module signing (modsign) # # This must be run _after_ find-debuginfo.sh 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 \ %{log_msg "Signing kernel modules ..."} \ modules_dirs="$(shopt -s nullglob; echo $RPM_BUILD_ROOT/lib/modules/%{KVERREL}*)" \ for modules_dir in $modules_dirs; do \ variant_suffix="${modules_dir#$RPM_BUILD_ROOT/lib/modules/%{KVERREL}}" \ [ "$variant_suffix" == "+zfcpdump" ] && continue \ %{log_msg "Signing modules for %{KVERREL}${variant_suffix}"} \ %{modsign_cmd} certs/signing_key.pem.sign${variant_suffix} certs/signing_key.x509.sign${variant_suffix} $modules_dir/ \ done \ fi \ if [ "%{zipmodules}" -eq "1" ]; then \ %{log_msg "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 %{nobuildarches} %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} # Make debugedit and gdb-add-index use target versions of tools # when cross-compiling. This is supported since debugedit-5.1-5.fc42 # https://inbox.sourceware.org/debugedit/20250220153858.963312-1-mark@klomp.org/ %if %{with_cross} %define __override_target_tools_for_debugedit \ export OBJCOPY=%{_build_arch}-linux-gnu-objcopy \ export NM=%{_build_arch}-linux-gnu-nm \ export READELF=%{_build_arch}-linux-gnu-readelf \ %{nil} %endif # # 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 \ %{?__override_target_tools_for_debugedit:%{__override_target_tools_for_debugedit}}\ %{?__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} HDR_ARCH_LIST='arm64 powerpc s390 x86 riscv' 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 -xvf %{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 %endif %if %{with_libperf} %{libperf_make} DESTDIR=%{buildroot} prefix=%{_prefix} libdir=%{_libdir} install install_headers # This is installed on some arches and we don't want to ship it rm -rf %{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 %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* %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 selftests pushd tools/testing/selftests/drivers/net find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/{} \; 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/hw selftests pushd tools/testing/selftests/drivers/net/hw find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/hw/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/hw/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/hw/{} \; 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 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 net/packetdrill selftests pushd tools/testing/selftests/net/packetdrill find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/packetdrill/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/packetdrill/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/packetdrill/{} \; 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 rlimits selftests pushd tools/testing/selftests/rlimits find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/rlimits/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/rlimits/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/rlimits/{} \; popd # install pid_namespace selftests pushd tools/testing/selftests/pid_namespace find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/pid_namespace/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/pid_namespace/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/pid_namespace/{} \; popd # install timens selftests pushd tools/testing/selftests/timens find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/timens/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/timens/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/timens/{} \; popd # install pidfd selftests pushd tools/testing/selftests/pidfd find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/pidfd/{} \; find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/pidfd/{} \; find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/pidfd/{} \; popd %endif ### ### clean ### ### ### scripts ### %if %{with_tools} %post -n %{package_name}-tools-libs /sbin/ldconfig %postun -n %{package_name}-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 !%{with_automotive}\ if [ -x %{_sbindir}/weak-modules ]\ then\ %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?-v:+%{-v*}} || exit $?\ fi\ %endif\ %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*}}.%compext" ]]; then\ cp "/lib/modules/%{KVERREL}%{?-v:+%{-v*}}/symvers.%compext" "/boot/symvers-%{KVERREL}%{?-v:+%{-v*}}.%compext"\ if command -v restorecon &>/dev/null; then\ restorecon "/boot/symvers-%{KVERREL}%{?-v:+%{-v*}}.%compext"\ fi\ fi\ echo "Looking for signs of direct Linux kernel boot in config.txt..." || exit $?\ if [ -f /boot/efi/config.txt ]\ then\ while IFS= read -r line\ do\ grepped=$( echo $line | grep kernel || exit $? )\ if [ "${grepped:0:14}" == "kernel=vmlinuz" ]\ then\ echo -n "Copying vmlinuz..." || exit $?\ cp -f /lib/modules/%{KVERREL}%{?-v:+%{-v*}}/vmlinuz%{?-u:-%{-u*}.efi} /boot/efi/vmlinuz || exit $?\ echo "done." || exit $?\ fi\ grepped=$( echo $line | grep initramfs || exit $? )\ if [ "${grepped:0:19}" == "initramfs initramfs" ]\ then\ echo -n "Copying initramfs image..." || exit $?\ cp -f /boot/initramfs-%{KVERREL}%{?-v:+%{-v*}}.img /boot/efi/initramfs || exit $?\ echo "done." || exit $?\ fi\ done < /boot/efi/config.txt || exit $?\ else\ echo "Configuration file not found." || exit $?\ fi\ echo "Copying dtb files..." || exit $?\ cp -rf /boot/dtb-%{KVERREL}%{?-v:+%{-v*}}/broadcom/*.dtb /boot/efi/ || exit $?\ cp -rf /boot/dtb-%{KVERREL}%{?-v:+%{-v*}}/overlays /boot/efi/ || exit $?\ %{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 !%{with_automotive}\ if [ -x %{_sbindir}/weak-modules ]\ then\ %{_sbindir}/weak-modules --remove-kernel %{KVERREL}%{?-v:+%{-v*}} || exit $?\ fi\ %endif\ %{nil} %if %{with_up_base} && %{with_efiuki} %kernel_variant_posttrans -u virt %kernel_variant_preun -u virt -e %endif %if %{with_up_base} %kernel_variant_preun -e %kernel_variant_post %endif %if %{with_zfcpdump} %kernel_variant_preun -v zfcpdump %kernel_variant_post -v zfcpdump %endif %if %{with_up} && %{with_debug} && %{with_efiuki} %kernel_variant_posttrans -v debug -u virt %kernel_variant_preun -v debug -u virt -e %endif %if %{with_up} && %{with_debug} %kernel_variant_preun -v debug -e %kernel_variant_post -v debug %endif %if %{with_arm64_16k_base} %kernel_variant_preun -v 16k -e %kernel_variant_post -v 16k %endif %if %{with_debug} && %{with_arm64_16k} %kernel_variant_preun -v 16k-debug -e %kernel_variant_post -v 16k-debug %endif %if %{with_arm64_16k} && %{with_debug} && %{with_efiuki} %kernel_variant_posttrans -v 16k-debug -u virt %kernel_variant_preun -v 16k-debug -u virt -e %endif %if %{with_arm64_16k_base} && %{with_efiuki} %kernel_variant_posttrans -v 16k -u virt %kernel_variant_preun -v 16k -u virt -e %endif %if %{with_arm64_64k_base} %kernel_variant_preun -v 64k -e %kernel_variant_post -v 64k %endif %if %{with_debug} && %{with_arm64_64k} %kernel_variant_preun -v 64k-debug -e %kernel_variant_post -v 64k-debug %endif %if %{with_arm64_64k} && %{with_debug} && %{with_efiuki} %kernel_variant_posttrans -v 64k-debug -u virt %kernel_variant_preun -v 64k-debug -u virt -e %endif %if %{with_arm64_64k_base} && %{with_efiuki} %kernel_variant_posttrans -v 64k -u virt %kernel_variant_preun -v 64k -u virt -e %endif %if %{with_realtime_base} %kernel_variant_preun -v rt %kernel_variant_post -v rt -r kernel %endif %if %{with_automotive_base} %kernel_variant_preun -v automotive %kernel_variant_post -v automotive -r kernel %endif %if %{with_realtime} && %{with_debug} %kernel_variant_preun -v rt-debug %kernel_variant_post -v rt-debug %endif %if %{with_realtime_arm64_64k_base} %kernel_variant_preun -v rt-64k %kernel_variant_post -v rt-64k %kernel_kvm_post rt-64k %endif %if %{with_debug} && %{with_realtime_arm64_64k} %kernel_variant_preun -v rt-64k-debug %kernel_variant_post -v rt-64k-debug %kernel_kvm_post rt-64k-debug %endif %if %{with_automotive} && %{with_debug} && !%{with_automotive_build} %kernel_variant_preun -v automotive-debug %kernel_variant_post -v automotive-debug %endif ### ### file lists ### %if %{with_headers} %files headers /usr/include/* %exclude %{_includedir}/cpufreq.h %if %{with_ynl} %exclude %{_includedir}/ynl %endif %endif %if %{with_cross_headers} %files cross-headers /usr/*-linux-gnu/include/* %endif %if %{with_kernel_abi_stablelists} %files -n %{package_name}-abi-stablelists /lib/modules/kabi-* %endif %if %{with_kabidw_base} %ifarch x86_64 s390x ppc64 ppc64le aarch64 riscv64 %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/* %{_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}/* %if %{with_debuginfo} %files -f perf-debuginfo.list -n perf-debuginfo %files -f python3-perf-debuginfo.list -n python3-perf-debuginfo %endif # with_perf %endif %if %{with_libperf} %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}/internal/*.h %{_includedir}/perf/bpf_perf.h %{_includedir}/perf/core.h %{_includedir}/perf/cpumap.h %{_includedir}/perf/perf_dlfilter.h %{_includedir}/perf/event.h %{_includedir}/perf/evlist.h %{_includedir}/perf/evsel.h %{_includedir}/perf/mmap.h %{_includedir}/perf/threadmap.h %{_mandir}/man3/libperf.3.gz %{_mandir}/man7/libperf-counting.7.gz %{_mandir}/man7/libperf-sampling.7.gz %{_docdir}/libperf/examples/sampling.c %{_docdir}/libperf/examples/counting.c %{_docdir}/libperf/html/libperf.html %{_docdir}/libperf/html/libperf-counting.html %{_docdir}/libperf/html/libperf-sampling.html %if %{with_debuginfo} %files -f libperf-debuginfo.list -n libperf-debuginfo %endif # with_libperf %endif %if %{with_tools} %ifnarch %{cpupowerarchs} %files -n %{package_name}-tools %else %files -n %{package_name}-tools -f cpupower.lang %{_bindir}/cpupower %{_datadir}/bash-completion/completions/cpupower %ifarch x86_64 %{_bindir}/centrino-decode %{_bindir}/powernow-k8-decode %endif %{_mandir}/man[1-8]/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_ynl} %{_bindir}/ynl* %{_docdir}/ynl %{_datadir}/ynl %{python3_sitelib}/pyynl* %endif %if %{with_debuginfo} %files -f %{package_name}-tools-debuginfo.list -n %{package_name}-tools-debuginfo %endif %files -n %{package_name}-tools-libs %ifarch %{cpupowerarchs} %{_libdir}/libcpupower.so.1 %{_libdir}/libcpupower.so.0.0.1 %endif %files -n %{package_name}-tools-libs-devel %ifarch %{cpupowerarchs} %{_libdir}/libcpupower.so %{_includedir}/cpufreq.h %{_includedir}/cpuidle.h %{_includedir}/powercap.h %endif %if %{with_ynl} %{_libdir}/libynl* %{_includedir}/ynl %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_base} %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 aarch64 riscv64\ /lib/modules/%{KVERREL}%{?3:+%{3}}/dtb \ %ghost /%{image_install_path}/dtb-%{KVERREL}%{?3:+%{3}} \ %endif\ /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\ %ghost /boot/System.map-%{KVERREL}%{?3:+%{3}}\ %dir /lib/modules\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.%compext\ /lib/modules/%{KVERREL}%{?3:+%{3}}/config\ /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.builtin*\ %ghost %attr(0644, root, root) /boot/symvers-%{KVERREL}%{?3:+%{3}}.%compext\ %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\ %ghost %attr(0644, root, root) /lib/modules/%{KVERREL}%{?3:+%{3}}/modules.weakdep\ %{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}\ %{expand:%%files -f kernel-%{?3:%{3}-}modules-internal.list %{?3:%{3}-}modules-internal}\ %if 0%{!?fedora:1}\ %{expand:%%files -f kernel-%{?3:%{3}-}modules-partner.list %{?3:%{3}-}modules-partner}\ %endif\ %if %{with_debuginfo}\ %ifnarch noarch\ %{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\ %endif\ %endif\ %if %{with_efiuki} && "%{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}}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\ /lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.%compext\ /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}\ %dir /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\ %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_base} %if %{with_up} %kernel_variant_files %{_use_vdso} %{with_debug} debug %endif %if %{with_arm64_16k} %kernel_variant_files %{_use_vdso} %{with_debug} 16k-debug %endif %if %{with_arm64_64k} %kernel_variant_files %{_use_vdso} %{with_debug} 64k-debug %endif %kernel_variant_files %{_use_vdso} %{with_realtime_base} rt %if %{with_realtime} %kernel_variant_files %{_use_vdso} %{with_debug} rt-debug %endif %kernel_variant_files %{_use_vdso} %{with_automotive_base} automotive %if %{with_automotive} && !%{with_automotive_build} %kernel_variant_files %{_use_vdso} %{with_debug} automotive-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_16k} %files 16k-debug %files 16k-debug-core %files 16k-debug-devel %files 16k-debug-devel-matched %files 16k-debug-modules %files 16k-debug-modules-extra %endif %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_zfcpdump} zfcpdump %kernel_variant_files %{_use_vdso} %{with_arm64_16k_base} 16k %kernel_variant_files %{_use_vdso} %{with_arm64_64k_base} 64k %kernel_variant_files %{_use_vdso} %{with_realtime_arm64_64k_base} rt-64k %if %{with_realtime_arm64_64k} %kernel_variant_files %{_use_vdso} %{with_debug} rt-64k-debug %endif %ifnarch noarch %{nobuildarches} %files modules-extra-matched %endif # plz don't put in a version string unless you're going to tag # and build. # # %changelog * Fri Sep 12 2025 Luca Magrone [6.12.0-126.0.rpi64.el10] - redhat: configs: common: generic: riscv64: fix unset config items relative to downstream patches from Raspberry Pi (Luca Magrone) - media: i2c: imx500: input tensor injection (Richard Oliver) - net: phy: broadcom: Remove conflicting ECR global interrupt mask in config_init (Nicolai Buchwitz) - net: phy: broadcom: Preserve LED4 settings (Nicolai Buchwitz) - dts: cm5: Fix Ethernet PHY interrupt pull-up (Nicolai Buchwitz) - fixup! misc: rp1-pio: Request a DMA burst size of 8 (Phil Elwell) - Overlays: Added support for rpi-power HAT (Lucas Hoffmann) - dtoverlays: Switch ssd1306 to use the DRM driver (Dave Stevenson) - dtoverlays: Add BMP580 family to i2c-sensor (Dave Stevenson) - dtoverlays: Add adxl355 to i2c-sensor overlay (Dave Stevenson) - add ads7828/ads7830 to i2c-sensors (Adam Wilson) - overlays: Add TCS3472 and VEML6040 support (Phil Elwell) - mfd: rp1: Fix device links when modules disabled (Phil Elwell) - dt: Add Add eth_max_speed override for Pi5, Pi500, and CM5. (Dave Stevenson) - dt: Add eth_max_speed override for CM4, Pi4, and Pi400 (Dave Stevenson) - Splash Screen: bug fix (Ben Benson) - drm: rp1: rp1-vec: Support 60fps in interlaced modes; other tweaks (Nick Hollinghurst) - overlays: Rebuild 5inch display from the 7inch (Phil Elwell) - Fullscreen Splash Images (Ben Benson) - Update tpm-slb9673-overlay.dts (Paul Kissinger) - dmaengine: dw-axi-dmac: report per-channel max_burst via device_caps (Nicolai Buchwitz) - misc: rp1-pio: Request a DMA burst size of 8 (Phil Elwell) - dts: bcm2712-rpi: Give PIO the "heavy" DMA channels (Phil Elwell) - dts: rp1: Set per-channel DMA burst limit (Phil Elwell) - dmaengine: dw-axi-dmac: Add DMA channel selection (Phil Elwell) - dmaengine: dw-axi-dmac: Per-channel burst limits (Phil Elwell) - misc: rp1-pio: Fix a config_xfer error path (Phil Elwell) - hwmon: (ina2xx) Add support for INA260 (LucasH-rp) - drivers: media: pisp_be: Fix use after free in job queue logic (Naushir Patuck) - drivers: media: pisp_be: Fix for job queue removal in stop_streaming() (Naushir Patuck) - arm64/dma-mapping: Fix arch_sync_dma_for_device to respect dir parameter (John Cox) - overlays: Fix sc16is752-spi1 emulation (Phil Elwell) - redhat: configs: custom-overrides: aarch64: disable snd_soc_adau1701 (Luca Magrone) - Revert "ASoC: soc-dai: remove SND_SOC_DAIFMT_CB{MS}_CF{MS}" (Luca Magrone) - Pisound: comply to SOC_DOUBLE_R_VALUE changes (Luca Magrone) - drm/panel: ilitek-ili9881c: Restore lanes configuration for nwe080 panel (Jack O'Brien) - drm: rp1: Enable VEC->GPIO output; cosmetic change to registers (Nick Hollinghurst) - drivers: media: pisp_be: Fix alignment for V4L2_PIX_FMT_SRGGB8 and V4L2_PIX_FMT_SBGGR8 (Naushir Patuck) - drivers: media: pisp_be: Add minimal alinment to the format structure (Naushir Patuck) - drivers: meida: pisp_be: Rename format align field (Naushir Patuck) - drm/connector: fix mode_valid callback for some drivers (Luca Magrone) - drm/atomic: Fix atomic_async_check() for some drivers (Luca Magrone) - drm/vc4: Pass full state to atomic_post_disable (Luca Magrone) - drm/vc4: Pass full state to atomic_disable (Luca Magrone) - drm/vc4: Pass full state to atomic_enable (Luca Magrone) - drm/vc4: Pass full state to atomic_pre_enable (Luca Magrone) - drm/v3d: fix drm_sched_init() params (Luca Magrone) - staging: vc04_services: vc-sm-cma: workaround to silence kernel warnings (Luca Magrone) - brcmfmac: fweh: workaround to avoid kernel warnings (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable NUMA_EMU (Luca Magrone) - redhat: configs: custom-overrides: aarch64: make mmcblk built-in (Luca Magrone) - drm/v3d: Address race-condition between per-fd GPU stats and fd release (Maíra Canal) - drm/v3d: Avoid NULL pointer dereference in `v3d_job_update_stats()` (Maíra Canal) - drm/v3d: Appease lockdep while updating GPU stats (Tvrtko Ursulin) - drm/v3d: Disable interrupts before resetting the GPU (Maíra Canal) - drm/v3d: Replace a global spinlock with a per-queue spinlock (Maíra Canal) - drm/v3d: Store the active job inside the queue's state (Maíra Canal) - drm/v3d: Assign job pointer to NULL before signaling the fence (Maíra Canal) - drm/v3d: Ensure job pointer is set to NULL after job completion (Maíra Canal) - drm/v3d: Store a pointer to `struct v3d_file_priv` inside each job (Maíra Canal) - pwm: rp1: use pwmchip_get_drvdata() instead of container_of() (Nicolai Buchwitz) - ARM: dts: watchdog param creates early-watchdog (Phil Elwell) - drm/vc4: plane: Add support for P01[026] and Q01[026] formats (Dave Stevenson) - drm: drm_fourcc: add 10/12/16bit software decoder YCbCr formats (Robert Mader) - drm/vc4: tests: Use the correct return type in vc4_mock_atomic_add_output() (Maíra Canal) - drm/vc4: tests: Use return instead of assert (Maxime Ripard) - redhat: configs: custom-overrides: aarch64: enable bcm2835 mmc driver (Luca Magrone) - Revert "staging: vchiq_arm: Create keep-alive thread during probe" (Stefan Wahren) - aarch64: disable uki (Luca Magrone) - Revert "kernel.spec.template: Remove gzip related aarch64 code" (Luca Magrone) - Revert "aarch64: enable zboot" (Luca Magrone) - redhat/spec: copy dtbs to /boot/efi (Luca Magrone) - redhat: configs: custom-overrides: aarch64: disable dwc-otg (Luca Magrone) - staging: vchiq_arm: Register debugfs after cdev (Stefan Wahren) - staging: vchiq_arm: Fix missing refcount decrement in error path for fw_node (Javier Carrasco) - staging: vchiq_arm: Create keep-alive thread during probe (Stefan Wahren) - staging: vchiq_arm: Fix possible NPR of keep-alive thread (Stefan Wahren) - drivers: pci: hailo: Avoid discriminating against kernel version 6.13 (Luca Magrone) - media: i2c: imx290: fix syntax in imx290_subdev_init() (Luca Magrone) - drm/client: Fix header path for some drivers (Luca Magrone) - drm/sched: fix drm_sched_start() calls in some drivers (Luca Magrone) - drm: remove driver date from struct drm_driver and all drivers (Jani Nikula) - drm/vc4: Use video aperture helpers (Thomas Zimmermann) - redhat: configs: common: generic: add WAVESHARE_TOUCHSCREEN entries (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable Waveshare touchscreen driver (Luca Magrone) - arch/arm/boot/dts/overlays : Extend existing Waveshare DSI-TOUCH panel device tree support (Waveshare_Team) - arch/arm/boot/dts/overlays : Add Waveshare DSI-TOUCH series panels Device Tree support (Waveshare_Team) - drivers/gpu/drm/panel : Update display driver (Waveshare_Team) - drivers/gpu/drm/panel : Add the device for the Waveshare DSI-TOUCH series panels. (Waveshare_Team) - drivers/regulator : Adjust power enable sequence (Waveshare_Team) - drivers/regulator : Add a regulator to Waveshare DSI-TOUCH series panels (Waveshare_Team) - xhci: quirks: fix link TRB quirk for VL805 (Luca Magrone) - Revert "dmaengine: bcm2835-dma: Prevent suspend if DMA channel is busy" (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable several VIDEO drivers (Luca Magrone) - redhat: configs: add missing entries for MIRA220 and PISOUND_MICRO (Luca Magrone) - Fixup! usb: dwc2: limit "maximum packet size" for split-IN transfers (Jonathan Bell) - usb: dwc2: masquerade split-interrupt transfers (Jonathan Bell) - net: phy: broadcom: Handle irqs on BCM54213PE (Nicolai Buchwitz) - dts: cm5: Fix ethernet phy address (Nicolai Buchwitz) - iommu: bcm2712-iommu: Add locking; fix address offset; tidy (Nick Hollinghurst) - overlays: ili9881-7inch: Fix overlay name in preamble (Nicolai Buchwitz) - configs: Enable more packet classification options (Phil Elwell) - drivers: media: cfe: Workaround for 16-bit mismatch in the hardware (Naushir Patuck) - dtoverlay: Add autorepeat option to gpio-key overlay (Dave Stevenson) - staging: vc04_services: vc-sm-cma: Use a mutex instead of spinlock (Dave Stevenson) - staging: vc04_services: vc-sm-cma: Use [map|unmap]_attachment_unlocked (Dave Stevenson) - drivers: media: rpi: cfe: Avoid unpack operation for 16-bit formats (Naushir Patuck) - redhat: configs: custom-overrides: aarch64: enable Pi Vision drivers (Luca Magrone) - fixup! dtoverlays: add overlay for Pi Vision (Phil Elwell) - dtoverlays: add overlay for Pi Vision (Alessandro Pecugi) - defconfigs: add Pi Vision drivers (Alessandro Pecugi) - drivers: dwc2: better handle hardware length & alignment issues (Jonathan Bell) - Revert "usb: dwc2: use temporary URB buffer for small control transfers" (Jonathan Bell) - misc: rp1-pio: Don't just reuse the same DMA buf (Phil Elwell) - media: pisp_be: Use clamp() and define max sizes (Jacopo Mondi) - redhat: configs: custom-overrides: aarch64: Enable NET_DSA (Luca Magrone) - configs: Enable NET_DSA for Ethernet switches (Phil Elwell) - media: pisp_be: Fix pm_runtime underrun in probe (Jacopo Mondi) - media: pisp_be: Split jobs creation and scheduling (Jacopo Mondi) - media: pisp_be: Remove config validation from schedule() (Jacopo Mondi) - media: pisp_be: Drop reference to non-existing function (Jacopo Mondi) - mfd: rp1: depends on PCI_MSI (Jorge Marques) - Revert "usb: dwc2: masquerade split-interrupt transfers" (Jonathan Bell) - drivers: dwc2: don't use shifted frame number internally (Jonathan Bell) - overlays: i2c-rtc: Add M41T80 support (Phil Elwell) - media: i2c: imx500: GPIO acquire/release semantics (Richard Oliver) - media: i2c: imx500: pm_runtime error paths (Richard Oliver) - dts: 'AI Camera' uses releasing gated clock (Richard Oliver) - dt-bindings: clock: Add gpio-gate-clock-releasing (Richard Oliver) - clk: clk-gpio: Support acquire/release semantics (Richard Oliver) - dts: cm5/pi5: Disable EEE on rp1 (Nicolai Buchwitz) - redhat: configs: custom-overrides: aarch64: Enable the UDMABUF driver (Luca Magrone) - configs: arm64: Enable the UDMABUF driver (Phil Elwell) - drm/probe-helper: Ensure cmdline mode matches interlace mode (Dave Stevenson) - media: i2c: Tweak default PDAF gain table in imx708 driver (Nick Hollinghurst) - drivers: media: imx500: Add device id readback control (Naushir Patuck) - usb: dwc2: limit "maximum packet size" for split-IN transfers (Jonathan Bell) - usb: dwc2: return correct frame counts with high-speed host (Jonathan Bell) - usb: dwc2: masquerade split-interrupt transfers (Jonathan Bell) - usb: dwc2: use temporary URB buffer for small control transfers (Jonathan Bell) - fixup! ILI9881C: Update timings for CFAF7201280A0-050TX (Phil Elwell) - overlays: Update crystalfontz-cfa050_pi_m for CM5 (Mark W) - ILI9881C: Update timings for CFAF7201280A0-050TX (Mark W) - overlays: Give a deprecation warning for dwc-otg (Phil Elwell) - redhat: configs: custom-overrides: aarch64: make USB_DWC2 built-in (Luca Magrone) - configs: arm64: Make USB_DWC2 built-in (Phil Elwell) - Revert "configs: arm64: Remove CONFIG_USB_DWCOTG" (Phil Elwell) - drivers: dwc_otg: don't call disable_irq on the fake FIQ (Jonathan Bell) - drivers: dwc_otg: reduce loglevel for probe messages (Jonathan Bell) - drivers: dwc_otg: add ticket-based spinlock for ARM64 (Jonathan Bell) - drivers: dwc_otg: move FIQ locking functions to header file (Jonathan Bell) - drivers: irq-bcm283x: swizzle interrupts on ARMv7 too (Jonathan Bell) - drivers: irq-bcm2836: preserve unrelated bits in LOCAL_GPU_ROUTING (Jonathan Bell) - configs: arm64: Remove CONFIG_USB_DWCOTG (Phil Elwell) - configs: add rtw88/89 PCI drivers (macmpi) - Pisound Micro: Workaround for snd_soc_dai_set_tdm_slot with slots=0 (Giedrius) - redhat: configs: custom-overrides: aarch64: enable IMX283 driver (Luca Magrone) - defconfigs: Add IMX283 to all Pi defconfigs (Kieran Bingham) - dtoverlays: Add overlay for the Sony IMX283 Camera (Kieran Bingham) - media: i2c: imx477: Disable temperature sensor when enabling XVS (Nick Hollinghurst) - media/platform/raspberypi/rp1_cfe: Candidate fix for #5821 (Nick Hollinghurst) - firmware: rp1: Rename to rp1-fw to avoid module name collision (Dave Stevenson) - drivers: media: imx500: Enable sensor temperature monitoring (Naushir Patuck) - redhat: configs: custom-overrides: aarch64: Enable WATCHDOG_SYSFS (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Add ams Mira220 image sensor (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Enable drivers for the PowerZ range of power monitors (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable RTL8152 driver module (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Include Pisound Micro kernel module (Luca Magrone) - redhat: configs: custom-overrides: aarch64: CONFIG_DRM_PANEL_ILITEK_ILI9806E_SPI (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Enable support for the FXL6408 GPIO expander (Luca Magrone) - drivers: pci: hailo: Better lock handling when calling find_vdma() (Naushir Patuck) - defconfigs: Enable WATCHDOG_SYSFS (Tim Gover) - media/i2c: Add driver for ams Mira220 (philippe baetens) - dtoverlays: Add overlay for ams Mira220 image sensor (philippe baetens) - defconfigs: Add ams Mira220 image sensor to Pi defconfigs (philippe baetens) - overlays: sc16is75x: Add generic SPI overlay (Nicolai) - workflows: Switch to overlaycheck's thorough mode (Phil Elwell) - gpiolib: Avoid the hotplug performance reduction (Phil Elwell) - overlays: sc16is75x: Disable spidev0 first (Nicolai Buchwitz) - firmware/raspberrypi: raise timeout to 3s (Etienne Buira) - configs: Enable more MediaTek drivers (Phil Elwell) - usb: xhci: set Input Slot Context bit in xhci_fixup_endpoint (Jonathan Bell) - drm/rp1/rp1_dpi: Move Composite Sync generation into the kernel (Nick Hollinghurst) - Revert "drm/rp1/rp1_dsi: Move Composite Sync generation into the kernel" (Phil Elwell) - drm/rp1/rp1_dsi: Move Composite Sync generation into the kernel (Nick Hollinghurst) - pisound-micro: Added pin_pull and pin_b_pull sysfs attributes for Pisound Micro. (Giedrius) - dts: Set default NVME HMB size to 0 on RPi 4 & 5 (Serge) - wifi: brcmfmac: Include modinfo for 43456 CLM blob (Phil Elwell) - configs: Enable SENSORS_POWERZ (Phil Elwell) - arm64: dts: bcm2712-rpi: Add uart0_dma parameter (Phil Elwell) - Update panel-ilitek-ili9881c.c (Mark W) - drm/v3d: Don't retrieve the clock twice (Maíra Canal) - configs: Add FTRACE_SYSCALLS=y (Phil Elwell) - configs: Regenerate the defconfigs (Phil Elwell) - media: i2c: imx477: Fix lockdep errors (Dave Stevenson) - media: i2c: imx708: Fix lockdep issues. (Dave Stevenson) - dtoverlays: Create Pi5 variant of tc358743 overlay (Dave Stevenson) - drm/vc4: plane: Fix incorrect handling of GEN_6_D in vc4_plane_async_set_fb (Dave Stevenson) - overlays: README: Fix 4 lane CSI2 documentation for Pi5 (Kieran Bingham) - dtoverlays: Add overlay for the Sony IMX335 4-Lane camera (Kieran Bingham) - defconfigs: Add IMX335 to all Pi defconfigs (Kieran Bingham) - media: imx335: Use correct register width for HNUM (Umang Jain) - media: imx335: Set vblank immediately (Paul Elder) - media: imx335: Support vertical flip (Umang Jain) - media: imx335: Rectify name of mode struct (Umang Jain) - configs: Enable the EROFS read-only filesystem (Phil Elwell) - overlays: Add aht20 support to i2c-sensor (Phil Elwell) - hwmon: aht10: Fix AHT20 initialization (Josh Martinez) - drm/vc4: plane: Use nearest neighbour filter with YUV444 workaround (Dave Stevenson) - drm/vc4: plane: Enable scaler for YUV444 on GEN6 (Dave Stevenson) - drm/vc4: plane: Increase UPM allocation size for YUV444 (Dave Stevenson) - media: i2c: imx219: Restore the 1920x1080 to using a 1:1 PAR (Dave Stevenson) - usb: xhci: default to Intel scheme for calculating U1/U2 timeouts (Jonathan Bell) - PCI: quirks: work around VL805 firmware ASPM meddling (Jonathan Bell) - PCI: pcie-brcmstb: add more safeguards for clkreq "safe" mode (Jonathan Bell) - fixup! mmc: sdhci-of-dwcmshc: define sdio timeout clocks (Phil Elwell) - ARM: dts: Include symbols in the CM0 dtb (Phil Elwell) - Pisound Micro: Fix for MIDI output under full load. (Giedrius Trainavičius) - configs: Make the RTL8152 driver a module (Phil Elwell) - drivers: pci: hailo: Fix kernel warning when calling find_vdma() (Naushir Patuck) - overlays: Added waveshare 7.0inch h dsi screen support (Waveshare_Team) - drm: panel: Added waveshare 7.0inch h dsi screen support (Waveshare_Team) - Show process name in set_mempolicy() ignored message (Trevor Man) - drm/vc4: plane: Ensure fetch_count is sufficient for hw in SAND mode (Dave Stevenson) - drm/vc4: plane: Correct SAND30 word sizing for cropping on BCM2712 (Dave Stevenson) - dtoverlays: imx415: Add an override for 37.125MHz clock (Dave Stevenson) - media: i2c : imx415: Correct hmax_min values for 891Mbps/lane (Dave Stevenson) - PCI: pcie-brcmstb: fake MSIx support on internal MSI target (Jonathan Bell) - staging: bcm2835-camera: Initialise dev in v4l2_dev (Dave Stevenson) - dtoverlays: Make piscreen consistent on swapxy (Dave Stevenson) - dtoverlays: Add invx and invy overrides to ads7846 touch overlay (Dave Stevenson) - dtoverlays: Disable kernel drivers for humidity sensor on Sense HATs (Dave Stevenson) - arm64: config: Enable TIMERLAT_TRACER in bcm2711_rt (Tim Gover) - Revert "Revert "drm/v3d: Set job pointer to NULL when the job's fence has an error"" (Dom Cobley) - Revert "Revert "arm: dts: bcm2711-rpi: Add HEVC decoder node"" (Dom Cobley) - Revert "Partial revert of "BCM2708: Add core Device Tree support"" (Dom Cobley) - Partial revert of "BCM2708: Add core Device Tree support" (Dom Cobley) - Revert "arm: dts: bcm2711-rpi: Add HEVC decoder node" (Dom Cobley) - Revert "drm/v3d: Set job pointer to NULL when the job's fence has an error" (Dom Cobley) - overlays: README: Correct "watchdog" default value (Phil Elwell) - ARM64: dts: Add sd and sd_poll_once params to CM5 (Phil Elwell) - PCI: brcmstb: Add link statistics debug features (Jonathan Bell) - overlay: Rework/fix the Pi 5 MIDI UART overlays (Phil Elwell) - dts: rp1: Don't use DMA with UARTs (Phil Elwell) - Revert "dts: bcm2712-rpi: Add uart0_nodma" (Phil Elwell) - mm/mempolicy: Ignore runtime policy changes when set through cmdline (Dom Cobley) - workflows: Add arm64 bcm2711_rt build (Tim Gover) - arm64: config: Experimental PREEMPT_RT defconfig (Tim Gover) - dmaengine: dw-axi-dmac: Fix alignment checks (Phil Elwell) - dmaengine: dw-axi-dmac: Improve axi_desc_put (Phil Elwell) - Adding pisound-micro-overlay.dts (Giedrius Trainavičius) - Include Pisound Micro kernel module in Raspberry Pi defconfigs (Giedrius Trainavičius) - Adding Pisound Micro kernel module (Giedrius Trainavičius) - dts: bcm2712-rpi: Add uart0_nodma (Phil Elwell) - drm/vc4: Correct arithmetic for shifting between columns of SAND images (Dave Stevenson) - dtoverlays: ov9281: Add continuous clock option as an override (Dave Stevenson) - media: i2c: imx477: Add further link frequency options (Dave Stevenson) - fix clang compilation error (KubaTaba1uga) - DT: bcm2711/bcm2712: use upstream property for controlling pcie clkreq (Jonathan Bell) - dt-bindings: interrupt-controller: Add bcm2712 MSI-X DT bindings (Stanimir Varbanov) - irqchip: Add Broadcom bcm2712 MSI-X interrupt controller (Stanimir Varbanov) - arm64: dts: broadcom: bcm2712: Add PCIe DT nodes (Stanimir Varbanov) - arm64: dts: Drop downstream PCIe nodes that are about to be superceded (Dave Stevenson) - arm64: dts: Clean up the downstream patches (Phil Elwell) - arm64: dts: broadcom: bcm2712-rpi-5-b: Enable PCIe DT nodes (Stanimir Varbanov) - DT: bcm2712: swap PCIe QoS properties to the new array type (Jonathan Bell) - dt-bindings: pci: pcie-brcmstb: add optional brcm,tperst-clk-ms property (Jonathan Bell) - dt-bindings: pci: pcie-brcmstb: add BCM2712-specific properties (Jonathan Bell) - PCI: pcie-brcmstb: optionally extend Tperst_clk time (Jonathan Bell) - PCI: brcmstb: add support for BCM2712 priority forwarding (Jonathan Bell) - PCI: brcmstb: add NO_SSC quirk for BCM2712 (Jonathan Bell) - PCI: brcmstb: Enable CRS software visibility after linkup (Jonathan Bell) - PCI: brcmstb: don't use ASPM state defines for register bits (Jonathan Bell) - PCI: brcmstb: set BCM7712/2712-specific AXI bridge handling behaviours (Jonathan Bell) - PCI: brcmstb: Adding a softdep to MIP MSI-X driver (Stanimir Varbanov) - Revert "PCI: brcmstb: don't use ASPM state defines for register bits" (Dom Cobley) - defconfigs: Add DRM_PANEL_ILITEK_ILI9806E_SPI to Pi defconfigs (Dave Stevenson) - drm/panel: Add panel driver for Ilitek ILI9806E panel (Dave Stevenson) - overlays: Fix some unusable fragments (Phil Elwell) - redhat: configs: custom-overrides: aarch64: enable SND_RP1_AUDIO_OUT as module (Luca Magrone) - redhat: configs: common: generic: add SND_RP1_AUDIO_OUT as disabled (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Enable IMX415 driver module (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Replace VIDEO_RPIVID with VIDEO_RPI_HEVC_DEC (Luca Magrone) - dts: bcm2712: Add V3D_SMS register (Maíra Canal) - dt-bindings: gpu: Add V3D driver maintainer as DT maintainer (Maíra Canal) - drm/v3d: Use V3D_SMS registers for power on/off and reset on V3D 7.x (Maíra Canal) - dt-bindings: gpu: v3d: Add SMS register to BCM2712 compatible (Maíra Canal) - dt-bindings: gpu: v3d: Add per-compatible register restrictions (Maíra Canal) - drm/v3d: Associate a V3D tech revision to all supported devices (Maíra Canal) - drm/v3d: Set job pointer to NULL when the job's fence has an error (Maíra Canal) - drm/v3d: Don't run jobs that have errors flagged in its fence (Maíra Canal) - drm/v3d: Add clock handling (Stefan Wahren) - overlays: Use current I2C Sysfs in README examples (Richard Oliver) - fixup! ARM: dts: bcm2711: Provide a hook for a WiFi MAC (Phil Elwell) - dtoverlays: Add adxl345 to i2c-sensor (Dave Stevenson) - dts: Remove the power key debounce on Pi 500 (Phil Elwell) - configs: Add GPIO_FXL6408=m (Phil Elwell) - overlays: Add the wifimac overlay (Phil Elwell) - ARM: dts: bcm2711: Provide a hook for a WiFi MAC (Phil Elwell) - ARM64: dts: Add the 64-bit CM0 dts (Phil Elwell) - ARM: dts: Add CM0 dts file (Phil Elwell) - dts: remove README from Makefile (Sander Hollaar) - media: hevc_dec: Drop the new image formats until we have Mesa 24 (Dave Stevenson) - media: hevc_dec: Add module parameter for video_nr (Dave Stevenson) - drm/framebuffer: Pitch checks aren't valid for non-linear modifiers (Dave Stevenson) - drm: vc4: plane: Avoid using pitch in calculating UBM for SAND (Dave Stevenson) - drm/vc4: Add algorithmic handling for SAND (Dave Stevenson) - drm: vc4: hvs: Fix vc6_hvs_debugfs_dlist state lookup (Dave Stevenson) - arm64: defconfig: Replace VIDEO_RPIVID with VIDEO_RPI_HEVC_DEC (Dave Stevenson) - arm: defconfig: Replace VIDEO_RPIVID with VIDEO_RPI_HEVC_DEC (Dave Stevenson) - media: hevc_dec: Add in downstream single planar SAND variant (Dave Stevenson) - media: v4l2: Add single planar NV12 column formats (Dave Stevenson) - dts: bcm2712: Fixup HEVC decoder nodes for new driver. (Dave Stevenson) - arm: dt: broadcom: fixup downstream dts for HEVC decoder (Dave Stevenson) - arm: dts: bcm2711-rpi: Add HEVC decoder node (Dave Stevenson) - media: platform: Add Raspberry Pi HEVC decoder driver (John Cox) - media: dt-bindings: media: Add binding for the Raspberry Pi HEVC decoder (Dave Stevenson) - media: ioctl: Add pixel formats NV12MT_COL128 and NV12MT_10_COL128 (Dave Stevenson) - docs: uapi: media: Document Raspberry Pi NV12 column format (Dave Stevenson) - media: mc: add debugfs node to keep track of requests (Hans Verkuil) - media: vicodec: add support for manual completion (Hans Verkuil) - media: mc: add manual request completion (Hans Verkuil) - Revert "RFC: media: Add media_request_{pin,unpin} API" (Dave Stevenson) - Revert "media: videodev2.h: Add a format for column YUV4:2:0 modes" (Dave Stevenson) - Revert "staging: media: rpivid: Add Raspberry Pi V4L2 H265 decoder" (Dave Stevenson) - drm/vc4: Correct one logging message that got promoted from dbg to err (Dave Stevenson) - Revert "firmware: raspberrypi: Add backward compatible get_throttled" (Dom Cobley) - imx500: Fix for long exposure setup (Naushir Patuck) - dts: bcm2712-ds: Remove bcm7445 from gio_aon (Phil Elwell) - mm/mempolicy: Add MPOL_RANDOM (Tvrtko Ursulin) - iommu/dma: Add ability to configure NUMA allocation policy for remapped allocations (Tvrtko Ursulin) - configs: Delete bcmrpi3_defconfig (Phil Elwell) - spi: rp2040-gpio-bridge: probe: Cfg fast_xfer clk (Richard Oliver) - spi: rp2040-gpio-bridge: fix gpiod error handling (Richard Oliver) - dts: Add hogs for RP1 GPIO 46/48 on CM5 (Richard Oliver) - misc: rp1-pio: Demote fw probe error to warning (Phil Elwell) - media: i2c: arducam-pivariety: Fix mutex init and NULL pointer (Yuriy Pasichnyk) - dts: overlays: Enable RP1 Audio Out using audremap-pi5-overlay (Nick Hollinghurst) - sound: soc: raspberrypi: RP1 Audio Out driver as an ASOC DAI (Nick Hollinghurst) - clk: rp1: Allow audio out to use PLL_AUDIO_SEC; workaround rounding error (Nick Hollinghurst) - arm64: dts: Add the Audio Out block to rp1.dtsi (Nick Hollinghurst) - overlays: Add OpenHydroponics RootMaster overlay (Micke Prag) - configs: Enable more ZRAM backends (Dom Cobley) - drm/edid: When reset, assume HDMI displays support RGB444 (Dave Stevenson) - redhat: Makefile.variables: do not bump release (Luca Magrone) - redhat: configs: custom-overrides: aarch64: disable VC4 Kunit tests (Luca Magrone) - rp1-pio: port to current source tree (Luca Magrone) - redhat: configs: custom-overrides: aarch64: add missing configuration entries and enable USB_DWC2_DUAL_ROLE (Luca Magrone) - redhat: configs: fix custom aarch64 configuration (Luca Magrone) - redhat: configs: custom-overrides: Compile-in RP1 driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Enable Renesas XHCI driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable netkit (Luca Magrone) - redhat: configs: custom-overrides: aarch64: Enable PCM3168A driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable WS2812_PIO_RP1 as module (Luca Magrone) - redhat: configs: common: arm: add WS2812_PIO_RP1 disabled (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable SERIAL_RPI_FW (Luca Magrone) - redhat: configs: common: arm: add SERIAL_RPI_FW disabled (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable SND_PIMIDI (Luca Magrone) - redhat: configs: common: add SND_PIMIDI disabled (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable MBOX_RP1 module (Luca Magrone) - redhat: configs: common: add MBOX_RP1 disabled (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable PWM_PIO_RP1 (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable RP1_PIO (Luca Magrone) - redhat: configs: common: add RP1_PIO as disabled (Luca Magrone) - redhat/configs: common: add NUMA_EMULATION disabled (Luca Magrone) - redhat: Allow building 16k kernel variant on RHEL/CentOS Stream (Luca Magrone) - redhat: kernel.spec.template: fix Raspberry Pi script (Luca Magrone) - kernel.spec add script for Raspberry Pi (Luca Magrone) - redhat: configs: custom-overrides: configure kernel for Raspberry Pi (Luca Magrone) - redhat: configs: custom-overrides: enable IMX500 sensor driver module (Luca Magrone) - redhat: configs: disable IMX500 sensor driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable support for the Raspberry Pi RP2040 GPIO bridge (Luca Magrone) - redhat: configs: disable support for the Raspberry Pi RP2040 GPIO bridge (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable Hailo accelerator device dirver module (Luca Magrone) - redhat: configs: disable Hailo accelerator device dirver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable V2 Raspberry Pi touchscreen unit driver module (Luca Magrone) - redhat: configs: disable support for V2 Raspberry Pi touchscreen unit (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable ROHM BU64754 Camera Autofocus Actuator driver module (Luca Magrone) - redhat: configs: disable ROHM BU64754 Camera Autofocus Actuator driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable RP1 ADC and temperature driver module (Luca Magrone) - redhat: configs: disable RP1 ADC and temperature driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable RP1 VEC, DPI and DSI driver modules (Luca Magrone) - redhat: configs: disable RP1 VEC, DPI and DSI drivers (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable rp1 clock and sdio-clk drivers (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable rp1 pinctrl driver (Luca Magrone) - redhat: configs: disable rp1 pinctrl driver (Luca Magrone) - redhat: configs: disable rp1 clock driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable RP1 mfd (Luca Magrone) - redhat: configs: disable RP1 mfd (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable support for 2712's MIP (Luca Magrone) - redhat: configs: disable support for 2712's MIP (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable IMX708 sensor driver module (Luca Magrone) - redhat: configs: disable IMX708 sensor driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable Arducam 64MP camera driver module (Luca Magrone) - redhat: configs: disable Arducam 64MP camera driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable arducam-pivariety driver (Luca Magrone) - redhat: configs: disable arducam-pivariety (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable AD5398 VCM lens driver module (Luca Magrone) - redhat: configs: disable AD5398 VCM lens driver (Luca Magrone) - redhat: configs: custom-overrides: enable OV2311 sensor driver module (Luca Magrone) - redhat: configs: disable OV2311 sensor driver (Luca Magrone) - redhat: configs: custom-overrides: enable RPi POE HAT on aarch64 (Luca Magrone) - redhat: configs: disable MFD_RASPBERRYPI_POE_HAT (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable wrapper of the PWM API as a GPIO controller (Luca Magrone) - redhat: configs: disable wrapper of the PWM API as a GPIO controller (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable Waveshare DSI touchscreens driver module (Luca Magrone) - redhat: configs: disable Waveshare DSI touchscreens driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable TDO Y17B panel driver module (Luca Magrone) - redhat: configs: disable TDO Y17B panel driver (Luca Magrone) - redhat: configs: custom-overrides: enable GPIO_FSM as a module (Luca Magrone) - redhat: configs: disable GPIO_FSM (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable led triggers and other led-related options (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable actpwr trigger (Luca Magrone) - redhat: configs: disable the actpwr trigger (Luca Magrone) - redhat: configs: custom-overrides: enable IRS1125 sensor driver module (Luca Magrone) - redhat: configs: disable IRS1125 sensor driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable IMX519 sensor driver (Luca Magrone) - redhat: configs: disable IMX519 sensor driver (Luca Magrone) - redhat: configs: custom-overrides: enable ony IMX477 sensor on aarch64 (Luca Magrone) - redhat: configs: disable Sony IMX477 sensor (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable OF_CONFIGFS and its dependencies (Luca Magrone) - redhat: configs: disable OF_CONFIGFS on arm64 and powerpc (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable Raspberry Pi related sound cards (Luca Magrone) - redhat: configs: disable rpi sound card drivers for x86 (Luca Magrone) - redhat: configs: custom-overrides: enable Raspberry Pi Sense HAT core driver (Luca Magrone) - redhat: configs: disable Raspberry Pi Sense HAT core driver (Luca Magrone) - redhat: configs: custom-overrides: aarch64: enable "input" trigger for pwr_led (Luca Magrone) - redhat: configs: disable leds trigger input (Luca Magrone) - redhat: configs: custom-overrides: enable RASPBERRYPI_GPIOMEM for aarch64 (Luca Magrone) - redhat: configs: disable RASPBERRYPI_GPIOMEM (Luca Magrone) - redhat: configs: custom-overrides: enable Broadcom Char Drivers (Luca Magrone) - redhat: configs: disable BRCM_CHAR_DRIVERS (Luca Magrone) - redhat: configs: custom-overrides: enable FB_BCM2708 on aarch64 (Luca Magrone) - redhat: configs: custom-overrides: enable USB_DWCOTG (Luca Magrone) - redhat: configs: aarch64: disable USB_DWCOTG (Luca Magrone) - media: i2c: imx290: Register 0x3011 varies between imx327 and imx290 (Dave Stevenson) - configs: Enable Intel Wireless (PCI) drivers (Phil Elwell) - drm/vc4: tests: Update pv muxing tests now DSI1 is more flexible (Dave Stevenson) - drm/vc4: PV1 can be driven via any HVS channel, so adapt to allow it (Dave Stevenson) - brcmfmac: Fix structure size for WPA3 external SAE (Ting-Ying Li) - ASoC: adds ADC8x support to the Hifiberry DAC8x (j-schambacher) - dtoverlays: adds support for Hifiberry ADC8x to the DAC8x (j-schambacher) - dts: bcm2712: add missing brcm,vdm-qos-map to cm5 base dts (Jonathan Bell) - arm64: dts: Prepare for #size-cells = 2 (Phil Elwell) - mailbox: rp1: Don't claim channels in of_xlate (Phil Elwell) - firmware: rp1: Linger on firmware failure (Phil Elwell) - misc: rp1-pio: Error out on incompatible firmware (Phil Elwell) - spi: dw: Wait for idle after TX (Phil Elwell) - configs: Enable Renesas XHCI driver (Nicolai Buchwitz) - Enable CONFIG_NETKIT (Ethan Shold) - misc: rp1-pio: SM_CONFIG_XFER32 = larger DMA bufs (Phil Elwell) - README: show rpi-6.12.y build status (marcone) - overlays: Factor out the common i2c bus selection (Phil Elwell) - overlays: Regularisation and improvements (Phil Elwell) - drivers: media: pci: Update Hailo accelerator device driver to v4.20 (Naushir Patuck) - add shtc3 to i2c-sensors (James Sarrett) - configs: add CONFIG_SENSORS_INA238=m (James Sarrett) - add ina238 to i2c-sensors (James Sarrett) - configs: add CONFIG_SND_SOC_WM8904=m (Phil Elwell) - drm/v3d: Remove `v3d->cpu_job` (Maíra Canal) - drm/v3d: Fix miscellaneous documentation errors (Maíra Canal) - drm/v3d: Add DRM_IOCTL_V3D_PERFMON_SET_GLOBAL (Christian Gmeiner) - drm/v3d: Stop active perfmon if it is being destroyed (Christian Gmeiner) - drm/v3d: Drop allocation of object without mountpoint (Matthias Brugger) - drm/v3d: Expose Super Pages capability (Maíra Canal) - drm/v3d: Add modparam for turning off Big/Super Pages (Maíra Canal) - drm/v3d: Use gemfs/THP in BO creation if available (Maíra Canal) - drm/v3d: Support Big/Super Pages when writing out PTEs (Maíra Canal) - drm/v3d: Flush the MMU before we supply more memory to the binner (Maíra Canal) - drm/vc4: Make v3d paths unavailable on any generation newer than vc4 (Maxime Ripard) - drm/v3d: Reduce the alignment of the node allocation (Maíra Canal) - drm/v3d: Introduce gemfs (Maíra Canal) - drm/v3d: Fix return if scheduler initialization fails (Maíra Canal) - drm/v3d: Use v3d_perfmon_find() (Christian Gmeiner) - dtoverlays: waveshare-panel: Disable new touch controller by default (Dave Stevenson) - drivers: media: pisp_be: Remove unused fields in struct pisp_be_config (Luca Magrone) - drivers: media: pisp_be: Add support for YUV422 planar format (Naushir Patuck) - IMX219: Add 4-lane option to the device tree overlay (Peyton Howe) - media: imx219: Adjust PLL settings based on the number of MIPI lanes (Dave Stevenson) - mmc: bcm2835: Add downstream overclocking support (Phil Elwell) - configs: Switch to the upstream SDHOST driver (Phil Elwell) - bcm2708_fb: Explicitly initialise the IOMEM ops (Phil Elwell) - drm/v3d: CPU job submissions shouldn't affect V3D GPU clock (Jose Maria Casanova Crespo) - mmc: bcm2835-sdhost Observe SWIOTLB memory limit (Phil Elwell) - dts: bcm2711: Don't mark timer regs unconfigured (Phil Elwell) - mmc: use downstream DT property to modify CQE and/or SD CQ behaviour (Jonathan Bell) - mmc: set MMC_QUIRK_KNOWN_WORKING_SD_CQ on Raspberry Pi class A2 cards (Jonathan Bell) - mmc: sd: filter card CQ support based on an allow-list (Jonathan Bell) - DT: bcm2712: override supports-cqe to a cell (Jonathan Bell) - firmware: rp1: Simplify rp1_firmware_get (Phil Elwell) - misc: rp1-pio: Handle probe errors (Phil Elwell) - configs: add CONFIG_CRYPTO_NHPOLY1305_NEON=m (plumbeo) - ASoC: allo-piano-dac-plus: Remove pointless code (Phil Elwell) - ASoC: allo-piano-dac-plus: Fix volume limiting (Phil Elwell) - ASoC: pcm512x: Demote "No SCLK" to debug level (Phil Elwell) - media: i2c: imx415: Link frequencies are not exclusive to num lanes (Dave Stevenson) - media: i2c: imx415: Make HBLANK controllable and in consistent units (Dave Stevenson) - media: i2c: imx415: Add read/write control of VBLANK (Dave Stevenson) - dtoverlays: Add overlay for Sony IMX415 image sensor (Dave Stevenson) - defconfigs: Add IMX415 to all Pi defconfigs (Dave Stevenson) - media: rp1-cfe: Fix up link validation for CFE CFG input (Dave Stevenson) - dts: rp1: PL011 UARTs are actually r1p5 (Phil Elwell) - dts: bcm2712: PL011 UARTs are actually r1p5 (Phil Elwell) - dts: bcm2711: PL011 UARTs are actually r1p5 (Phil Elwell) - PCI: brcmstb: don't use ASPM state defines for register bits (Jonathan Bell) - dtoverlays: Switch imx462 overlay to use the new compatible (Dave Stevenson) - media: imx290: Add module parameter to allow selection of HCG mode (Dave Stevenson) - media: i2c: imx290: Add configuration for IMX462 (Dave Stevenson) - media: dt-bindings: sony,imx290: Add IMX462 to the IMX290 binding (Dave Stevenson) - media: i2c: imx290: Limit analogue gain according to module (Dave Stevenson) - Add and update files for pwm-gpio-fan overlay (Kai-Uwe Herbing) - Update the Issue template (andrum993) - Add Pi 500 and CM5 as a device to bug_report.yml (Nicolai Buchwitz) - Revert "PCI: Warn if no host bridge NUMA node info" (Phil Elwell) - overlays: Add ezsound-6x8iso overlay to README (Stephen Gordon) - overlays: Compile the new overlay (Stephen Gordon) - overlays: Add overlay for ezsound 6x8 soundcard (Stephen Gordon) - docs: pcm3168a: Add DT bindings to force clock consumer mode (Stephen Gordon) - soc: pcm3168a: Add DT binding to force clock consumer mode (Stephen Gordon) - configs: Enable PCM3168A driver (Stephen Gordon) - dts: Add noanthogs parameter to CM4 and CM5 (Phil Elwell) - overlays: Add and document i2c_csi_dsi0 parameters (Phil Elwell) - configs: Enable the WS2812_PIO_RP1 driver (Phil Elwell) - overlays: Add ws2812-pio overlay (Phil Elwell) - misc: Add ws2812-pio-rp1 driver (Phil Elwell) - misc: rp1-pio: Add in-kernel DMA support (Phil Elwell) - misc: rp1-pio: Minor cosmetic tweaks (Phil Elwell) - misc: rp1-pio: Convert floats to 24.8 fixed point (Phil Elwell) - misc: rp1-pio: More logical probe sequence (Phil Elwell) - configs: Restore RP1_PIO after dependency change (Phil Elwell) - overlays: goodix: Allow override i2c address (Renjaya Raga Zenta) - dts: bcm2712-ds: Restore the VGIC interrupt (Phil Elwell) - dtoverlays: Use continuous clock mode for ov9281 (Dave Stevenson) - misc: rp1-pio: Support larger data transfers (Phil Elwell) - dtoverlays: Add override for target-path on I2C overlays (Dave Stevenson) - serial: sc16is7xx: announce support for SER_RS485_RTS_ON_SEND (Hugo Villeneuve) - ASoC: allo-piano-dac-plus: Suppress -517 errors (Phil Elwell) - drm: Validate connector rotation has one bit set in the rotation property (Dave Stevenson) - drm: vc4: txp: Do not allow 24bpp formats when transposing (Dave Stevenson) - ASoC: allo-piano-dac-plus: Fix volume limit locking (Phil Elwell) - dts: overlays: vc4-kms-dpi-generic-overlay: Add "interlaced" property (Nick Hollinghurst) - drm: bridge: panel: Connector to allow interlaced modes (Nick Hollinghurst) - drm/v3d: Correct clock settng calls to new APIs (Dom Cobley) - cgroup: Add cgroup_enable option (Phil Elwell) - dts: bcm2712-ds: Dedup as upstream support expands (Phil Elwell) - overlays: Added waveshare 13.3inch panel support (eng33) - drm: panel: Added waveshare 13.3inch panel (eng33) - input: Add support for no irq to ili210x driver (eng33) - dtoverlays: Add Arducam override for ov9281 (Dave Stevenson) - serial: rpi-fw-uart: Demote debug log messages (Phil Elwell) - Allow setting I²C clock frequency via i2c_arm_baudrate dtparam when using pimidi overlay. (gtrainavicius) - ARM: dts: Remove duplicate tags (Phil Elwell) - dtoverlay: Add an overlay for the Raspberry Pi firmware UART (Tim Gover) - configs: Enable the RPi FW UART driver (Tim Gover) - serial: tty: Add a driver for the RPi firmware UART (Tim Gover) - serial: core: Add the Raspberry Pi firmware UART id (Tim Gover) - raspberrypi-firmware: Add the RPI firmware UART APIs (Tim Gover) - arm64: dts: broadcom: Add dma-names for HDMI audio DMA (Dave Stevenson) - dtoverlays: bcm2712d0 - Don't change vc4 compatible string (Dave Stevenson) - drm/vc4: Cache LBM allocations to avoid double-buffering (Dave Stevenson) - drm/vc4: backport 27e0a194a256 and b3bf19552ea3 (Maíra Canal) - drm/vc4: tests: Introduce a test for LBM buffer size (Maxime Ripard) - drm/vc4: tests: Support a few more plane formats (Maxime Ripard) - drm/vc4: tests: Add helper to add a new plane to a state (Maxime Ripard) - drm/vc4: tests: Add function to lookup a plane for a CRTC (Maxime Ripard) - drm/vc4: tests: Use custom plane state for mock (Maxime Ripard) - drm/vc4: tests: Add tests for BCM2712 PixelValve Muxing (Maxime Ripard) - drm/vc4: tests: Add BCM2712 mock driver (Maxime Ripard) - drm/vc4: tests: Return the allocated output (Maxime Ripard) - drm/vc4: tests: Drop drm parameter for vc4_find_crtc_for_encoder (Maxime Ripard) - drm/vc4: tests: Switch generation mockup to a switch (Maxime Ripard) - drm/vc4: fkms: Add firmware-kms mode (Dave Stevenson) - drm/vc4: Disable the 2pixel/clock odd timings workaround for interlaced (Dom Cobley) - drm/vc4: Remove request for min clocks when hdmi output is disabled (Dom Cobley) - drm/vc4: txp: Add a rotation property to the writeback connector (Dave Stevenson) - drm/vc4: Drop panic priority for writeback connector (Dave Stevenson) - drm/vc4: Do not include writeback conn load in load tracker (Dave Stevenson) - drm/vc4: Assign 32 overlay planes to writeback only (Dave Stevenson) - drm/vc4: Increase number of overlay planes from 16 to 48 (Dave Stevenson) - drm/vc4: hvs: Defer updating the enable_bg_fill until vblank (Dave Stevenson) - drm/vc4: Use the TPZ scaling filter for 1x1 source images (Dave Stevenson) - drm/vc4: Add support for per plane scaling filter selection (Dave Stevenson) - vc4/drm:plane: Make use of chroma siting parameter (Dom Cobley) - drm/vc4: dpi: Add override for RGB order (Dave Stevenson) - drm/vc4: Also power down the PLL core when resetting PHY (Dom Cobley) - drm/vc4: Implement vc6_hdmi_phy_disable (Dom Cobley) - drm/vc4: Add a delay after disabling hdmi phy output (Dom Cobley) - vc4/hdmi: Ignore hotplug interrupt with force_hotplug (Dom Cobley) - drm/vc4_hdmi: Allow hotplug detect to be forced (Dom Cobley) - drm/vc4: hdmi: Add a clear_infoframe hook (Dave Stevenson) - vc4: Add jack detection to HDMI audio driver (David Turner) - drm/vc4: Initialise the tv_mode property default from cmdline_mode. (Dave Stevenson) - drm/vc4: Make VEC progressive modes readily accessible (Mateusz Kwiatkowski) - drm/vc4: Allow setting the TV norm via module parameter (Mateusz Kwiatkowski) - drm: vc4: dsi: enable video and then retry failed transfers (Dave Stevenson) - drm/vc4: dsi: Don't reset the host until post_disable (Dave Stevenson) - drm/vc4: Fixup mode for 7inch panel on DSI0 (Dave Stevenson) - drm/vc4: Add vblank callback to DSI0 to reset FIFO (Dave Stevenson) - drm/vc4: Ensure DSI is enabled for FIFO resets (Dave Stevenson) - drm: vc4: Reset DSI AFE on disable (Dave Stevenson) - drm: vc4: dsi: Clocks should be running before reset (Dave Stevenson) - drm/vc4: Add option to call from crtc to encoder on vblank (Dave Stevenson) - drm: vc4: Block swiotlb bounce buffers being imported as dmabuf (Dave Stevenson) - drm/vc4: Run default client setup for all variants. (Dave Stevenson) - drm/vc4: Run DRM default client setup (Thomas Zimmermann) - drm/vc4: Disable overrun interrupts (Dave Stevenson) - drm/vc4: Add hvs_dlist_allocs debugfs function. (Dave Stevenson) - drm/vc4: hvs: Defer dlist slots deallocation (Maxime Ripard) - arm64: dts: broadcom: Fixup HVS address for downstream size-cells (Dave Stevenson) - drm/vc4: Use phys addresses for slave DMA config (Phil Elwell) - dtoverlays: enable gpu node from vc4-kms-v3d-pi5 (Dave Stevenson) - arm64: dts: broadcom: Fixup downstream DT changes due to DRM merge (Dave Stevenson) - arm64: dts: broadcom: Add DT for D-step version of BCM2712 (Dave Stevenson) - arm64: dts: broadcom: Add display pipeline support to BCM2712 (Dave Stevenson) - arch: arm64: broadcom: Add firmware clocks node (Dave Stevenson) - dt: Disabled vc4 by default on 2712 (Dave Stevenson) - drm/vc4: Drop planes that are completely off-screen or 0 crtc size (Dave Stevenson) - drm/vc4: Enable bg_fill if there are no planes enabled (Dave Stevenson) - drm/vc4: Add additional warn_on for incorrect revisions (Maxime Ripard) - drm/vc4: hdmi: Support 2712 D-step register map (Dave Stevenson) - drm/vc4: plane: Add support for 2712 D-step. (Dave Stevenson) - drm/vc4: hvs: Add in support for 2712 D-step. (Dave Stevenson) - drm/vc4: drv: Add support for 2712 D-step (Dave Stevenson) - drm/vc4: txp: Add BCM2712 MOPLET support (Maxime Ripard) - drm/vc4: txp: Add support for BCM2712 MOP (Maxime Ripard) - drm/vc4: txp: Add a new TXP encoder type (Maxime Ripard) - drm/vc4: txp: Move the encoder type in the variant structure (Maxime Ripard) - drm/vc4: txp: Handle 40-bits DMA Addresses (Maxime Ripard) - drm/vc4: txp: Add horizontal and vertical size offset toggle bit (Maxime Ripard) - drm/vc4: txp: Add byte enable toggle bit (Maxime Ripard) - drm/vc4: txp: Rename TXP data structure (Maxime Ripard) - drm/vc4: txp: Introduce structure to deal with revision differences (Maxime Ripard) - drm/vc4: hdmi: Add support for BCM2712 HDMI controllers (Maxime Ripard) - drm/vc4: crtc: Add support for BCM2712 PixelValves (Maxime Ripard) - drm/vc4: hvs: Add support for BCM2712 HVS (Maxime Ripard) - drm/vc4: drv: Support BCM2712 (Maxime Ripard) - drm/vc4: Fix reading of frame count on GEN5 / Pi4 (Dave Stevenson) - drm/vc4: Use of_device_get_match_data to set generation (Dave Stevenson) - drm/vc4: Use `vc4_perfmon_find()` (Maíra Canal) - drm/vc4: hvs: Enable SCALER_CONTROL early in HVS init (Tim Gover) - drm/vc4: plane: Move the buffer offset out of the vc4_plane_state (Dave Stevenson) - drm/vc4: hvs: Change prototype of __vc4_hvs_alloc to pass registers (Maxime Ripard) - drm/vc4: hvs: Rework LBM alignment (Maxime Ripard) - drm/vc4: plane: Change ptr0_offset to an array (Maxime Ripard) - drm/vc4: hvs: Rename hvs_regs list (Maxime Ripard) - drm/vc4: hvs: Create cob_init function (Maxime Ripard) - drm/vc4: hvs: Create hw_init function (Maxime Ripard) - drm/vc4: hvs: Use switch statement to simplify vc4_hvs_get_fifo_from_output (Maxime Ripard) - drm/vc4: hdmi: use eld_mutex to protect access to connector->eld (Dmitry Baryshkov) - drm/vc4: hvs: Set AXI panic modes for the HVS (Dave Stevenson) - drm/vc4: hdmi: Avoid log spam for audio start failure (Dom Cobley) - drm/vc4: Correct generation check in vc4_hvs_lut_load (Dave Stevenson) - drm/vc4: Match drm_dev_enter and exit calls in vc4_hvs_atomic_flush (Dave Stevenson) - drm/vc4: Match drm_dev_enter and exit calls in vc4_hvs_lut_load (Dave Stevenson) - drm/vc4: Introduce generation number enum (Maxime Ripard) - drm/vc4: hdmi: Increase audio MAI fifo dreq threshold (Dom Cobley) - drm/vc4: hvs: Correct logic on stopping an HVS channel (Dave Stevenson) - drm/vc4: hvs: Remove incorrect limit from hvs_dlist debugfs function (Dave Stevenson) - drm/vc4: hvs: Fix dlist debug not resetting the next entry pointer (Dave Stevenson) - drm/vc4: hdmi: Avoid hang with debug registers when suspended (Dom Cobley) - drm/vc4: hvs: Don't write gamma luts on 2711 (Dave Stevenson) - drm/vc4: hvs: Remove ABORT_ON_EMPTY flag (Dom Cobley) - drm/vc4: plane: YUV planes require vertical scaling to always be enabled (Dave Stevenson) - drm/vc4: crtc: Move assigned_channel to a variable (Maxime Ripard) - drm/vc4: plane: Use return variable in atomic_check (Maxime Ripard) - drm/vc4: plane: Add more debugging for LBM allocation (Maxime Ripard) - drm/vc4: hvs: Print error if we fail an allocation (Maxime Ripard) - drm/vc4: hvs: More logging for dlist generation (Maxime Ripard) - drm/vc4: hdmi: Warn if writing to an unknown HDMI register (Maxime Ripard) - drm/vc4: plane: Add support for YUV444 formats (Dom Cobley) - drm/vc4: crtc: Force trigger of dlist update on margins change (Dave Stevenson) - drm/vc4: plane: Handle fractional coordinates using the phase field (Dom Cobley) - drm/vc4: plane: Keep fractional source coords inside state (Dom Cobley) - dts: bcm2712-ds: Restore gpio-direct to gio_aon (Phil Elwell) - dts: rp1: Re-enable DMA to RP1 UART0 (Phil Elwell) - dts: bcm2712-ds: Restore the A76 PMU declaration (Phil Elwell) - dt: rp1: Link RP1 DMA to the associated clock (Dave Stevenson) - dt: rp1: Use clk_sys for ethernet hclk and pclk (Dave Stevenson) - rp1: clk: Remove CLK_IGNORE_UNUSED flags (Dave Stevenson) - clk: rp1: Add RP1_CLK_DMA. (Dave Stevenson) - dt: arm64: Fixup RP1 ethernet DT configuration (Dave Stevenson) - rp1: clk: Rationalise the use of the CLK_IS_CRITICAL flag (Dave Stevenson) - rp1: clk: Only set PLL_SEC_RST in rp1_pll_divider_off (Dave Stevenson) - net: macb: Add support for Raspberry Pi RP1 ethernet controller (Dave Stevenson) - dt-bindings: net: cdns,macb: Add compatible for Raspberry Pi RP1 (Dave Stevenson) - overlays: qca7000: replace URL with textual hint (Michael Heimpold) - dts: bcm2712-rpi-cm5: Remove inaccessible USB_OC_N (Phil Elwell) - dts: bcm2712-rpi: For CM5IO, i2c_csi_dsi needs to be CAM/DISP1 (Dave Stevenson) - drm: vc4: dsi: Handle the different command FIFO widths (Dave Stevenson) - misc: rp1-pio: Fix parameter checks wihout client (Phil Elwell) - misc/rp1-pio: Fix copy/paste error in pio_rp1.h (Phil Elwell) - media: i2c: imx477: Fix link frequency menu (Dave Stevenson) - Adding pimidi-overlay.dts (Giedrius) - Include snd-pimidi kernel module in Raspberry Pi defconfigs (Giedrius) - Adding Pimidi kernel module. (Giedrius) - drm/connector: hdmi: Attempt YUV422 output if RGB isn't supported (Dave Stevenson) - drm/connector: Initialise max_bpc to the minimum value supported (Dave Stevenson) - overlays: Enable Raspberry Touch 2 rotation with overlay (Just a nerd) - dtoverlays: enable SPI CS active-high (Iker Pedrosa) - drivers: media: pci: Update Hailo accelerator device driver to v4.19 (Naushir Patuck) - configs: enable driver for Vertexcom MSE102X (Michael Heimpold) - overlays: Add pwm-pio overlay (Phil Elwell) - configs: Enable the pwm-pio-rp1 driver (Phil Elwell) - pwm: Add pwm-pio-rp1 driver (Phil Elwell) - dts: bcm2712-rpi: Add the RP1 PIO device (Phil Elwell) - configs: Enable RP1 PIO support (Phil Elwell) - misc: Add RP1 PIO driver (Phil Elwell) - dts: bcm2712-rpi: Add RP1 firmware and mailboxes (Phil Elwell) - firmware: Add an RP1 firmware interface over mbox (Phil Elwell) - mailbox: Add RP1 mailbox support (Phil Elwell) - dmaengine: dw-axi-dmac: Only start idle channels (Phil Elwell) - dtoverlays: Add link-frequency override to imx477/378 overlay (Dave Stevenson) - media: i2c: imx477: Add options for slightly modifying the link freq (Dave Stevenson) - drivers: usb: xhci: set HID bit in streaming endpoint contexts (Jonathan Bell) - serial: pl011: Request a memory width of 1 byte (Phil Elwell) - spi: dw: Let the DMAC set the transfer widths (Phil Elwell) - dmaengine: dw-axi-dmac: Allow client-chosen width (Phil Elwell) - drm: Add a rotation parameter to connectors. (Dave Stevenson) - drm: Add a DRM_MODE_TRANSPOSE option to the DRM rotation property (Dave Stevenson) - drm: Increase plane_mask to 64bit. (Dave Stevenson) - drm: Set non-desktop property to true for writeback and virtual connectors (Dave Stevenson) - iio: humidity: dht11: Allow non-zero decimals (Phil Elwell) - drivers: usb: xhci: prevent a theoretical race on non-coherent platforms (Jonathan Bell) - usb: dwc3: core: add support for setting NAK enhancement bits for FS/HS (Jonathan Bell) - mmc: quirks: add more broken Kingston Canvas Go! SD card date ranges (Jonathan Bell) - mm/vmscan: Maintain TLB coherency in LRU code (Phil Elwell) - drivers: media: bcm2835_isp: Cache LS table dmabuf (Naushir Patuck) - numa/emulation: Check emulated zones around the CMA window (Tvrtko Ursulin) - mm/numa: Allow override of kernel's default NUMA policy (Tvrtko Ursulin) - dma-buf: system_heap: Allow specifying maximum allocation order (Tvrtko Ursulin) - media: i2c: ov5647: Add V4L2_CID_LINK_FREQUENCY control (Dave Stevenson) - media: i2c: ov5647: Use the same PLL config for full, 1080p, and binned modes (Dave Stevenson) - media: i2c: ov5647: Separate out the common registers. (Dave Stevenson) - media: i2c: ov5647: Tidy up mode registers to make the order common (Dave Stevenson) - media: platform: video-mux: Fix mutex locking (Paul Elder) - NotForUpstream: media: video-mux: Propagate controls to source (Kieran Bingham) - drivers: media: imx500: Enable LS correction (Naushir Patuck) - drm: panel: ili9881: Add option to reconfigure setup commands (Dave Stevenson) - drm: panel: ili9881: Correct symmetry on enable/disable return codes (Dave Stevenson) - media: i2c: ov5647: Add control of V4L2_CID_HBLANK (Dave Stevenson) - lib: earlycpio: export symbol find_cpio_data() (Richard Oliver) - media: i2c: Add driver for Sony IMX500 sensor (Richard Oliver) - media: dt-bindings: i2c: Add Sony IMX500 (Richard Oliver) - rtc: pcf8523: Fix oscillator stop bit handling reading from Control_1 (Axel) - Bluetooth: hci_sync: Fix crash on NULL parent (Phil Elwell) - gpiolib: Override gpiochip numbers with DT aliases (Phil Elwell) - hwmon: (adt7410) Add DT compatible strings (Phil Elwell) - spi: dw: Clamp the minimum clock speed (Phil Elwell) - spi: dw: Fix non-DMA transmit-only transfers (Phil Elwell) - sound/soc: dwc-i2s: choose FIFO thresholds based on DMA burst constraints (Jonathan Bell) - DT: bindings: add a dma-maxburst property to snps,designware-i2s (Jonathan Bell) - drivers: dw-axi-dmac: make more sensible choices about memory accesses (Jonathan Bell) - spi: dw: don't immediately kill DMA transfers if an error occurs (Jonathan Bell) - spi: dw: Save bandwidth with the TMOD_RO feature (Phil Elwell) - spi: dw: Save bandwidth with the TMOD_TO feature (Phil Elwell) - pinctrl: rp1: jump through hoops to avoid PCIe latency issues (Jonathan Bell) - media: platform: Move bcm2835-unicam compatible to downstream driver (Dave Stevenson) - media: bcm2835-unicam: Reinstate old downstream driver as legacy (Dave Stevenson) - dt-bindings: clk: rp1: Add clocks representing MIPI DSI byteclock (Nick Hollinghurst) - brcmfmac: support extsae with psk / 1x offloading (Chien-Chia Chen) - brcmfmac: Add "extsae" as an alias for "sae_ext" (Phil Elwell) - brcmfmac: Only match complete feature names (Phil Elwell) - dmaengine: dw-axi-dmac: Honour snps,block-size (Phil Elwell) - spi: Add a driver for the RPI RP2040 GPIO bridge (Richard Oliver) - spi: dt-bindings: Add RPI RP2040 GPIO Bridge (Richard Oliver) - media: pisp_be: Re-introduce video node offset (Naushir Patuck) - media: pisp_be: Re-introduce multi-context support (Jacopo Mondi) - media: pisp-be: Backport the mainline PiSP BE driver (Jacopo Mondi) - staging: vc04_services: vc-sm-cma: Explicitly set DMA mask (Kieran Bingham) - lan78xx: Return tx_lpi_timer even if disabled (Phil Elwell) - lan78xx: Read initial EEE status from DT (Phil Elwell) - media: bcm2835-unicam: Add support for unpacked 14bit Bayer formats (Dave Stevenson) - media: bcm2835-unicam: Add support for 14bit mono sources (Dave Stevenson) - media: bcm2835-unicam: Add support for 12bit mono packed format (Dave Stevenson) - ARM: bcm: Switch board, clk and pinctrl to bcm2711 compatible (Stefan Wahren) - arm: bcm2835: Add bcm2838 compatible string. (Phil Elwell) - staging: vc04_services: vc-sm-cma: Register with vchiq_bus_type (Kieran Bingham) - staging: vc04_services: vc-sm-cma: Drop include Makefile directive (Kieran Bingham) - staging: vc04_services: vc-sm-cma: Remove deprecated header (Kieran Bingham) - staging: vc04_services: Add helpers for vchiq driver data (Umang Jain) - drivers: media: pci: Fix Hailo compile warnings (Phil Elwell) - drivers: media: pci: Add wrapper after removal of follow_pfn (Dom Cobley) - drivers: media: pci: Update Hailo accelerator device driver to v4.18.0 (Naushir Patuck) - drivers: media: pcie: hailo: Fix include paths (Phil Elwell) - drivers: media: pci: Add Hailo accelerator device drivers (Naushir Patuck) - drm/bridge: panel: Name an associated backlight device (Dave Stevenson) - backlight: Add a display name to the core, and a function to set it (Dave Stevenson) - regulator: rpi_panel_v2: Add delay on I2C reads (Dave Stevenson) - regulator: rpi_panel_v2: Add remove and shutdown hooks (Dave Stevenson) - spi: dw: Handle any number of gpiod CS lines (Phil Elwell) - pinctrl: bcm2835: Persist outputs by default (Phil Elwell) - drm/bridge: tc358762: revert move ops to enable (Dave Stevenson) - drm/bridge: tc358762: Program the DPI mode into the chip (Dave Stevenson) - drm/panel: Add and initialise an orientation field to drm_panel from OF (Dave Stevenson) - drivers: media: cfe: Add remap entries for mono formats (Naushir Patuck) - dw-axi-dmac-platform: Avoid trampling with zero length buffer (popcornmix) - media: bcm2835-unicam: Add option for a GPIO to reflect FS/FE timing (Dave Stevenson) - module: Avoid ABI changes when debug info is disabled (Ben Hutchings) - nvmem: raspberrypi: Add nvmem driver for accessing OTP data (Dom Cobley) - i2c: designware: Make the SDA hold time half LCNT (Phil Elwell) - i2c: designware: Add support for bus clear feature (Phil Elwell) - mmc: quirks: add MMC_QUIRK_BROKEN_ERASE for Phison/Integral cards (Jonathan Bell) - mmc: block: disable CQ on SD cards when doing non-Discard erase (Jonathan Bell) - mmc: quirks: disable cache on more known-bad Sandisk card date ranges (Jonathan Bell) - drivers: mmc: disable write-caching on Samsung 2023 model year SD cards (Jonathan Bell) - mmc: don't reference requests after finishing them (Jonathan Bell) - mmc: restrict posted write counts for SD cards in CQ mode (Jonathan Bell) - drivers: mmc: core: handle card-removal when running CQE recovery (Jonathan Bell) - drivers: mmc: sdhci-brcmstb: improve bcm2712 card removal handling (Jonathan Bell) - mmc: sdhci: extend maximum ADMA transfer length to 4MiB (Jonathan Bell) - mmc: sdhci-brcmstb: add hs400_downgrade callback for bcm2712 (Jonathan Bell) - drivers: mmc: handle 1024-byte SD General Info lengths (Jonathan Bell) - drivers: mmc: add debugfs entries for SD extension registers (Jonathan Bell) - drivers: mmc: be more cautious when manipulating Command Queue enable (Jonathan Bell) - drivers: mmc: export SD extension register read/write functions (Jonathan Bell) - drivers: mmc: cqhci: clear CQHCI_CTL if halt fails (Jonathan Bell) - drivers: sdhci-brcmstb: work around mystery CQE CMD_IDLE_TIMER trampling (Jonathan Bell) - drivers: mmc: trigger activity LED when CQE is active (Jonathan Bell) - drivers: mmc: preallocate a block for SD extension register accesses (Jonathan Bell) - drivers: mmc: add SD support for Command Queueing (Jonathan Bell) - mmc: bcm2835-sdhost: use Host Software Queueing mechanism (Jonathan Bell) - brcmfmac: Fix 802.1x (Mike Cui) - brcmfmac: support external SAE authentication in station mode (Chung-Hsien Hsu) - brcmfmac: Fix interoperating DPP and other encryption network access (Kurt Lee) - non-upstream: support DS1 exit firmware re-download (Praveen Babu C) - i2c: mux: Add support for generic base-nr property (Phil Elwell) - regulator: Add a regulator for the new LCD panels (Dave Stevenson) - dt-bindings: add additional RP1 PLL output channels (Jonathan Bell) - Bluetooth: btbcm: Add entry for BCM43439 UART BT (Phil Elwell) - arm64/Kconfig: Don't set DMA_BOUNCE_UNALIGNED_KMALLOC (Phil Elwell) - serial: sc16is7xx: Don't spin if no data received (Phil Elwell) - i2c: designware: Support non-standard bus speeds (Phil Elwell) - i2c: designware: Use SCL rise and fall times in DT (Phil Elwell) - drivers: usb: dwc3: add FS/LS bus instance parkmode disable bit (Jonathan Bell) - spi: bcm2835: Support spi0-0cs and SPI_NO_CS mode (Phil Elwell) - media: i2c: adv7180: Add support for V4L2_CID_LINK_FREQ (Dave Stevenson) - media: i2c: adv7180: Use MEDIA_BUS_FMT_UYVY8_1X16 for CSI2 output (Dave Stevenson) - firmware/psci: Pass given partition number through (Phil Elwell) - media: i2c: Add ROHM BU64754 Camera Autofocus Actuator (Kieran Bingham) - media: dt-bindings: i2c: Add Rohm BU64754 bindings (Kieran Bingham) - dtc update (Phil Elwell) - drm/bridge: display-connector: Select DRM_KMS_HELPER (Dave Stevenson) - media/i2c: ov7251: Switch from V4L2_CID_GAIN to V4L2_CID_ANALOGUE_GAIN (Dave Stevenson) - drivers: thermal: step_wise: add support for hysteresis (Ram Chandrasekar) - xhci: Use more event ring segment table entries (Jonathan Bell) - w1: Disable kernel log spam (Phil Elwell) - gpio-poweroff: Disable the WARN (Phil Elwell) - Add ability to export gpio used by gpio-poweroff (Nick Bulleid) - dt-bindings: mmc: sdhci-of-dwcmhsc: Add Raspberry Pi RP1 support (Jonathan Bell) - drivers: mmc: sdhci: add SPURIOUS_INT_RESP quirk (Jonathan Bell) - dt-bindings: PCI: brcmstb: add optional property - "brcm,tperst-clk-ms" (Jonathan Bell) - drm/connector: Change DRM card alias from underscore to hyphen (Dave Stevenson) - drm/fb-helper: Look up preferred fbdev node number from DT (Dave Stevenson) - fbdev: Allow client to request a particular /dev/fbN node (Dave Stevenson) - media: i2c: ov9282: Read chip ID via 2 reads (Dave Stevenson) - drm: Look for an alias for the displays to use as the DRM device name (Dave Stevenson) - media: i2c: Move Kconfig entry for IMX477 to the camera sensor section (Naushir Patuck) - dt-bindings: display: Add BCM2712 KMS driver bindings (Maxime Ripard) - dt-bindings: display: Add BCM2712 MOPLET bindings (Maxime Ripard) - dt-bindings: display: Add BCM2712 MOP bindings (Maxime Ripard) - dt-bindings: display: Add BCM2712 PixelValve bindings (Maxime Ripard) - dt-bindings: display: Add BCM2712 HVS bindings (Maxime Ripard) - dt-bindings: display: Add BCM2712 HDMI bindings (Maxime Ripard) - dt-bindings: rtc: new binding for Raspberry Pi RTC driver (Dom Cobley) - rtc: rtc-rpi: Add simple RTC driver for Raspberry Pi (Dom Cobley) - irqchip/irq-brcmstb-l2: Add config for 2711 controller (Dom Cobley) - drivers: iommu: Add BCM2712 IOMMU (Nick Hollinghurst) - dmaengine: bcm2835: Rename to_bcm2711_cbaddr to to_40bit_cbaddr (Dom Cobley) - dmaengine: bcm2835: HACK: Support DMA-Lite channels (Maxime Ripard) - dmaengine: bcm2835: Add BCM2712 support (Phil Elwell) - dt-bindings: gpu: v3d: Add BCM2712 to compatibility list (Iago Toral Quiroga) - drm/v3d: add brcm,2712-v3d as a compatible V3D device (Iago Toral Quiroga) - spi: spi-gpio: Implement spidelay when requested bit rate <= 1 Mbps (Nick Hollinghurst) - spi: gpio: Fix spi-gpio to correctly implement sck-idle-input (Nick Hollinghurst) - soc: bcm: bcm2835-power: Add support for BCM2712 (Phil Elwell) - mfd: bcm2835-pm: Add support for BCM2712 (Phil Elwell) - hwmon: Add RP1 ADC and temperature driver (Phil Elwell) - dt-bindings: net: cdns,macb: AXI tuning properties (Phil Elwell) - media: rp1: Add CFE (Camera Front End) support (Naushir Patuck) - drm: Add RP1 VEC driver (Nick Hollinghurst) - drm: Add RP1 DPI driver (Nick Hollinghurst) - drm: Add RP1 DSI driver (Nick Hollinghurst) - pwm: Add support for RP1 PWM (Phil Elwell) - spi: dw: Handle combined tx and rx messages (Phil Elwell) - dmaengine: dw-axi-dmac: Fixes for RP1 (Phil Elwell) - i2c: designware: Add SMBUS quick command support (Phil Elwell) - clk: rp1: Add sdio-clk driver (Phil Elwell) - mmc: sdhci-of-dwcmshc: define sdio timeout clocks (Liam Fraser) - serial: pl011: rp1 uart support (Phil Elwell) - pinctrl: Add rp1 driver (Phil Elwell) - dt-bindings: pinctrl: Add bindings for Raspberry Pi RP1 (Phil Elwell) - clk: Add rp1 clock driver (Phil Elwell) - dt-bindings: clock: Add bindings for Raspberry Pi RP1 (Phil Elwell) - mfd: Add rp1 driver (Phil Elwell) - dt-binding: mfd: Add binding for Raspberry Pi RP1 (Phil Elwell) - V4L2: Add PiSP compressed formats to V4L2 (Naushir Patuck) - V4L2: Add PiSP opaque formats to V4L2 (Naushir Patuck) - usb: dwc3: Set DMA and coherent masks early (Jonathan Bell) - net: macb: Also set DMA coherent mask (Phil Elwell) - reset: reset-brcmstb-rescal: Support shared use (Phil Elwell) - irqchip: irq-bcm2712-mip: Support for 2712's MIP (Phil Elwell) - sdhci: Add SD Express hook (Phil Elwell) - mmc: brcmstb: add support for BCM2712 (Ulf Hansson) - pinctrl: bcm2712 pinctrl/pinconf driver (Phil Elwell) - Allow RESET_BRCMSTB on ARCH_BCM2835 (Phil Elwell) - gpio_brcmstb: Allow to build for ARCH_BCM2835 (Dom Cobley) - rtc: rv3028: Add backup switchover mode support (Phil Howard) - bcm2835-unicam: hacks to allow it to build (Dom Cobley) - drm/ili9486: Resolve clash in spi_device_id names (Dave Stevenson) - cfg80211: ship debian certificates as hex files (Nicolai Buchwitz) - usb: xhci: add XHCI_VLI_HUB_TT_QUIRK (Jonathan Bell) - usb: xhci: add VLI_SS_BULK_OUT_BUG quirk (Jonathan Bell) - xhci: quirks: add link TRB quirk for VL805 (Jonathan Bell) - drivers: media: bcm2835_unicam: Improve frame sequence count handling (Naushir Patuck) - serial: sc16is7xx: Read modem line state at startup (Phil Elwell) - pps: Compatibility hack should be X86-specific (Phil Elwell) - i2c-bcm2835: Implement I2C_M_IGNORE_NAK (Dave Stevenson) - i2c-bcm2835: Do not abort transfers on ERR if still active (Dave Stevenson) - i2c-bcm2835: Flush FIFOs cleanly on error (Dave Stevenson) - spi: bcm2835: Use phys addresses for slave DMA config (Phil Elwell) - mmc: bcm2835: Use phys addresses for slave DMA config (Phil Elwell) - pinctrl: bcm2835: Workaround for edge IRQ loss (Phil Elwell) - Bluetooth: hci_bcm: Add more invalid BDADDRs (Phil Elwell) - Bluetooth: hci_sync: Add fallback-bd-address prop (Phil Elwell) - serial: 8250: Add NOMSI bug for bcm2835aux (Phil Elwell) - input: goodix: Add option to poll instead of relying on IRQ line (Dave Stevenson) - media: bcm2835-unicam: Start and stop media_pipeline with same node (Dave Stevenson) - dt-bindings: media: i2c: Replace IMX708 sensor binding documentation file (Naushir Patuck) - fbdev: Don't cancel deferred work if pagelist empty (Phil Elwell) - hwrng: bcm2835 - sleep more intelligently (Phil Elwell) - media: i2c: imx219: Correct the minimum vblanking value (David Plowman) - iio: light: veml6070: Add DT compatible string (Phil Elwell) - iio: light: tsl4531: Add DT compatible string (Phil Elwell) - hwmon: (sht3x) Add DT compatible string (Phil Elwell) - rtc: ds3232: Add DT compatible string for ds3234 (Phil Elwell) - hwmon: (ds1621) Add DT compatible strings (Phil Elwell) - hwmon: (aht10): Add DT compatible string (Phil Elwell) - gpio: pca953x: Add ti,tca9554 compatible string (Phil Elwell) - iio: adc: mcp3422: Add correct compatible strings (Phil Elwell) - media: bcm2835-unicam: Add support for RAW16 formats (Dave Stevenson) - media: bcm2835-unicam: Use mipi-csi2.h header for data type values (Dave Stevenson) - media/i2c: Add a driver for the Sony IMX708 image sensor (Nick Hollinghurst) - dtbindings: media: i2c: Add IMX708 CMOS sensor binding (Dave Stevenson) - media: dw9807-vcm: Smooth the first user movement of the lens (Dave Stevenson) - media: dw9807-vcm: Add regulator support to the driver (Dave Stevenson) - media: dt-bindings: Add regulator to dw9807-vcm (Dave Stevenson) - media: dw9807-vcm: Add support for DW9817 bidirectional VCM driver (Dave Stevenson) - media: dt-bindings: Add DW9817 to DW9807 binding (Dave Stevenson) - net: bcmgenet: Add 'eee' module parameter (Phil Elwell) - media: i2c: ov7251: Add module param to select ext trig mode (Dave Stevenson) - media: adv7180: Nasty hack to allow input selection. (Dave Stevenson) - media: bcm2835-unicam: Fix up start/stop api change (Dom Cobley) - media: bcm2835-unicam: Fix for possible dummy buffer overrun (Naushir Patuck) - media: video-mux: Read CSI2 config from FW, and pass to receiver (Dave Stevenson) - media: bcm2835-unicam: Correctly handle FS + FE ISR condtion (Naushir Patuck) - Populate phy driver block for BCM54213PE (Jonathan Lemon) - Add HDMI1 facility to the driver. (Dom Cobley) - media: i2c: Add driver of Arducam 64MP camera (Lee Jackson) - media: dt-bindings: media: i2c: Add Arducam 64MP CMOS sensor binding (Lee Jackson) - random: do not use jump labels before they are initialized (Jason A. Donenfeld) - vc04_services: vchiq-mmal: Add defines for mmal_es_format flags (Dave Stevenson) - hwmon: emc2305: fixups for driver submitted to mailing lists (Phil Elwell) - dt-bindings: hwmon: add microchip,emc2305.yaml dt binding description. (Michael Shych) - thermal: broadcom: Use dev_err_probe to suppress defer errors (Dave Stevenson) - media: i2c: Add driver of Arducam Pivariety series camera (Lee Jackson) - media: dt-bindings: media: i2c: Add Arducam Pivariety Series CMOS sensor binding (Lee Jackson) - dt-bindings: vendor-prefixes: Add Arducam (Lee Jackson) - tpm_tis_spi_main: Force probe routine to run synchronously with driver and device registration when IMA is enabled (Scovotto Davide) - mm,page_alloc,cma: introduce a customisable threshold for allocating pages in cma (David Plowman) - media: i2c: ov5647: Use v4l2_async_register_subdev_sensor for lens binding (Dave Stevenson) - media: i2c: Add driver for AD5398 VCM lens driver (Dave Stevenson) - dt-bindings: media: i2c: Add binding for ad5398 VCM (Dave Stevenson) - media/i2c: Add driver for Omnivision OV2311 (Dave Stevenson) - media: i2c: ov7251: Reinstate setting ov7251_global_init_setting (Dave Stevenson) - media: bcm2835-unicam: Handle a repeated frame start with no end (Dave Stevenson) - spi: gpio: Add sck-idle-input property (Phil Elwell) - bindings: Add sck-idle-input to spi-gpio (Phil Elwell) - i2c: bcm2835: Make clock-stretch timeout configurable (Alex Crawford) - media: bcm2835-unicam: Set ret on error path in unicam_async_complete() (Nathan Chancellor) - drivers: bcm2835_unicam: Disable trigger mode operation (Naushir Patuck) - power: rpi-poe: Add option of being created by MFD or FW (Dave Stevenson) - power: rpi-poe: Drop CURRENT_AVG as it is not hardware averaged (Dave Stevenson) - pwm: raspberrypi-poe: Add option of being created by MFD or FW (Dave Stevenson) - mfd: simple-mfd-i2c: Add configuration for RPi POE HAT (Dave Stevenson) - uapi/v4l2-controls: Reset V4L2_CID_USER_BCM2835_ISP_BASE to same as 5.10 (Dave Stevenson) - media: i2c: ov7251: Make the enable GPIO optional. (Dave Stevenson) - media: i2c: ov5647: Add support for regulator control. (Dave Stevenson) - rtc: pcf8523: Fix oscillator stop bit handling (Phil Elwell) - regulator/rpi-panel-attiny: Don't read the LCD power status (Dave Stevenson) - drivers: bcm2835_unicam: Add logging message when a frame is dropped. (Naushir Patuck) - spi: spidev: Restore loading from Device Tree (Phil Elwell) - media: i2c: ov5647: Support HFLIP and VFLIP (David Plowman) - brcmfmac: Don't promote INFO logging to ERR (Phil Elwell) - staging/bcm2835-camera: Add support for MPEG_VIDEO_FORCE_KEY_FRAME (Gergo Koteles) - staging/bcm2835-camera: Add support for H264_MIN_QP, H264_MAX_QP (soyer) - media/bcm2835-unicam: Add support for configuration via MC API (Dave Stevenson) - media/bcm2835-unicam: Parse pad numbers correctly (Dave Stevenson) - media: i2c: ov5647: Sensor should report RAW color space (David Plowman) - drivers/gpio: Add a driver that wraps the PWM API as a GPIO controller (Dave Stevenson) - hwmon: (pwm-fan) Add fan speed register support (Phil Elwell) - staging: mmal-vchiq: Reset buffers_with_vpu on port_enable (Dave Stevenson) - staging/mmal-vchiq: Add module parameter to enable logging. (Dave Stevenson) - Add Raspberry Pi PoE+ HAT support (Serge Schneider) - staging/vchiq-mmal: Add the deinterlace image effects enums (Dave Stevenson) - staging/vchiq-mmal: Add parameters for interlaced video support (Dave Stevenson) - staging/vchiq-mmal: Add buffer flags for interlaced video (Dave Stevenson) - dt-bindings: display: panel-dsi bindings (Timon Skerutsch) - dt-bindings: display: simple: add Geekworm MZP280 Panel (Chris Morgan) - dt-bindings: vendor-prefixes: Add Geekworm (Chris Morgan) - drm/panel: Add panel driver for Waveshare DSI touchscreens (Dave Stevenson) - drm/panel: Add panel driver for TDO Y17B based panels (Dave Stevenson) - dt-bindings: ili9881c: add compatible string for new panels (Dave Stevenson) - Extending ili9881c driver support for nwe080 panel (Dom Cobley) - drm/panel: jdi-lt070me05000: Use gpiod_set_value_cansleep (Dave Stevenson) - drm/panel-simple: Add a timing for the Raspberry Pi 7" panel (Dave Stevenson) - drm/panel/raspberrypi-touchscreen: Use independent I2C actions with delay. (Dave Stevenson) - media: i2c: ov7251: Add fwnode properties controls (Dave Stevenson) - media: bcm2835-unicam: Forward input status from subdevice (Jakub Vaněk) - media: i2c: ov5647: Fix v4l2-compliance failure subscribing to events (David Plowman) - media: i2c: ov5647: Correct minimum VBLANK value (David Plowman) - media: i2c: ov5647: Correct pixel array offset (David Plowman) - staging/bcm2835-camera: Add support for H264 levels 4.1 and 4.2 (Dave Stevenson) - staging: fbtft: Add minipitft13 variant (Phil Elwell) - staging/bcm2835-camera: Add support for DMABUFs (Dave Stevenson) - media: i2c: ov5647: Parse and register properties (Laurent Pinchart) - media: ov5647: Fix return codes from ov5647_write/ov5647_read functions. (David Plowman) - Assign crypto aliases to different AES implementation modules (Ben Avison) - media: bcm2835-unicam: Fix bug in buffer swapping logic (Naushir Patuck) - spi: bcm2835: Workaround/fix for zero-length transfers (Phil Elwell) - uapi: bcm2835-isp: Add colour denoise configuration (Naushir Patuck) - staging/vc04_services: Add additional unpacked raw formats (Dave Stevenson) - media: bcm2835-unicam: Clear clock state when stopping streaming (Naushir Patuck) - media: bcm2835-unicam: Return early from stop_streaming() if stopped (Naushir Patuck) - media: bcm2835-unicam: Correctly handle error propagation for stream on (Naushir Patuck) - dt-bindings: Add compatible for BCM2711 DSI1 (Dave Stevenson) - Input: edt-ft5x06: Poll the device if no interrupt is configured. (Dave Stevenson) - firmware: raspberrypi: Add support for tryonce reboot flag (Tim Gover) - watchdog: bcm2835: Ignore params after the partition number (Tim Gover) - gpio: Add gpio-fsm driver (Phil Elwell) - staging: vc04_services: ISP: Add a more complex ISP processing component (Naushir Patuck) - uapi: bcm2835-isp: Add bcm2835-isp uapi header file (Dave Stevenson) - staging: vc04_services: Add a V4L2 M2M codec driver (Dave Stevenson) - staging: mmal-vchiq: Use vc-sm-cma to support zero copy (Dave Stevenson) - staging: mmal-vchiq: Add monochrome image formats (Dave Stevenson) - staging: vchiq-mmal: Add support for 14bit Bayer (Dave Stevenson) - staging: vc04_services: Add new vc-sm-cma driver (Dave Stevenson) - staging: bcm2835-camera: Replace deprecated V4L2_PIX_FMT_BGR32 (Dave Stevenson) - brcmfmac: Increase power saving delay to 2s (Phil Elwell) - staging/fbtft: Add support for display variants (Phil Elwell) - media: bcm2835-unicam: change minimum number of vb2_queue buffers to 1 (David Plowman) - media: bcm2835-unicam: Retain packing information on G_FMT (Dave Stevenson) - media: bcm2835-unicam: Fixup review comments from Hans. (Dave Stevenson) - media: bcm2835: unicam: Fix uninitialized warning (Jacko Dirks) - media: bcm2835-unicam: Always service interrupts (Dave Stevenson) - media: bcm2835-unicam: Drop WARN on uing direct cache alias (Dave Stevenson) - leds: Add the actpwr trigger (Phil Elwell) - dt-bindings: bcm2835-unicam: Update documentation with new clock params (Naushir Patuck) - media: bcm2835: unicam: Set VPU min clock freq to 250Mhz. (Naushir Patuck) - media: bcm2835-unicam: Ensure type is VIDEO_CAPTURE in [g|s]_selection (Dave Stevenson) - media: bcm2835-unicam: Reinstate V4L2_CAP_READWRITE in the caps (Dave Stevenson) - serial: 8250: bcm2835aux - defer if clock is zero (Phil Elwell) - media: bcm2835-unicam: Avoid gcc warning over {0} on endpoint (Dave Stevenson) - media: bcm2835-unicam: Add support for get_mbus_config to set num lanes (Dave Stevenson) - media: bcm2835-unicam: Driver for CCP2/CSI2 camera interface (Naushir Patuck) - brcmfmac: Prefer a ccode from OTP over nvram file (Phil Elwell) - gpiolib: Don't prevent IRQ usage of output GPIOs (Phil Elwell) - staging:vc04_services: bcm2835-camera: Request headers with I-frame (Dave Stevenson) - staging: vc04_services: mmal-vchiq: Update parameters list (Dave Stevenson) - media: uapi: v4l-ctrls: Add CID base for the bcm2835-isp driver (Naushir Patuck) - media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type (Naushir Patuck) - media: uapi: Add MEDIA_BUS_FMT_SENSOR_DATA media bus format (Naushir Patuck) - media: uapi: v4l2-core: Add sensor ancillary data V4L2 foucc type. (Naushir Patuck) - spi: Force CS_HIGH if GPIO descriptors are used (Phil Elwell) - staging: media: rpivid: Add Raspberry Pi V4L2 H265 decoder (John Cox) - RFC: media: Add media_request_{pin,unpin} API (Ezequiel Garcia) - media: dt-bindings: media: Add binding for the Raspberry PI HEVC decoder (Dave Stevenson) - media: videodev2.h: Add a format for column YUV4:2:0 modes (Dave Stevenson) - bcmgenet: Disable skip_umac_reset by default (popcornmix) - dt-bindings: pci: Add DT docs for Brcmstb PCIe device (Jim Quinlan) - of: overlay: Correct symbol path fixups (Phil Elwell) - pinctrl: bcm2835: Remove gpiochip on error (Phil Elwell) - staging: vchiq: Load bcm2835_isp driver from vchiq (Naushir Patuck) - staging: vchiq_arm: Usa a DMA pool for small bulks (detule) - staging: vchiq_arm: Set up dma ranges on child devices (Dave Stevenson) - net: phy: BCM54210PE does not support PTP (Phil Elwell) - net: phy: broadcom: optionally enable link-down powersave based on DT (Jonathan Bell) - phy: broadcom: Add bcm54213pe configuration (Phil Elwell) - phy: broadcom: split out the BCM54213PE from the BCM54210E IDs (Jonathan Bell) - net: phy: broadcom: Allow ethernet LED mode to be set via device tree (James Hughes) - staging: vchiq_arm: Register bcm2835-codec as a platform driver (Dave Stevenson) - staging: vchiq_arm: Register vcsm-cma as a platform driver (Dave Stevenson) - drm/v3d: Suppress all but the first MMU error (Phil Elwell) - media: i2c: Add a driver for the Infineon IRS1125 depth sensor (Markus Proeller) - dt-bindings: Add binding for the Infineon IRS1125 sensor (Markus Proeller) - media: v4l2: Add Greyworld AWB control name (John Cox) - staging: bcm2835-camera: Add greyworld AWB mode (Dave Stevenson) - v4l2: Add a Greyworld AWB mode. (Dave Stevenson) - Documentation: devicetree: Add documentation for imx378 sensor (David Plowman) - media: i2c: imx296: Adjust cropping limits (Naushir Patuck) - media: i2c: imx296: Add horizontal/vertical flip support (Naushir Patuck) - media: i2c: imx296: Set a 1 frame gain delay (Naushir Patuck) - media: i2c: imx296: Add helper for hblank control (Naushir Patuck) - media: i2c: imx296: Get sensor crop working (Naushir Patuck) - media: i2c: imx296: Updated register setting to fix Fast Trigger (Nick Hollinghurst) - drivers: media: i2c: imx296,imx477: Configure tigger_mode every time (Nick Hollinghurst) - drivers: media: imx296: Updated imx296 driver for external trigger (Ben Benson) - drivers: media: imx296: Disable 2x2 binned mode (Naushir Patuck) - media: i2c: imx519: Support for the Sony IMX519 sensor (Lee Jackson) - media: i2c: imx477: Support for the Sony IMX477 sensor (Naushir Patuck) - arch/arm64: Add Revision, Serial, Model to cpuinfo (Phil Elwell) - arch/arm: Add model string to cpuinfo (Phil Elwell) - net: bcmgenet: Workaround #2 for Pi4 Ethernet fail (Phil Elwell) - hid: usb: Add device quirks for Freeway Airmouse T3 and MX3 (Jonathan Bell) - drm/v3d: Switch clock setting to new api (Dom Cobley) - drm/v3d: Clock V3D down when not in use. (Dom Cobley) - i2c: bcm2835: Set clock-stretch timeout to 35ms (Phil Elwell) - ARM: bcm: Backport BCM2711 support from upstream (Phil Elwell) - usb: xhci: drop and add the endpoint context in xhci_fixup_endpoint() (Jonathan Bell) - usb: xhci: workaround for bogus SET_DEQ_PENDING endpoint state (Jonathan Bell) - xhci: implement xhci_fixup_endpoint for interval adjustments (Jonathan Bell) - usb: add plumbing for updating interrupt endpoint interval state (Jonathan Bell) - net: genet: enable link energy detect powerdown for external PHYs (Jonathan Bell) - bcmgenet: Better coalescing parameter defaults (Phil Elwell) - bcmgenet: constrain max DMA burst length (Jonathan Bell) - hwrng: iproc-rng200: Add BCM2838 support (Stefan Wahren) - arm: bcm2835: DMA can only address 1GB (Phil Elwell) - arm: bcm2835: Fix FIQ early ioremap (Phil Elwell) - w1: w1-gpio: Make GPIO an output for strong pullup (Phil Elwell) - staging: mmal-vchiq: Fix memory leak in error path (Dave Stevenson) - staging: mmal-vchiq: Free the event context for control ports (Dave Stevenson) - staging: mmal-vchiq: Update mmal_parameters.h with recently defined params (Dave Stevenson) - staging: mmal_vchiq: Add in the Bayer encoding formats (Dave Stevenson) - staging: mmal-vchiq: Fix client_component for 64 bit kernel (Dave Stevenson) - media: videobuf2: Allow exporting of a struct dmabuf (Dave Stevenson) - staging: vc04_services: Support sending data to MMAL ports (Dave Stevenson) - staging: mmal-vchiq: Add support for event callbacks. (Dave Stevenson) - staging: mmal-vchiq: Avoid use of bool in structures (Dave Stevenson) - media: tc358743: Return an appropriate colorspace from tc358743_set_fmt (Dave Stevenson) - dt-bindings: Document BCM283x CSI2/CCP2 receiver (Dave Stevenson) - media: videodev2: Add helper defines for printing FOURCCs (Dave Stevenson) - media: adv7180: Add YPrPb support for ADV7282M (Dave Stevenson) - media: adv7180: Default to the first valid input (Dave Stevenson) - media: tc358743: Check I2C succeeded during probe. (Dave Stevenson) - media: tc358743: Add support for 972Mbit/s link freq. (Dave Stevenson) - media: tc358743: Increase FIFO level to 374. (Dave Stevenson) - lan78xx: Enable LEDs and auto-negotiation (Phil Elwell) - Patching lan78xx for SOF_TIMESTAMPING_TX_SOFTWARE support (tiagofreire-pt) - net: lan78xx: Ack pending PHY ints when resetting (Phil Elwell) - lan78xx: Debounce link events to minimize poll storm (Joshua Emele) - net: lan78xx: Support auto-downshift to 100Mb/s (Phil Elwell) - net: lan78xx: Disable TCP Segmentation Offload (TSO) (Dave Stevenson) - firmware: raspberrypi: Report the fw variant during probe (Dave Stevenson) - firmware: raspberrypi: Add backward compatible get_throttled (Stefan Wahren) - cxd2880: CXD2880_SPI_DRV should select DVB_CXD2880 with MEDIA_SUBDRV_AUTOSELECT (popcornmix) - brcmfmac: Re-enable firmware roaming support (Phil Elwell) - irqchip: irq-bcm2835: Calc. FIQ_START at boot-time (Phil Elwell) - firmware/raspberrypi: Notify firmware of a reboot (Phil Elwell) - hid: Reduce default mouse polling interval to 60Hz (popcornmix) - added capture_clear option to pps-gpio via dtoverlay (#2433) (hdoverobinson) - i2c-gpio: Also set bus numbers from reg property (Phil Elwell) - ARM: Activate FIQs to avoid __irq_startup warnings (Phil Elwell) - dwc-otg: FIQ: Fix "bad mode in data abort handler" (Phil Elwell) - ARM: bcm2835: Set Serial number and Revision (Noralf Trønnes) - AXI performance monitor driver (#2222) (James Hughes) - ARM64: Force hardware emulation of deprecated instructions. (Michael Zoran) - ARM64: Round-Robin dispatch IRQs between CPUs. (Michael Zoran) - hci_h5: Don't send conf_req when ACTIVE (Phil Elwell) - brcm: adds support for BCM43341 wifi (Cheong2K) - OF: DT-Overlay configfs interface (Pantelis Antoniou) - bcm2835-virtgpio: Virtual GPIO driver (popcornmix) - rpi_display: add backlight driver and overlay (P33M) - ASoC: Add support for all the downstream rpi sound card drivers (Florian Meier) - Input: sensehat-joystick : Revert to downstream keymap (Dave Stevenson) - drivers/mfd: sensehat: Add Raspberry Pi Sense HAT to simple_mfd_i2c (Charles Mirabile) - mfd: Add Raspberry Pi Sense HAT core driver (Phil Elwell) - Improve __copy_to_user and __copy_from_user performance (popcornmix) - Added Device IDs for August DVB-T 205 (popcornmix) - leds: Add the "input" trigger, for pwr_led (Phil Elwell) - firmware: bcm2835: Support ARCH_BCM270x (Noralf Trønnes) - drivers: char: add generic gpiomem driver (Jonathan Bell) - char: broadcom: Add vcio module (Noralf Trønnes) - char: Add broadcom char drivers back to build files (popcornmix) - Add Chris Boot's i2c driver (popcornmix) - Add SMI driver (Luke Wren) - vc_mem: Add vc_mem driver for querying firmware memory addresses (popcornmix) - Adding bcm2835-sdhost driver, and an overlay to enable it (Phil Elwell) - mmc: block: Don't do single-sector reads during recovery (Jonathan Bell) - MMC: added alternative MMC driver (gellert) - mmc: core: Add SD card quirk for broken poweroff notification (Keita Aihara) - dmaengine: Add support for BCM2708 (Florian Meier) - bcm2708_fb: Add framebuffer driver (popcornmix) - Add dwc_otg driver (popcornmix) - Main bcm2708/bcm2709 linux port (popcornmix) - tty: amba-pl011: Avoid rare write-when-full error (Phil Elwell) - amba_pl011: Add cts-event-workaround DT property (Phil Elwell) - amba_pl011: Insert mb() for correct FIFO handling (Phil Elwell) - irqchip: irq-bcm2836: Remove regmap and syscon use (Phil Elwell) - i2c: bcm2835: Add debug support (Noralf Trønnes) - Update vfpmodule.c (Claggy3) - bcm2835-rng: Avoid initialising if already enabled (popcornmix) - reboot: Use power off rather than busy spinning when halt is requested (popcornmix) - watchdog: bcm2835: Support setting reboot partition (Noralf Trønnes) - rtc: Add SPI alias for pcf2123 driver (Phil Elwell) - dmaengine: bcm2835: Load driver early and support legacy API (Noralf Trønnes) - spi: spidev: Completely disable the spidev warning (Dom Cobley) - irqchip: irq-bcm2835: Add 2836 FIQ support (Noralf Trønnes) - irqchip: bcm2835: Add FIQ support (Noralf Trønnes) - irq-bcm2836: Avoid "Invalid trigger warning" (Phil Elwell) - Protect __release_resource against resources without parents (Phil Elwell) - Allow mac address to be set in smsc95xx (popcornmix) - smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default (Sam Nazarko) - cache: export clean and invalidate (popcornmix) - clk-bcm2835: Use PLLD for DSI0 HS clock (Dave Stevenson) - clk-bcm2835: Disable v3d clock (popcornmix) - clk-bcm2835: Avoid null pointer exception (popcornmix) - clk: bcm2835: Allow reparenting leaf clocks while they're running. (Eric Anholt) - clk: bcm2835: Add support for setting leaf clock rates while running. (Eric Anholt) - clk-bcm2835: Don't wait for pllh lock (Phil Elwell) - clk-bcm2835: Read max core clock from firmware (Phil Elwell) - clk-bcm2835: Add claim-clocks property (Phil Elwell) - clk-bcm2835: Mark used PLLs and dividers CRITICAL (Phil Elwell) - clk: clk-bcm2835: Register the clocks early during the boot process (Martin Sperl) - clk-raspberrypi: Add ISP to exported clocks (Dom Cobley) - clk: bcm: rpi: Create helper to retrieve private data (Maxime Ripard) - clk-raspberrypi: Allow cpufreq driver to also adjust gpu clocks (popcornmix) - config: Add default configs (popcornmix) - BCM2708: Add core Device Tree support (Dom Cobley) - arm64: setup: Fix build warning (Maxime Ripard) - drm/atomic: If margins are updated, update all planes. (Dave Stevenson) - drm: Add chroma siting properties (Dom Cobley) - drm/bridge: tc358762: Ignore EPROBE_DEFER when logging errors (Dave Stevenson) - drm/dsi: Document the meaning and spec references for MIPI_DSI_MODE_* (Dave Stevenson) - drm: Check whether the gamma lut has changed before updating (Dave Stevenson) - drm/atomic: Don't fixup modes that haven't been reset (Dave Stevenson) - raspberrypi-firmware: Update mailbox commands (Dom Cobley) - Revert "usb: phy: generic: Get the vbus supply" (Phil Elwell) - Revert "ARM: dts: bcm2711: Add BCM2711 xHCI support" (Dom Cobley) - Revert "net: bcmgenet: Request APD, DLL disable and IDDQ-SR" (Phil Elwell) - Revert "spi: spidev: Fix CS polarity if GPIO descriptors are used" (Phil Elwell) - Use GitHubs issue form for bug reports (Andreas Blaesius) - README: Add README.md with CI kernel build status tags (Dave Stevenson) - workflows: We all love checkpatch, so add it to the CI workflows (Dave Stevenson) * Wed Sep 03 2025 Scott Weaver [6.12.0-126.el10] - platform/x86/amd: pmf: Simplify error flow in amd_pmf_init_smart_pc() (Steve Best) [RHEL-104142] - platform/x86/amd: pmf: Prevent amd_pmf_tee_deinit() from running twice (Steve Best) [RHEL-104142] - platform/x86/amd: pmf: Use device managed allocations (Steve Best) [RHEL-104142] - drivers/platform/x86/amd: pmf: Check for invalid Smart PC Policies (Steve Best) [RHEL-104142] - drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies (Steve Best) [RHEL-104142] - platform/x86: amd: pmf: Fix STT limits (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: convert timeouts to secs_to_jiffies() (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: fix cleanup in amd_pmf_init_smart_pc() (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Update PMF Driver for Compatibility with new PMF-TA (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Propagate PMF-TA return codes (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Initialize and clean up `cb_mutex` (Steve Best) [RHEL-104142] - platform/x86: amd: Use *-y instead of *-objs in Makefiles [partial] (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Get SRA sensor data from AMD SFH driver (Steve Best) [RHEL-104142] - platform/x86/amd: pmf: Switch to guard(mutex) (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Enable Custom BIOS Inputs for PMF-TA (Steve Best) [RHEL-104142] - platform/x86/amd: pmf: Drop all quirks (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Switch to platform_get_resource() and devm_ioremap_resource() (Steve Best) [RHEL-104142] - platform/x86/amd/pmf: Use dev_err_probe() to simplify error handling (Steve Best) [RHEL-104142] - netfs: Fix unbuffered write error handling (Paulo Alcantara) [RHEL-104442] - redhat/configs: enable CONFIG_TCG_ARM_CRB_FFA on aarch64 (Marcin Juszkiewicz) [RHEL-102692] - tpm_crb_ffa: Remove unused export (Marcin Juszkiewicz) [RHEL-102692] - tpm_crb: ffa_tpm: Implement driver compliant to CRB over FF-A (Marcin Juszkiewicz) [RHEL-102692] - tpm_crb: Add support for the ARM FF-A start method (Marcin Juszkiewicz) [RHEL-102692] - ACPICA: Add start method for ARM FF-A (Marcin Juszkiewicz) [RHEL-102692] - Documentation: tpm: Add documentation for the CRB FF-A interface (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Fix the missing entry in struct ffa_indirect_msg_hdr (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Replace mutex with rwlock to avoid sleep in atomic context (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Move memory allocation outside the mutex locking (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Fix memory leak by freeing notifier callback node (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Skip Rx buffer ownership release if not acquired (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Set dma_mask for ffa devices (Marcin Juszkiewicz) [RHEL-102692] {CVE-2025-38043} - firmware: arm_ffa: Skip the first/partition ID when parsing vCPU list (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Explicitly cast return value from NOTIFICATION_INFO_GET (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Explicitly cast return value from FFA_VERSION before comparison (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Handle ffa_notification_get correctly at virtual FF-A instance (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Allow multiple UUIDs per partition to register SRI callback (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Add support for handling framework notifications (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Add support for {un,}registration of framework notifications (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Stash ffa_device instead of notify_type in notifier_cb_info (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Refactoring to prepare for framework notification support (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Remove unnecessary declaration of ffa_partitions_cleanup() (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Reject higher major version as incompatible (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Upgrade FF-A version to v1.2 in the driver (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Add support for passing UUID in FFA_MSG_SEND2 (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Unregister the FF-A devices when cleaning up the partitions (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Handle the presence of host partition in the partition info (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Refactor addition of partition information into XArray (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Fix big-endian support in __ffa_partition_info_regs_get() (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Fix big-endian support in __ffa_partition_info_get() (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Align sync_send_receive{,2} function prototypes (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Replace UUID buffer to standard UUID format (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Replace SCMI by FF-A in the macro (Marcin Juszkiewicz) [RHEL-102692] - firmware: arm_ffa: Fix the race around setting ffa_dev->properties (Marcin Juszkiewicz) [RHEL-102692] - perf sched timehist: decode process names of processes in zombie state (Anubhav Shelat) [RHEL-68347] - tools/power turbostat: version 2025.09.09 (Steve Best) [RHEL-110366] - tools/power turbostat: Handle non-root legacy-uncore sysfs permissions (Steve Best) [RHEL-110366] - tools/power turbostat: standardize PER_THREAD_PARAMS (Steve Best) [RHEL-110366] - tools/power turbostat: Fix DMR support (Steve Best) [RHEL-110366] - tools/power turbostat: add format "average" for external attributes (Steve Best) [RHEL-110366] - tools/power turbostat: delete GET_PKG() (Steve Best) [RHEL-110366] - tools/power turbostat: probe and display L3 cache topology (Steve Best) [RHEL-110366] - tools/power turbostat: Support more than 64 built-in-counters (Steve Best) [RHEL-110366] - tools/power turbostat: Fix bogus SysWatt for forked program (Steve Best) [RHEL-110366] - tools/power turbostat: Handle cap_get_proc() ENOSYS (Steve Best) [RHEL-110366] - tools/power turbostat: Fix build with musl (Steve Best) [RHEL-110366] - tools/power turbostat: verify arguments to params --show and --hide (Steve Best) [RHEL-110366] - tools/power turbostat: regression fix: --show C1E%% (Steve Best) [RHEL-110366] - tools/power turbostat: version 2025.06.08 (Steve Best) [RHEL-110366] - tools/power turbostat: Add initial support for BartlettLake (Steve Best) [RHEL-110366] - x86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores (Steve Best) [RHEL-110366] - tools/power turbostat: Add initial support for DMR (Steve Best) [RHEL-110366] - tools/power turbostat: Dump RAPL sysfs info (Steve Best) [RHEL-110366] - tools/power turbostat: Avoid probing the same perf counters (Steve Best) [RHEL-110366] - tools/power turbostat: Allow probing RAPL with platform_features->rapl_msrs cleared (Steve Best) [RHEL-110366] - tools/power turbostat: Clean up add perf/msr counter logic (Steve Best) [RHEL-110366] - tools/power turbostat: Introduce add_msr_counter() (Steve Best) [RHEL-110366] - tools/power turbostat: Remove add_msr_perf_counter_() (Steve Best) [RHEL-110366] - tools/power turbostat: Remove add_cstate_perf_counter_() (Steve Best) [RHEL-110366] - tools/power turbostat: Remove add_rapl_perf_counter_() (Steve Best) [RHEL-110366] - tools/power turbostat: Quit early for unsupported RAPL counters (Steve Best) [RHEL-110366] - tools/power turbostat: Always check rapl_joules flag (Steve Best) [RHEL-110366] - tools/power turbostat: Fix AMD package-energy reporting (Steve Best) [RHEL-110366] - tools/power turbostat: Fix RAPL_GFX_ALL typo (Steve Best) [RHEL-110366] - tools/power turbostat: Add Android support for MSR device handling (Steve Best) [RHEL-110366] - coredump: Only sort VMAs when core_sort_vma sysctl is set (Herton R. Krzesinski) [RHEL-96077] - misc: pci_endpoint_test: Defer IRQ allocation until ioctl(PCITEST_SET_IRQTYPE) (Myron Stowe) [RHEL-86521] - selftests/pcie_bwctrl: Fix test progs list (Myron Stowe) [RHEL-86521] - PCI: Restore assigned resources fully after release (Myron Stowe) [RHEL-86521] - PCI: Fix typos (Myron Stowe) [RHEL-86521] - PCI: intel-gw: Remove intel_pcie_cpu_addr() (Myron Stowe) [RHEL-86521] - PCI: imx6: Remove imx_pcie_cpu_addr_fixup() (Myron Stowe) [RHEL-86521] - PCI: dwc: Use parent_bus_offset to remove need for .cpu_addr_fixup() (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Ensure proper iteration over outbound map windows (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Use devicetree 'reg[addr_space]' to derive CPU -> ATU addr offset (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Consolidate devicetree handling in dw_pcie_ep_get_resources() (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Call epc_create() early in dw_pcie_ep_init() (Myron Stowe) [RHEL-86521] - PCI: dwc: Use devicetree 'reg[config]' to derive CPU -> ATU addr offset (Myron Stowe) [RHEL-86521] - PCI: dwc: Add dw_pcie_parent_bus_offset() checking and debug (Myron Stowe) [RHEL-86521] - PCI: dwc: Add dw_pcie_parent_bus_offset() (Myron Stowe) [RHEL-86521] - PCI: dwc: Consolidate devicetree handling in dw_pcie_host_get_resources() (Myron Stowe) [RHEL-86521] - PCI: dwc: Call devm_pci_alloc_host_bridge() early in dw_pcie_host_init() (Myron Stowe) [RHEL-86521] - PCI: dwc: Rename cpu_addr to parent_bus_addr for ATU configuration (Myron Stowe) [RHEL-86521] - PCI: dwc: Use resource start as ioremap() input in dw_pcie_pme_turn_off() (Myron Stowe) [RHEL-86521] - PCI: xilinx-cpm: Add cpm_csr register mapping for CPM5_HOST1 variant (Myron Stowe) [RHEL-86521] - PCI: xilinx-cpm: Add support for Versal Net CPM5NC Root Port controller (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: xilinx-cpm: Add compatible string for CPM5NC Versal Net host (Myron Stowe) [RHEL-86521] - PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe (Myron Stowe) [RHEL-86521] - PCI: qcom-ep: Enable EP mode support for SAR2130P (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: qcom-ep: Add SAR2130P compatible (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: qcom-ep: Consolidate DMA vs non-DMA cases (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: qcom-ep: Enable DMA for SM8450 (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: qcom-ep: Describe optional IOMMU (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: qcom-ep: Describe optional dma-coherent property (Myron Stowe) [RHEL-86521] - PCI: qcom-ep: Mark BAR0/BAR2 as 64bit BARs and BAR1/BAR3 as RESERVED (Myron Stowe) [RHEL-86521] - PCI: mediatek-gen3: Fix inconsistent indentation (Myron Stowe) [RHEL-86521] - PCI: mediatek-gen3: Configure PBUS_CSR registers for EN7581 SoC (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: mediatek-gen3: Add mediatek,pbus-csr phandle array property (Myron Stowe) [RHEL-86521] - PCI: mediatek-gen3: Remove leftover mac_reset assert for Airoha EN7581 SoC (Myron Stowe) [RHEL-86521] - PCI: j721e: Fix the value of .linkdown_irq_regfield for J784S4 (Myron Stowe) [RHEL-86521] - PCI: imx6: Use devm_clk_bulk_get_all() to fetch clocks (Myron Stowe) [RHEL-86521] - PCI: imx6: Identify controller via 'linux,pci-domain', not address (Myron Stowe) [RHEL-86521] - PCI: histb: Fix an error handling path in histb_pcie_probe() (Myron Stowe) [RHEL-86521] - PCI: dw-rockchip: Hide broken ATS capability for RK3588 running in EP mode (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Add dw_pcie_ep_hide_ext_capability() (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Return -ENOMEM for allocation failures (Myron Stowe) [RHEL-86521] - perf/dwc_pcie: Move common DWC struct definitions to 'pcie-dwc.h' (Myron Stowe) [RHEL-86521] - PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Make const read-only arrays static (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Make irq_domain_set_info() parameter cast explicit (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Make two changes in MDIO register fields (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Use same constant table for config space access (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Fix potential premature regulator disabling (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Fix error path after a call to regulator_bulk_get() (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Do not assume that register field starts at LSB (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Use internal register to change link capability (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Set generation limit before PCIe link up (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Add BCM2712 support (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Expand inbound window size up to 64GB (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Reuse pcie_cfg_data structure (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: brcmstb: Update bindings for PCIe on BCM2712 (Myron Stowe) [RHEL-86521] - PCI: brcmstb: Fix missing of_node_put() in brcm_pcie_probe() (Myron Stowe) [RHEL-86521] - PCI: altera: Add Agilex support (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: altera: Add binding for Agilex (Myron Stowe) [RHEL-86521] - PCI: tegra: Use helper function for_each_child_of_node_scoped() (Myron Stowe) [RHEL-86521] - PCI: apple: Use helper function for_each_child_of_node_scoped() (Myron Stowe) [RHEL-86521] - PCI: mt7621: Use helper function for_each_available_child_of_node_scoped() (Myron Stowe) [RHEL-86521] - PCI: mediatek: Use helper function for_each_available_child_of_node_scoped() (Myron Stowe) [RHEL-86521] - PCI: kirin: Tidy up _probe() related function with dev_err_probe() (Myron Stowe) [RHEL-86521] - PCI: kirin: Use helper function for_each_available_child_of_node_scoped() (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Add support for PCITEST_IRQ_TYPE_AUTO (Myron Stowe) [RHEL-86521] - PCI: endpoint: pci-epf-test: Expose supported IRQ types in CAPS register (Myron Stowe) [RHEL-86521] - PCI: dw-rockchip: Endpoint mode cannot raise INTx interrupts (Myron Stowe) [RHEL-86521] - PCI: endpoint: Add intx_capable to epc_features struct (Myron Stowe) [RHEL-86521] - selftests: pci_endpoint: Use IRQ_TYPE_* defines from UAPI header (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Use IRQ_TYPE_* defines from UAPI header (Myron Stowe) [RHEL-86521] - PCI: endpoint: pcitest: Add IRQ_TYPE_* defines to UAPI header (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Do not use managed IRQ functions (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Remove global 'irq_type' and 'no_msi' (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Fix 'irq_type' to convey the correct type (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Fix displaying 'irq_type' after 'request_irq' error (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Avoid issue of interrupts remaining after request_irq error (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Handle BAR sizes larger than INT_MAX (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Give disabled BARs a distinct error code (Myron Stowe) [RHEL-86521] - misc: pci_endpoint_test: Fix potential truncation in pci_endpoint_test_probe() (Myron Stowe) [RHEL-86521] - selftests: pci_endpoint: Add GET_IRQTYPE checks to each interrupt test (Myron Stowe) [RHEL-86521] - selftests: pci_endpoint: Skip disabled BARs (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Remove superfluous function dw_pcie_ep_find_ext_capability() (Myron Stowe) [RHEL-86521] - PCI: endpoint: pci-epf-test: Fix double free that causes kernel to oops (Myron Stowe) [RHEL-86521] - PCI: endpoint: Remove unused devm_pci_epc_destroy() (Myron Stowe) [RHEL-86521] - PCI: dw-rockchip: Describe Resizable BARs as Resizable BARs (Myron Stowe) [RHEL-86521] - PCI: keystone: Specify correct alignment requirement (Myron Stowe) [RHEL-86521] - PCI: keystone: Describe Resizable BARs as Resizable BARs (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Allow EPF drivers to configure the size of Resizable BARs (Myron Stowe) [RHEL-86521] - PCI: dwc: ep: Move dw_pcie_ep_find_ext_capability() (Myron Stowe) [RHEL-86521] - PCI: endpoint: Add pci_epc_bar_size_to_rebar_cap() (Myron Stowe) [RHEL-86521] - PCI: endpoint: Allow EPF drivers to configure the size of Resizable BARs (Myron Stowe) [RHEL-86521] - PCI: endpoint: pci-epf-test: Handle endianness properly (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: Add common schema for devices accessible through PCI BARs (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: fsl,layerscape-pcie-ep: Drop unnecessary status from example (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: fsl,layerscape-pcie-ep: Drop deprecated windows (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: fsl,imx6q-pcie: Add optional DMA interrupt (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: Convert fsl,mpc83xx-pcie to YAML (Myron Stowe) [RHEL-86521] - dt-bindings: PCI: qcom: Document the IPQ5332 PCIe controller (Myron Stowe) [RHEL-86521] - PCI: of: Create device tree PCI host bridge node (Myron Stowe) [RHEL-86521] - PCI: of_property: Constify parameter in of_pci_get_addr_flags() (Myron Stowe) [RHEL-86521] - PCI: of_property: Add support for NULL pdev in of_pci_set_address() (Myron Stowe) [RHEL-86521] - PCI: of: Use device_{add,remove}_of_node() to attach of_node to existing device (Myron Stowe) [RHEL-86521] - s390/pci: Support mmap() of PCI resources except for ISM devices (Myron Stowe) [RHEL-86521] - s390/pci: Introduce pdev->non_mappable_bars and replace VFIO_PCI_MMAP (Myron Stowe) [RHEL-86521] - s390/pci: Fix s390_mmio_read/write syscall page fault handling (Myron Stowe) [RHEL-86521] - PCI: Fix NULL dereference in SR-IOV VF creation error path (Myron Stowe) [RHEL-86521] - PCI: Move cardbus IO size declarations into pci/pci.h (Myron Stowe) [RHEL-86521] - PCI: Make pci_setup_bridge() static (Myron Stowe) [RHEL-86521] - PCI: Move resource reassignment func declarations into pci/pci.h (Myron Stowe) [RHEL-86521] - PCI: Move pci_rescan_bus_bridge_resize() declaration to pci/pci.h (Myron Stowe) [RHEL-86521] - PCI: Fix BAR resizing when VF BARs are assigned (Myron Stowe) [RHEL-86521] - PCI: Do not claim to release resource falsely (Myron Stowe) [RHEL-86521] - PCI: Increase Resizable BAR support from 512 GB to 128 TB (Myron Stowe) [RHEL-86521] - PCI: Rework optional resource handling (Myron Stowe) [RHEL-86521] - PCI: Perform reset_resource() and build fail list in sync (Myron Stowe) [RHEL-86521] - PCI: Use res->parent to check if resource is assigned (Myron Stowe) [RHEL-86521] - PCI: Add debug print when releasing resources before retry (Myron Stowe) [RHEL-86521] - PCI: Indicate optional resource assignment failures (Myron Stowe) [RHEL-86521] - PCI: Always have realloc_head in __assign_resources_sorted() (Myron Stowe) [RHEL-86521] - PCI: Extend enable to check for any optional resource (Myron Stowe) [RHEL-86521] - PCI: Add restore_dev_resource() (Myron Stowe) [RHEL-86521] - PCI: Remove incorrect comment from pci_reassign_resource() (Myron Stowe) [RHEL-86521] - PCI: Consolidate assignment loop next round preparation (Myron Stowe) [RHEL-86521] - PCI: Rename retval to ret (Myron Stowe) [RHEL-86521] - PCI: Use while loop and break instead of gotos (Myron Stowe) [RHEL-86521] - PCI: Refactor pdev_sort_resources() & __dev_sort_resources() (Myron Stowe) [RHEL-86521] - PCI: Converge return paths in __assign_resources_sorted() (Myron Stowe) [RHEL-86521] - PCI: Add dev & res local variables to resource assignment funcs (Myron Stowe) [RHEL-86521] - PCI: Add pci_resource_num() helper (Myron Stowe) [RHEL-86521] - PCI: Check resource_size() separately (Myron Stowe) [RHEL-86521] - PCI: Add pci_resource_is_iov() to identify IOV resources (Myron Stowe) [RHEL-86521] - PCI: Use resource_set_{range,size}() helpers (Myron Stowe) [RHEL-86521] - PCI: Use SZ_* instead of literals in setup-bus.c (Myron Stowe) [RHEL-86521] - PCI: Fix old_size lower bound in calculate_iosize() too (Myron Stowe) [RHEL-86521] - PCI: Allow relaxed bridge window tail sizing for optional resources (Myron Stowe) [RHEL-86521] - PCI: Simplify size1 assignment logic (Myron Stowe) [RHEL-86521] - PCI: Use min_align, not unrelated add_align, for size0 (Myron Stowe) [RHEL-86521] - PCI: Remove add_align overwrite unrelated to size0 (Myron Stowe) [RHEL-86521] - PCI: Cleanup dev->resource + resno to use pci_resource_n() (Myron Stowe) [RHEL-86521] - PCI: Log debug messages about reset method (Myron Stowe) [RHEL-86521] - PCI: Allow PCI bridges to go to D3Hot on all non-x86 (Myron Stowe) [RHEL-86521] - PCI: pciehp: Don't enable HPIE when resuming in poll mode (Myron Stowe) [RHEL-86521] - PCI: pciehp: Avoid unnecessary device replacement check (Myron Stowe) [RHEL-86521] - PCI/portdrv: Only disable pciehp interrupts early when needed (Myron Stowe) [RHEL-86521] - PCI: hotplug: Inline pci_hp_{create,remove}_module_link() (Myron Stowe) [RHEL-86521] - PCI: hotplug: Avoid backpointer dereferencing in has_*_file() (Myron Stowe) [RHEL-86521] - PCI: hotplug: Drop superfluous NULL pointer checks in has_*_file() (Myron Stowe) [RHEL-86521] - PCI: hotplug: Drop superfluous try_module_get() calls (Myron Stowe) [RHEL-86521] - PCI: hotplug: Drop superfluous pci_hotplug_slot_list (Myron Stowe) [RHEL-86521] - PCI: cpcihp: Remove unused .get_power() and .set_power() (Myron Stowe) [RHEL-86521] - PCI: shpchp: Remove 'shpchp_debug' module parameter (Myron Stowe) [RHEL-86521] - PCI: shpchp: Remove unused logging wrappers (Myron Stowe) [RHEL-86521] - PCI: shpchp: Change dbg() -> ctrl_dbg() (Myron Stowe) [RHEL-86521] - PCI: shpchp: Remove logging from module init/exit functions (Myron Stowe) [RHEL-86521] - PCI: Remove stray put_device() in pci_register_host_bridge() (Myron Stowe) [RHEL-86521] - PCI: Fix reference leak in pci_alloc_child_bus() (Myron Stowe) [RHEL-86521] - PCI: Fix reference leak in pci_register_host_bridge() (Myron Stowe) [RHEL-86521] - PCI: Cache offset of Resizable BAR capability (Myron Stowe) [RHEL-86521] - PCI: Enable Configuration RRS SV early (Myron Stowe) [RHEL-86521] - PCI/DOE: Allow enabling DOE without CXL (Myron Stowe) [RHEL-86521] - PCI/DOE: Expose DOE features via sysfs (Myron Stowe) [RHEL-86521] - PCI/DOE: Rename Discovery Response Data Object Contents to type (Myron Stowe) [RHEL-86521] - PCI/DOE: Rename DOE protocol to feature (Myron Stowe) [RHEL-86521] - PCI: Check BAR index for validity (Myron Stowe) [RHEL-86521] - PCI: Fix wrong length of devres array (Myron Stowe) [RHEL-86521] - PCI/bwctrl: Fix NULL pointer dereference on bus number exhaustion (Myron Stowe) [RHEL-86521] - PCI/bwctrl: Fix pcie_bwctrl_select_speed() return type (Myron Stowe) [RHEL-86521] - selftests/pcie_bwctrl: Add 'set_pcie_speed.sh' to TEST_PROGS (Myron Stowe) [RHEL-86521] - PCI/ASPM: Fix link state exit during switch upstream function removal (Myron Stowe) [RHEL-86521] - PCI/ERR: Handle TLP Log in Flit mode (Myron Stowe) [RHEL-86521] - PCI: Track Flit Mode Status & print it with link status (Myron Stowe) [RHEL-86521] - PCI/AER: Descope pci_printk() to aer_printk() (Myron Stowe) [RHEL-86521] - perf/dwc_pcie: Qualify RAS DES VSEC Capability by Vendor, Revision (Myron Stowe) [RHEL-86521] - Documentation: dwc_pcie_pmu: Fix the mnemonics and eventid (Myron Stowe) [RHEL-86521] - perf/dwc_pcie: Fix the event numbers (Myron Stowe) [RHEL-86521] - perf/dwc_pcie: Fix typos in event names (Myron Stowe) [RHEL-86521] - perf/dwc_pcie: Add support for Ampere SoCs (Myron Stowe) [RHEL-86521] - arm64: debug: remove debug exception registration infrastructure (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: split bkpt32 exception entry (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: split brk64 exception entry (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: split hardware watchpoint exception entry (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: split single stepping exception entry (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: refactor reinstall_suspended_bps() (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: split hardware breakpoint exception entry (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: entry: Add entry and exit functions for debug exceptions (Luis Claudio R. Goncalves) [RHEL-69599] - arm64/fpsimd: Do not discard modified SVE state (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: remove break/step handler registration infrastructure (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: call step handlers statically (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: call software breakpoint handlers statically (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: Introduce esr_is_ubsan_brk() (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: refactor aarch32_break_handler() (Luis Claudio R. Goncalves) [RHEL-69599] - arm64: debug: clean up single_step_handler logic (Luis Claudio R. Goncalves) [RHEL-69599] - Initial bringup of riscv64 for centos (Charles Mirabile) [RHEL-101827] - KVM: RISC-V: Use kvm_faultin_pfn() when mapping pfns into the guest (Charles Mirabile) [RHEL-101827] - KVM: RISC-V: Mark "struct page" pfns accessed before dropping mmu_lock (Charles Mirabile) [RHEL-101827] - KVM: RISC-V: Mark "struct page" pfns dirty iff a stage-2 PTE is installed (Charles Mirabile) [RHEL-101827] - RISC-V: Remove unnecessary include from compat.h (Charles Mirabile) [RHEL-101827] - powercap: intel_rapl: Do not change CLAMPING bit if ENABLE bit cannot be changed (Steve Best) [RHEL-111364] * Wed Aug 27 2025 Scott Weaver [6.12.0-125.el10] - ibmveth: Add multi buffers rx replenishment hcall support (Mamatha Inamdar) [RHEL-104327] - net: ibmveth: Reset the adapter when unexpected states are detected (Mamatha Inamdar) [RHEL-104327] - x86/cpu: Add new Intel CPU model numbers for Wildcatlake and Novalake (Steve Best) [RHEL-95630] - ibmvnic: Use ndo_get_stats64 to fix inaccurate SAR reporting (Mamatha Inamdar) [RHEL-104319] - ibmvnic: Fix hardcoded NUM_RX_STATS/NUM_TX_STATS with dynamic sizeof (Mamatha Inamdar) [RHEL-104319] - ibmvnic: Add stat for tx direct vs tx batched (Mamatha Inamdar) [RHEL-104319] - s390/pci: Do not try re-enabling load/store if device is disabled (Mete Durlu) [RHEL-105599] - s390/pci: Fix stale function handles in error handling (Mete Durlu) [RHEL-105599] - s390/pci: Fix __pcilg_mio_inuser() inline assembly (Mete Durlu) [RHEL-105606] - platform/x86/amd/hsmp: Enhance the print messages to prevent confusion (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Use IS_ENABLED() instead of IS_REACHABLE() (Steve Best) [RHEL-102876] - x86/platform/amd: replace down_timeout() with down_interruptible() (Steve Best) [RHEL-102876] - x86/platform/amd: move final timeout check to after final sleep (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: fix building with CONFIG_HWMON=m (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: acpi: Add sysfs files to display HSMP telemetry (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Report power via hwmon sensors (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Use a single DRIVER_VERSION for all hsmp modules (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Make amd_hsmp and hsmp_acpi as mutually exclusive drivers (Steve Best) [RHEL-102876] - x86/platform/amd: Move the header to (Steve Best) [RHEL-102876] - x86/platform/amd: Clean up the header guards a bit (Steve Best) [RHEL-102876] - x86/platform/amd: Move the header to (Steve Best) [RHEL-102876] - x86/amd_node, platform/x86/amd/hsmp: Have HSMP use SMN through AMD_NODE (Steve Best) [RHEL-102876] - x86/amd_nb: Use rdmsr_safe() in amd_get_mmconfig_range() (Steve Best) [RHEL-102876] - x86/amd_node: Use defines for SMN register offsets (Steve Best) [RHEL-102876] - x86/amd_node: Remove dependency on AMD_NB (Steve Best) [RHEL-102876] - x86/amd_node: Update __amd_smn_rw() error paths (Steve Best) [RHEL-102876] - x86/amd_nb: Move SMN access code to a new amd_node driver (Steve Best) [RHEL-102876] - x86/amd_nb, hwmon: (k10temp): Simplify amd_pci_dev_to_node_id() (Steve Best) [RHEL-102876] - x86/amd_nb: Simplify function 3 search (Steve Best) [RHEL-102876] - x86/amd_nb: Use topology info to get AMD node count (Steve Best) [RHEL-102876] - x86/amd_nb: Simplify root device search (Steve Best) [RHEL-102876] - x86/amd_nb: Simplify function 4 search (Steve Best) [RHEL-102876] - x86: Start moving AMD node functionality out of AMD_NB (Steve Best) [RHEL-102876] - x86/amd_nb: Clean up early_is_amd_nb() (Steve Best) [RHEL-102876] - x86/amd_nb: Restrict init function to AMD-based systems (Steve Best) [RHEL-102876] - x86/amd_nb: Add new PCI IDs for AMD family 0x1a (Steve Best) [RHEL-102876] - platform/x86: amd: Use *-y instead of *-objs in Makefiles [partial] (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Constify 'struct bin_attribute' (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Add support for HSMP protocol version 7 messages (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Change the error type (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Add new error code and error logs (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: mark hsmp_msg_desc_table[] as maybe_unused (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Make hsmp_pdev static instead of global (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Use dev_groups in the driver structure (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Use name space while exporting module symbols (Steve Best) [RHEL-102876] - redhat/configs: Enable CONFIG_AMD_HSMP_ACPI and CONFIG_AMD_HSMP_PLAT on RHEL (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Create separate ACPI, plat and common drivers (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Change generic plat_dev name to hsmp_pdev (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Move ACPI code to acpi.c (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Move platform device specific code to plat.c (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Move structure and macros to header file (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Convert amd_hsmp_rdwr() to a function pointer (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Create wrapper function init_acpi() (Steve Best) [RHEL-102876] - platform/x86/amd/hsmp: Create hsmp/ directory (Steve Best) [RHEL-102876] - redhat: update self-test data for 10.2 (Scott Weaver) - redhat: correct UPSTREAM_BRANCH (Scott Weaver) - redhat: bump RHEL_MINOR for 10.2 (Scott Weaver) ### # The following Emacs magic makes C-c C-e use UTC dates. # Local Variables: # rpm-change-log-uses-utc: t # End: ###