From 4c511b9e25b92bccd288febe254542c0a334a521 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 31 Aug 2021 12:55:06 -0500 Subject: kernel-5.15-0.rc0.20210831gitb91db6a0b52e.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Tue Aug 31 2021 Fedora Kernel Team [5.15-0.rc0.20210831gitb91db6a0b52e.1] - arm64: use common CONFIG_MAX_ZONEORDER for arm kernel (Mark Salter) - Create Makefile.variables for a single point of configuration change (Justin M. Forbes) - rpmspec: drop traceevent files instead of just excluding them from files list (Herton R. Krzesinski) [1967640] - redhat/config: Enablement of CONFIG_PAPR_SCM for PowerPC (Gustavo Walbon) [1962936] - Attempt to fix Intel PMT code (David Arcari) - CI: Enable realtime branch testing (Veronika Kabatova) - CI: Enable realtime checks for c9s and RHEL9 (Veronika Kabatova) - [fs] dax: mark tech preview (Bill O'Donnell) - ark: wireless: enable all rtw88 pcie wirless variants (Peter Robinson) - wireless: rtw88: move debug options to common/debug (Peter Robinson) - fedora: minor PTP clock driver cleanups (Peter Robinson) - common: x86: enable VMware PTP support on ark (Peter Robinson) - arm64: dts: rockchip: Disable CDN DP on Pinebook Pro (Matthias Brugger) - arm64: dts: rockchip: Setup USB typec port as datarole on (Dan Johansen) - [scsi] megaraid_sas: re-add certain pci-ids (Tomas Henzl) - xfs: drop experimental warnings for bigtime and inobtcount (Bill O'Donnell) [1995321] - Disable liquidio driver on ark/rhel (Herton R. Krzesinski) [1993393] - More Fedora config updates (Justin M. Forbes) - Fedora config updates for 5.14 (Justin M. Forbes) - CI: Rename ARK CI pipeline type (Veronika Kabatova) - CI: Finish up c9s config (Veronika Kabatova) - CI: Update ppc64le config (Veronika Kabatova) - CI: use more templates (Veronika Kabatova) - Filter updates for aarch64 (Justin M. Forbes) - increase CONFIG_NODES_SHIFT for aarch64 (Chris von Recklinghausen) [1890304] - redhat: configs: Enable CONFIG_WIRELESS_HOTKEY (Hans de Goede) - redhat/configs: Update CONFIG_NVRAM (Desnes A. Nunes do Rosario) [1988254] - common: serial: build in SERIAL_8250_LPSS for x86 (Peter Robinson) - powerpc: enable CONFIG_FUNCTION_PROFILER (Diego Domingos) [1831065] - crypto: rng - Override drivers/char/random in FIPS mode (Herbert Xu) - random: Add hook to override device reads and getrandom(2) (Herbert Xu) - redhat/configs: Disable Soft-RoCE driver (Kamal Heib) - redhat/configs/evaluate_configs: Update help output (Prarit Bhargava) - redhat/configs: Double MAX_LOCKDEP_CHAINS (Justin M. Forbes) - fedora: configs: Fix WM5102 Kconfig (Hans de Goede) - powerpc: enable CONFIG_POWER9_CPU (Diego Domingos) [1876436] - redhat/configs: Fix CONFIG_VIRTIO_IOMMU to 'y' on aarch64 (Eric Auger) [1972795] - filter-modules.sh: add more sound modules to filter (Jaroslav Kysela) - redhat/configs: sound configuration cleanups and updates (Jaroslav Kysela) - common: Update for CXL (Compute Express Link) configs (Peter Robinson) - redhat: configs: disable CRYPTO_SM modules (Herton R. Krzesinski) [1990040] - Remove fedora version of the LOCKDEP_BITS, we should use common (Justin M. Forbes) - Re-enable sermouse for x86 (rhbz 1974002) (Justin M. Forbes) - Fedora 5.14 configs round 1 (Justin M. Forbes) - redhat: add gating configuration for centos stream/rhel9 (Herton R. Krzesinski) - x86: configs: Enable CONFIG_TEST_FPU for debug kernels (Vitaly Kuznetsov) [1988384] - redhat/configs: Move CHACHA and POLY1305 to core kernel to allow BIG_KEYS=y (root) [1983298] - kernel.spec: fix build of samples/bpf (Jiri Benc) - Enable OSNOISE_TRACER and TIMERLAT_TRACER (Jerome Marchand) [1979379] - rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] - configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) - fedora: sound config updates for 5.14 (Peter Robinson) - fedora: Only enable FSI drivers on POWER platform (Peter Robinson) - The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) - fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) - fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) - fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) - Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) - fedora: arm: disabled unused FB drivers (Peter Robinson) - fedora: don't enable FB_VIRTUAL (Peter Robinson) - redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] - rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - Build Fedora x86s kernels with bytcr-wm5102 (Marius Hoch) - Deleted redhat/configs/fedora/generic/x86/CONFIG_FB_HYPERV (Patrick Lang) - rpmspec: correct the ghost initramfs attributes (Herton R. Krzesinski) [1977056] - rpmspec: amend removal of depmod created files to include modules.builtin.alias.bin (Herton R. Krzesinski) [1977056] - configs: remove duplicate CONFIG_DRM_HYPERV file (Patrick Talbert) - CI: use common code for merge and release (Don Zickus) - rpmspec: add release string to kernel doc directory name (Jan Stancek) - redhat/configs: Add CONFIG_INTEL_PMT_CRASHLOG (Michael Petlan) [1880486] - redhat/configs: Add CONFIG_INTEL_PMT_TELEMETRY (Michael Petlan) [1880486] - redhat/configs: Add CONFIG_MFD_INTEL_PMT (Michael Petlan) [1880486] - redhat/configs: enable CONFIG_BLK_DEV_ZONED (Ming Lei) [1638087] - Add --with clang_lto option to build the kernel with Link Time Optimizations (Tom Stellard) - common: disable DVB_AV7110 and associated pieces (Peter Robinson) - Fix fedora-only config updates (Don Zickus) - Fedor config update for new option (Justin M. Forbes) - redhat/configs: Enable stmmac NIC for x86_64 (Mark Salter) - all: hyperv: use the DRM driver rather than FB (Peter Robinson) - all: hyperv: unify the Microsoft HyperV configs (Peter Robinson) - all: VMWare: clean up VMWare configs (Peter Robinson) - Update CONFIG_ARM_FFA_TRANSPORT (Patrick Talbert) - CI: Handle all mirrors (Veronika Kabatova) - Turn on CONFIG_STACKTRACE for s390x zfpcdump kernels (Justin M. Forbes) - arm64: switch ark kernel to 4K pagesize (Mark Salter) - Disable AMIGA_PARTITION and KARMA_PARTITION (Prarit Bhargava) [1802694] - all: unify and cleanup i2c TPM2 modules (Peter Robinson) - redhat/configs: Set CONFIG_VIRTIO_IOMMU on aarch64 (Eric Auger) [1972795] - redhat/configs: Disable CONFIG_RT_GROUP_SCHED in rhel config (Phil Auld) - redhat/configs: enable KEXEC_SIG which is already enabled in RHEL8 for s390x and x86_64 (Coiby Xu) [1976835] - rpmspec: do not BuildRequires bpftool on noarch (Herton R. Krzesinski) - redhat/configs: disable {IMA,EVM}_LOAD_X509 (Bruno Meneguele) [1977529] - redhat: add secureboot CA certificate to trusted kernel keyring (Bruno Meneguele) - redhat/configs: enable IMA_ARCH_POLICY for aarch64 and s390x (Bruno Meneguele) - redhat/configs: Enable CONFIG_MLXBF_GIGE on aarch64 (Alaa Hleihel) [1858599] - common: enable STRICT_MODULE_RWX everywhere (Peter Robinson) - COMMON_CLK_STM32MP157_SCMI is bool and selects COMMON_CLK_SCMI (Justin M. Forbes) - kernel.spec: Add kernel{,-debug}-devel-matched meta packages (Timothée Ravier) - Turn off with_selftests for Fedora (Justin M. Forbes) - Don't build bpftool on Fedora (Justin M. Forbes) - Fix location of syscall scripts for kernel-devel (Justin M. Forbes) - fedora: arm: Enable some i.MX8 options (Peter Robinson) - Enable Landlock for Fedora (Justin M. Forbes) - Filter update for Fedora aarch64 (Justin M. Forbes) - rpmspec: only build debug meta packages where we build debug ones (Herton R. Krzesinski) - rpmspec: do not BuildRequires bpftool on nobuildarches (Herton R. Krzesinski) - redhat/configs: Consolidate CONFIG_HMC_DRV in the common s390x folder (Thomas Huth) [1976270] - redhat/configs: Consolidate CONFIG_EXPOLINE_OFF in the common folder (Thomas Huth) [1976270] - redhat/configs: Move CONFIG_HW_RANDOM_S390 into the s390x/ subfolder (Thomas Huth) [1976270] - redhat/configs: Disable CONFIG_HOTPLUG_PCI_SHPC in the Fedora settings (Thomas Huth) [1976270] - redhat/configs: Remove the non-existent CONFIG_NO_BOOTMEM switch (Thomas Huth) [1976270] - redhat/configs: Compile the virtio-console as a module on s390x (Thomas Huth) [1976270] - redhat/configs: Enable CONFIG_S390_CCW_IOMMU and CONFIG_VFIO_CCW for ARK, too (Thomas Huth) [1976270] - Revert "Merge branch 'ec_fips' into 'os-build'" (Vladis Dronov) [1947240] - Fix typos in fedora filters (Justin M. Forbes) - More filtering for Fedora (Justin M. Forbes) - Fix Fedora module filtering for spi-altera-dfl (Justin M. Forbes) - Fedora 5.13 config updates (Justin M. Forbes) - fedora: cleanup TCG_TIS_I2C_CR50 (Peter Robinson) - fedora: drop duplicate configs (Peter Robinson) - More Fedora config updates for 5.13 (Justin M. Forbes) - redhat/configs: Enable needed drivers for BlueField SoC on aarch64 (Alaa Hleihel) [1858592 1858594 1858596] - redhat: Rename mod-blacklist.sh to mod-denylist.sh (Prarit Bhargava) - redhat/configs: enable CONFIG_NET_ACT_MPLS (Marcelo Ricardo Leitner) - configs: Enable CONFIG_DEBUG_KERNEL for zfcpdump (Jiri Olsa) - kernel.spec: Add support to use vmlinux.h (Don Zickus) - spec: Add vmlinux.h to kernel-devel package (Jiri Olsa) - Turn off DRM_XEN_FRONTEND for Fedora as we had DRM_XEN off already (Justin M. Forbes) - Fedora 5.13 config updates pt 3 (Justin M. Forbes) - all: enable ath11k wireless modules (Peter Robinson) - all: Enable WWAN and associated MHI bus pieces (Peter Robinson) - spec: Enable sefltests rpm build (Jiri Olsa) - spec: Allow bpf selftest/samples to fail (Jiri Olsa) - bpf, selftests: Disable tests that need clang13 (Toke Høiland-Jørgensen) - kvm: Add kvm_stat.service file and kvm_stat logrotate config to the tools (Jiri Benc) - kernel.spec: Add missing source files to kernel-selftests-internal (Jiri Benc) - kernel.spec: selftests: add net/forwarding to TARGETS list (Jiri Benc) - kernel.spec: selftests: add build requirement on libmnl-devel (Jiri Benc) - kernel.spec: add action.o to kernel-selftests-internal (Jiri Benc) - kernel.spec: avoid building bpftool repeatedly (Jiri Benc) - kernel.spec: selftests require python3 (Jiri Benc) - kernel.spec: skip selftests that failed to build (Jiri Benc) - kernel.spec: fix installation of bpf selftests (Jiri Benc) - redhat: fix samples and selftests make options (Jiri Benc) - kernel.spec: enable mptcp selftests for kernel-selftests-internal (Jiri Benc) - kernel.spec: Do not export shared objects from libexecdir to RPM Provides (Jiri Benc) - kernel.spec: add missing dependency for the which package (Jiri Benc) - kernel.spec: add netfilter selftests to kernel-selftests-internal (Jiri Benc) - kernel.spec: move slabinfo and page_owner_sort debuginfo to tools-debuginfo (Jiri Benc) - kernel.spec: package and ship VM tools (Jiri Benc) - configs: enable CONFIG_PAGE_OWNER (Jiri Benc) - kernel.spec: add coreutils (Jiri Benc) - kernel.spec: add netdevsim driver selftests to kernel-selftests-internal (Jiri Benc) - redhat/Makefile: Clean out the --without flags from the baseonly rule (Jiri Benc) - kernel.spec: Stop building unnecessary rpms for baseonly builds (Jiri Benc) - kernel.spec: disable more kabi switches for gcov build (Jiri Benc) - kernel.spec: Rename kabi-dw base (Jiri Benc) - kernel.spec: Fix error messages during build of zfcpdump kernel (Jiri Benc) - kernel.spec: perf: remove bpf examples (Jiri Benc) - kernel.spec: selftests should not depend on modules-internal (Jiri Benc) - kernel.spec: build samples (Jiri Benc) - kernel.spec: tools: sync missing options with RHEL 8 (Jiri Benc) - redhat/configs: nftables: Enable extra flowtable symbols (Phil Sutter) - redhat/configs: Sync netfilter options with RHEL8 (Phil Sutter) - Fedora 5.13 config updates pt 2 (Justin M. Forbes) - Move CONFIG_ARCH_INTEL_SOCFPGA up a level for Fedora (Justin M. Forbes) - fedora: enable the Rockchip rk3399 pcie drivers (Peter Robinson) - Fedora 5.13 config updates pt 1 (Justin M. Forbes) - Fix version requirement from opencsd-devel buildreq (Justin M. Forbes) - configs/ark/s390: set CONFIG_MARCH_Z14 and CONFIG_TUNE_Z15 (Philipp Rudo) [1876435] - configs/common/s390: Clean up CONFIG_{MARCH,TUNE}_Z* (Philipp Rudo) - configs/process_configs.sh: make use of dummy-tools (Philipp Rudo) - configs/common: disable CONFIG_INIT_STACK_ALL_{PATTERN,ZERO} (Philipp Rudo) - configs/common/aarch64: disable CONFIG_RELR (Philipp Rudo) - redhat/config: enable STMICRO nic for RHEL (Mark Salter) - redhat/configs: Enable ARCH_TEGRA on RHEL (Mark Salter) - redhat/configs: enable IMA_KEXEC for supported arches (Bruno Meneguele) - redhat/configs: enable INTEGRITY_SIGNATURE to all arches (Bruno Meneguele) - configs: enable CONFIG_LEDS_BRIGHTNESS_HW_CHANGED (Benjamin Tissoires) - RHEL: disable io_uring support (Jeff Moyer) - all: Changing CONFIG_UV_SYSFS to build uv_sysfs.ko as a loadable module. (Frank Ramsay) - Enable NITRO_ENCLAVES on RHEL (Vitaly Kuznetsov) - Update the Quick Start documentation (David Ward) - redhat/configs: Set PVPANIC_MMIO for x86 and PVPANIC_PCI for aarch64 (Eric Auger) [1961178] - bpf: Fix unprivileged_bpf_disabled setup (Jiri Olsa) - Enable CONFIG_BPF_UNPRIV_DEFAULT_OFF (Jiri Olsa) - configs/common/s390: disable CONFIG_QETH_{OSN,OSX} (Philipp Rudo) [1903201] - nvme: nvme_mpath_init remove multipath check (Mike Snitzer) - team: mark team driver as deprecated (Hangbin Liu) [1945477] - Make CRYPTO_EC also builtin (Simo Sorce) [1947240] - Do not hard-code a default value for DIST (David Ward) - Override %%{debugbuildsenabled} if the --with-release option is used (David Ward) - Improve comments in SPEC file, and move some option tests and macros (David Ward) - configs: enable CONFIG_EXFAT_FS (Pavel Reichl) [1943423] - Revert s390x/zfcpdump part of a9d179c40281 and ecbfddd98621 (Vladis Dronov) - Embed crypto algos, modes and templates needed in the FIPS mode (Vladis Dronov) [1947240] - configs: Add and enable CONFIG_HYPERV_TESTING for debug kernels (Mohammed Gamal) - mm/cma: mark CMA on x86_64 tech preview and print RHEL-specific infos (David Hildenbrand) [1945002] - configs: enable CONFIG_CMA on x86_64 in ARK (David Hildenbrand) [1945002] - rpmspec: build debug-* meta-packages if debug builds are disabled (Herton R. Krzesinski) - UIO: disable unused config options (Aristeu Rozanski) [1957819] - ARK-config: Make amd_pinctrl module builtin (Hans de Goede) - rpmspec: revert/drop content hash for kernel-headers (Herton R. Krzesinski) - rpmspec: fix check that calls InitBuildVars (Herton R. Krzesinski) - fedora: enable zonefs (Damien Le Moal) - redhat: load specific ARCH keys to INTEGRITY_PLATFORM_KEYRING (Bruno Meneguele) - redhat: enable INTEGRITY_TRUSTED_KEYRING across all variants (Bruno Meneguele) - redhat: enable SYSTEM_BLACKLIST_KEYRING across all variants (Bruno Meneguele) - redhat: enable INTEGRITY_ASYMMETRIC_KEYS across all variants (Bruno Meneguele) - Remove unused boot loader specification files (David Ward) - redhat/configs: Enable mlx5 IPsec and TLS offloads (Alaa Hleihel) [1869674 1957636] - Force DWARF4 because crash does not support DWARF5 yet (Justin M. Forbes) - common: disable Apple Silicon generally (Peter Robinson) - cleanup Intel's FPGA configs (Peter Robinson) - common: move PTP KVM support from ark to common (Peter Robinson) - Enable CONFIG_DRM_AMDGPU_USERPTR for everyone (Justin M. Forbes) - redhat: add initial rpminspect configuration (Herton R. Krzesinski) - fedora: arm updates for 5.13 (Peter Robinson) - fedora: Enable WWAN and associated MHI bits (Peter Robinson) - Update CONFIG_MODPROBE_PATH to /usr/sbin (Justin Forbes) - Fedora set modprobe path (Justin M. Forbes) - Keep sctp and l2tp modules in modules-extra (Don Zickus) - Fix ppc64le cross build packaging (Don Zickus) - Fedora: Make amd_pinctrl module builtin (Hans de Goede) - Keep CONFIG_KASAN_HW_TAGS off for aarch64 debug configs (Justin M. Forbes) - New configs in drivers/bus (Fedora Kernel Team) - RHEL: Don't build KVM PR module on ppc64 (David Gibson) [1930649] - Flip CONFIG_USB_ROLE_SWITCH from m to y (Justin M. Forbes) - Set valid options for CONFIG_FW_LOADER_USER_HELPER (Justin M. Forbes) - Clean up CONFIG_FB_MODE_HELPERS (Justin M. Forbes) - Turn off CONFIG_VFIO for the s390x zfcpdump kernel (Justin M. Forbes) - Delete unused CONFIG_SND_SOC_MAX98390 pending-common (Justin M. Forbes) - Update pending-common configs, preparing to set correctly (Justin M. Forbes) - Update fedora filters for surface (Justin M. Forbes) - Build CONFIG_CRYPTO_ECDSA inline for s390x zfcpdump (Justin M. Forbes) - Replace "flavour" where "variant" is meant instead (David Ward) - Drop the %%{variant} macro and fix --with-vanilla (David Ward) - Fix syntax of %%kernel_variant_files (David Ward) - Change description of --without-vdso-install to fix typo (David Ward) - Config updates to work around mismatches (Justin M. Forbes) - CONFIG_SND_SOC_FSL_ASOC_CARD selects CONFIG_MFD_WM8994 now (Justin M. Forbes) - wireguard: disable in FIPS mode (Hangbin Liu) [1940794] - Enable mtdram for fedora (rhbz 1955916) (Justin M. Forbes) - Remove reference to bpf-helpers man page (Justin M. Forbes) - Fedora: enable more modules for surface devices (Dave Olsthoorn) - Fix Fedora config mismatch for CONFIG_FSL_ENETC_IERB (Justin M. Forbes) - hardlink is in /usr/bin/ now (Justin M. Forbes) - Ensure CONFIG_KVM_BOOK3S_64_PR stays on in Fedora, even if it is turned off in RHEL (Justin M. Forbes) - Set date in package release from repository commit, not system clock (David Ward) - Use a better upstream tarball filename for snapshots (David Ward) - Don't create empty pending-common files on pending-fedora commits (Don Zickus) - nvme: decouple basic ANA log page re-read support from native multipathing (Mike Snitzer) - nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT (Mike Snitzer) - nvme: Return BLK_STS_TARGET if the DNR bit is set (Mike Snitzer) - Add redhat/configs/pending-common/generic/s390x/zfcpdump/CONFIG_NETFS_SUPPORT (Justin M. Forbes) - Create ark-latest branch last for CI scripts (Don Zickus) - Replace /usr/libexec/platform-python with /usr/bin/python3 (David Ward) - Turn off ADI_AXI_ADC and AD9467 which now require CONFIG_OF (Justin M. Forbes) - Export ark infrastructure files (Don Zickus) - docs: Update docs to reflect newer workflow. (Don Zickus) - Use upstream/master for merge-base with fallback to master (Don Zickus) - Fedora: Turn off the SND_INTEL_BYT_PREFER_SOF option (Hans de Goede) - filter-modules.sh.fedora: clean up "netprots" (Paul Bolle) - filter-modules.sh.fedora: clean up "scsidrvs" (Paul Bolle) - filter-*.sh.fedora: clean up "ethdrvs" (Paul Bolle) - filter-*.sh.fedora: clean up "driverdirs" (Paul Bolle) - filter-*.sh.fedora: remove incorrect entries (Paul Bolle) - filter-*.sh.fedora: clean up "singlemods" (Paul Bolle) - filter-modules.sh.fedora: drop unused list "iiodrvs" (Paul Bolle) - Update mod-internal to fix depmod issue (Nico Pache) - Turn on CONFIG_VDPA_SIM_NET (rhbz 1942343) (Justin M. Forbes) - New configs in drivers/power (Fedora Kernel Team) - Turn on CONFIG_NOUVEAU_DEBUG_PUSH for debug configs (Justin M. Forbes) - Turn off KFENCE sampling by default for Fedora (Justin M. Forbes) - Fedora config updates round 2 (Justin M. Forbes) - New configs in drivers/soc (Jeremy Cline) - filter-modules.sh: Fix copy/paste error 'input' (Paul Bolle) - Update module filtering for 5.12 kernels (Justin M. Forbes) - Fix genlog.py to ensure that comments retain "%%" characters. (Mark Mielke) - New configs in drivers/leds (Fedora Kernel Team) - Limit CONFIG_USB_CDNS_SUPPORT to x86_64 and arm in Fedora (David Ward) - Fedora: Enable CHARGER_GPIO on aarch64 too (Peter Robinson) - Fedora config updates (Justin M. Forbes) - wireguard: mark as Tech Preview (Hangbin Liu) [1613522] - configs: enable CONFIG_WIREGUARD in ARK (Hangbin Liu) [1613522] - Remove duplicate configs acroos fedora, ark and common (Don Zickus) - Combine duplicate configs across ark and fedora into common (Don Zickus) - common/ark: cleanup and unify the parport configs (Peter Robinson) - iommu/vt-d: enable INTEL_IDXD_SVM for both fedora and rhel (Jerry Snitselaar) - REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70 (Jeremy Linton) - configs/common/generic: disable CONFIG_SLAB_MERGE_DEFAULT (Rafael Aquini) - Remove _legacy_common_support (Justin M. Forbes) - redhat/mod-blacklist.sh: Fix floppy blacklisting (Hans de Goede) - New configs in fs/pstore (CKI@GitLab) - New configs in arch/powerpc (Fedora Kernel Team) - configs: enable BPF LSM on Fedora and ARK (Ondrej Mosnacek) - configs: clean up LSM configs (Ondrej Mosnacek) - New configs in drivers/platform (CKI@GitLab) - New configs in drivers/firmware (CKI@GitLab) - New configs in drivers/mailbox (Fedora Kernel Team) - New configs in drivers/net/phy (Justin M. Forbes) - Update CONFIG_DM_MULTIPATH_IOA (Augusto Caringi) - New configs in mm/Kconfig (CKI@GitLab) - New configs in arch/powerpc (Jeremy Cline) - New configs in arch/powerpc (Jeremy Cline) - New configs in drivers/input (Fedora Kernel Team) - New configs in net/bluetooth (Justin M. Forbes) - New configs in drivers/clk (Fedora Kernel Team) - New configs in init/Kconfig (Jeremy Cline) - redhat: allow running fedora-configs and rh-configs targets outside of redhat/ (Herton R. Krzesinski) - all: unify the disable of goldfish (android emulation platform) (Peter Robinson) - common: minor cleanup/de-dupe of dma/dmabuf debug configs (Peter Robinson) - common/ark: these drivers/arches were removed in 5.12 (Peter Robinson) - Correct kernel-devel make prepare build for 5.12. (Paulo E. Castro) - redhat: add initial support for centos stream dist-git sync on Makefiles (Herton R. Krzesinski) - redhat/configs: Enable CONFIG_SCHED_STACK_END_CHECK for Fedora and ARK (Josh Poimboeuf) [1856174] - CONFIG_VFIO now selects IOMMU_API instead of depending on it, causing several config mismatches for the zfcpdump kernel (Justin M. Forbes) - Turn off weak-modules for Fedora (Justin M. Forbes) - redhat: enable CONFIG_FW_LOADER_COMPRESS for ARK (Herton R. Krzesinski) [1939095] - Fedora: filters: update to move dfl-emif to modules (Peter Robinson) - drop duplicate DEVFREQ_GOV_SIMPLE_ONDEMAND config (Peter Robinson) - efi: The EFI_VARS is legacy and now x86 only (Peter Robinson) - common: enable RTC_SYSTOHC to supplement update_persistent_clock64 (Peter Robinson) - generic: arm: enable SCMI for all options (Peter Robinson) - fedora: the PCH_CAN driver is x86-32 only (Peter Robinson) - common: disable legacy CAN device support (Peter Robinson) - common: Enable Microchip MCP251x/MCP251xFD CAN controllers (Peter Robinson) - common: Bosch MCAN support for Intel Elkhart Lake (Peter Robinson) - common: enable CAN_PEAK_PCIEFD PCI-E driver (Peter Robinson) - common: disable CAN_PEAK_PCIEC PCAN-ExpressCard (Peter Robinson) - common: enable common CAN layer 2 protocols (Peter Robinson) - ark: disable CAN_LEDS option (Peter Robinson) - Fedora: Turn on SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC option (Hans de Goede) - Fedora: enable modules for surface devices (Dave Olsthoorn) - Turn on SND_SOC_INTEL_SOUNDWIRE_SOF_MACH for Fedora again (Justin M. Forbes) - common: fix WM8804 codec dependencies (Peter Robinson) - Build SERIO_SERPORT as a module (Peter Robinson) - input: touchscreen: move ELO and Wacom serial touchscreens to x86 (Peter Robinson) - Sync serio touchscreens for non x86 architectures to the same as ARK (Peter Robinson) - Only enable SERIO_LIBPS2 on x86 (Peter Robinson) - Only enable PC keyboard controller and associated keyboard on x86 (Peter Robinson) - Generic: Mouse: Tweak generic serial mouse options (Peter Robinson) - Only enable PS2 Mouse options on x86 (Peter Robinson) - Disable bluetooth highspeed by default (Peter Robinson) - Fedora: A few more general updates for 5.12 window (Peter Robinson) - Fedora: Updates for 5.12 merge window (Peter Robinson) - Fedora: remove dead options that were removed upstream (Peter Robinson) - redhat: remove CONFIG_DRM_PANEL_XINGBANGDA_XBD599 (Herton R. Krzesinski) - New configs in arch/powerpc (Fedora Kernel Team) - Turn on CONFIG_PPC_QUEUED_SPINLOCKS as it is default upstream now (Justin M. Forbes) - Update pending-common configs to address new upstream config deps (Justin M. Forbes) - rpmspec: ship gpio-watch.debug in the proper debuginfo package (Herton R. Krzesinski) - Removed description text as a comment confuses the config generation (Justin M. Forbes) - New configs in drivers/dma-buf (Jeremy Cline) - Fedora: ARMv7: build for 16 CPUs. (Peter Robinson) - Fedora: only enable DEBUG_HIGHMEM on debug kernels (Peter Robinson) - process_configs.sh: fix find/xargs data flow (Ondrej Mosnacek) - Fedora config update (Justin M. Forbes) - fedora: minor arm sound config updates (Peter Robinson) - Fix trailing white space in redhat/configs/fedora/generic/CONFIG_SND_INTEL_BYT_PREFER_SOF (Justin M. Forbes) - Add a redhat/rebase-notes.txt file (Hans de Goede) - Turn on SND_INTEL_BYT_PREFER_SOF for Fedora (Hans de Goede) - CI: Drop MR ID from the name variable (Veronika Kabatova) - redhat: add DUP and kpatch certificates to system trusted keys for RHEL build (Herton R. Krzesinski) - The comments in CONFIG_USB_RTL8153_ECM actually turn off CONFIG_USB_RTL8152 (Justin M. Forbes) - Update CKI pipeline project (Veronika Kabatova) - Turn off additional KASAN options for Fedora (Justin M. Forbes) - Rename the master branch to rawhide for Fedora (Justin M. Forbes) - Makefile targets for packit integration (Ben Crocker) - Turn off KASAN for rawhide debug builds (Justin M. Forbes) - New configs in arch/arm64 (Justin Forbes) - Remove deprecated Intel MIC config options (Peter Robinson) - redhat: replace inline awk script with genlog.py call (Herton R. Krzesinski) - redhat: add genlog.py script (Herton R. Krzesinski) - kernel.spec.template - fix use_vdso usage (Ben Crocker) - redhat: remove remaining references of CONFIG_RH_DISABLE_DEPRECATED (Herton R. Krzesinski) - Turn off vdso_install for ppc (Justin M. Forbes) - Remove bpf-helpers.7 from bpftool package (Jiri Olsa) - New configs in lib/Kconfig.debug (Fedora Kernel Team) - Turn off CONFIG_VIRTIO_CONSOLE for s390x zfcpdump (Justin M. Forbes) - New configs in drivers/clk (Justin M. Forbes) - Keep VIRTIO_CONSOLE on s390x available. (Jakub Čajka) - New configs in lib/Kconfig.debug (Jeremy Cline) - Fedora 5.11 config updates part 4 (Justin M. Forbes) - Fedora 5.11 config updates part 3 (Justin M. Forbes) - Fedora 5.11 config updates part 2 (Justin M. Forbes) - Update internal (test) module list from RHEL-8 (Joe Lawrence) [1915073] - Fix USB_XHCI_PCI regression (Justin M. Forbes) - fedora: fixes for ARMv7 build issue by disabling HIGHPTE (Peter Robinson) - all: s390x: Increase CONFIG_PCI_NR_FUNCTIONS to 512 (#1888735) (Dan Horák) - Fedora 5.11 configs pt 1 (Justin M. Forbes) - redhat: avoid conflict with mod-blacklist.sh and released_kernel defined (Herton R. Krzesinski) - redhat: handle certificate files conditionally as done for src.rpm (Herton R. Krzesinski) - specfile: add %%{?_smp_mflags} to "make headers_install" in tools/testing/selftests (Denys Vlasenko) - specfile: add %%{?_smp_mflags} to "make samples/bpf/" (Denys Vlasenko) - Run MR testing in CKI pipeline (Veronika Kabatova) - Reword comment (Nicolas Chauvet) - Add with_cross_arm conditional (Nicolas Chauvet) - Redefines __strip if with_cross (Nicolas Chauvet) - fedora: only enable ACPI_CONFIGFS, ACPI_CUSTOM_METHOD in debug kernels (Peter Robinson) - fedora: User the same EFI_CUSTOM_SSDT_OVERLAYS as ARK (Peter Robinson) - all: all arches/kernels enable the same DMI options (Peter Robinson) - all: move SENSORS_ACPI_POWER to common/generic (Peter Robinson) - fedora: PCIE_HISI_ERR is already in common (Peter Robinson) - all: all ACPI platforms enable ATA_ACPI so move it to common (Peter Robinson) - all: x86: move shared x86 acpi config options to generic (Peter Robinson) - All: x86: Move ACPI_VIDEO to common/x86 (Peter Robinson) - All: x86: Enable ACPI_DPTF (Intel DPTF) (Peter Robinson) - All: enable ACPI_BGRT for all ACPI platforms. (Peter Robinson) - All: Only build ACPI_EC_DEBUGFS for debug kernels (Peter Robinson) - All: Disable Intel Classmate PC ACPI_CMPC option (Peter Robinson) - cleanup: ACPI_PROCFS_POWER was removed upstream (Peter Robinson) - All: ACPI: De-dupe the ACPI options that are the same across ark/fedora on x86/arm (Peter Robinson) - Enable the vkms module in Fedora (Jeremy Cline) - Fedora: arm updates for 5.11 and general cross Fedora cleanups (Peter Robinson) - Add gcc-c++ to BuildRequires (Justin M. Forbes) - Update CONFIG_KASAN_HW_TAGS (Justin M. Forbes) - fedora: arm: move generic power off/reset to all arm (Peter Robinson) - fedora: ARMv7: build in DEVFREQ_GOV_SIMPLE_ONDEMAND until I work out why it's changed (Peter Robinson) - fedora: cleanup joystick_adc (Peter Robinson) - fedora: update some display options (Peter Robinson) - fedora: arm: enable TI PRU options (Peter Robinson) - fedora: arm: minor exynos plaform updates (Peter Robinson) - arm: SoC: disable Toshiba Visconti SoC (Peter Robinson) - common: disable ARCH_BCM4908 (NFC) (Peter Robinson) - fedora: minor arm config updates (Peter Robinson) - fedora: enable Tegra 234 SoC (Peter Robinson) - fedora: arm: enable new Hikey 3xx options (Peter Robinson) - Fedora: USB updates (Peter Robinson) - fedora: enable the GNSS receiver subsystem (Peter Robinson) - Remove POWER_AVS as no longer upstream (Peter Robinson) - Cleanup RESET_RASPBERRYPI (Peter Robinson) - Cleanup GPIO_CDEV_V1 options. (Peter Robinson) - fedora: arm crypto updates (Peter Robinson) - CONFIG_KASAN_HW_TAGS for aarch64 (Justin M. Forbes) - Fedora: cleanup PCMCIA configs, move to x86 (Peter Robinson) - New configs in drivers/rtc (Fedora Kernel Team) - redhat/configs: Enable CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL (Josh Poimboeuf) [1856176] - redhat/configs: Enable CONFIG_GCC_PLUGIN_STRUCTLEAK (Josh Poimboeuf) [1856176] - redhat/configs: Enable CONFIG_GCC_PLUGINS on ARK (Josh Poimboeuf) [1856176] - redhat/configs: Enable CONFIG_KASAN on Fedora (Josh Poimboeuf) [1856176] - New configs in init/Kconfig (Fedora Kernel Team) - build_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) - genspec.sh: Fix syntax flagged by shellcheck (Ben Crocker) - mod-blacklist.sh: Fix syntax flagged by shellcheck (Ben Crocker) - Enable Speakup accessibility driver (Justin M. Forbes) - New configs in init/Kconfig (Fedora Kernel Team) - Fix fedora config mismatch due to dep changes (Justin M. Forbes) - New configs in drivers/crypto (Jeremy Cline) - Remove duplicate ENERGY_MODEL configs (Peter Robinson) - This is selected by PCIE_QCOM so must match (Justin M. Forbes) - drop unused BACKLIGHT_GENERIC (Peter Robinson) - Remove cp instruction already handled in instruction below. (Paulo E. Castro) - Add all the dependencies gleaned from running `make prepare` on a bloated devel kernel. (Paulo E. Castro) - Add tools to path mangling script. (Paulo E. Castro) - Remove duplicate cp statement which is also not specific to x86. (Paulo E. Castro) - Correct orc_types failure whilst running `make prepare` https://bugzilla.redhat.com/show_bug.cgi?id=1882854 (Paulo E. Castro) - redhat: ark: enable CONFIG_IKHEADERS (Jiri Olsa) - Add missing '$' sign to (GIT) in redhat/Makefile (Augusto Caringi) - Remove filterdiff and use native git instead (Don Zickus) - New configs in net/sched (Justin M. Forbes) - New configs in drivers/mfd (CKI@GitLab) - New configs in drivers/mfd (Fedora Kernel Team) - New configs in drivers/firmware (Fedora Kernel Team) - Temporarily backout parallel xz script (Justin M. Forbes) - redhat: explicitly disable CONFIG_IMA_APPRAISE_SIGNED_INIT (Bruno Meneguele) - redhat: enable CONFIG_EVM_LOAD_X509 on ARK (Bruno Meneguele) - redhat: enable CONFIG_EVM_ATTR_FSUUID on ARK (Bruno Meneguele) - redhat: enable CONFIG_EVM in all arches and flavors (Bruno Meneguele) - redhat: enable CONFIG_IMA_LOAD_X509 on ARK (Bruno Meneguele) - redhat: set CONFIG_IMA_DEFAULT_HASH to SHA256 (Bruno Meneguele) - redhat: enable CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT (Bruno Meneguele) - redhat: enable CONFIG_IMA_READ_POLICY on ARK (Bruno Meneguele) - redhat: set default IMA template for all ARK arches (Bruno Meneguele) - redhat: enable CONFIG_IMA_DEFAULT_HASH_SHA256 for all flavors (Bruno Meneguele) - redhat: disable CONFIG_IMA_DEFAULT_HASH_SHA1 (Bruno Meneguele) - redhat: enable CONFIG_IMA_ARCH_POLICY for ppc and x86 (Bruno Meneguele) - redhat: enable CONFIG_IMA_APPRAISE_MODSIG (Bruno Meneguele) - redhat: enable CONFIG_IMA_APPRAISE_BOOTPARAM (Bruno Meneguele) - redhat: enable CONFIG_IMA_APPRAISE (Bruno Meneguele) - redhat: enable CONFIG_INTEGRITY for aarch64 (Bruno Meneguele) - kernel: Update some missing KASAN/KCSAN options (Jeremy Linton) - kernel: Enable coresight on aarch64 (Jeremy Linton) - Update CONFIG_INET6_ESPINTCP (Justin Forbes) - New configs in net/ipv6 (Justin M. Forbes) - fedora: move CONFIG_RTC_NVMEM options from ark to common (Peter Robinson) - configs: Enable CONFIG_DEBUG_INFO_BTF (Don Zickus) - fedora: some minor arm audio config tweaks (Peter Robinson) - Ship xpad with default modules on Fedora and RHEL (Bastien Nocera) - Fedora: Only enable legacy serial/game port joysticks on x86 (Peter Robinson) - Fedora: Enable the options required for the Librem 5 Phone (Peter Robinson) - Fedora config update (Justin M. Forbes) - Fedora config change because CONFIG_FSL_DPAA2_ETH now selects CONFIG_FSL_XGMAC_MDIO (Justin M. Forbes) - redhat: generic enable CONFIG_INET_MPTCP_DIAG (Davide Caratti) - Fedora config update (Justin M. Forbes) - Enable NANDSIM for Fedora (Justin M. Forbes) - Re-enable CONFIG_ACPI_TABLE_UPGRADE for Fedora since upstream disables this if secureboot is active (Justin M. Forbes) - Ath11k related config updates (Justin M. Forbes) - Fedora config updates for ath11k (Justin M. Forbes) - Turn on ATH11K for Fedora (Justin M. Forbes) - redhat: enable CONFIG_INTEL_IOMMU_SVM (Jerry Snitselaar) - More Fedora config fixes (Justin M. Forbes) - Fedora 5.10 config updates (Justin M. Forbes) - Fedora 5.10 configs round 1 (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Allow kernel-tools to build without selftests (Don Zickus) - Allow building of kernel-tools standalone (Don Zickus) - redhat: ark: disable CONFIG_NET_ACT_CTINFO (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_TEQL (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_SFB (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_QFQ (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_PLUG (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_PIE (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_HHF (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_DSMARK (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_DRR (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_CODEL (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_CHOKE (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_CBQ (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_ATM (Davide Caratti) - redhat: ark: disable CONFIG_NET_EMATCH and sub-targets (Davide Caratti) - redhat: ark: disable CONFIG_NET_CLS_TCINDEX (Davide Caratti) - redhat: ark: disable CONFIG_NET_CLS_RSVP6 (Davide Caratti) - redhat: ark: disable CONFIG_NET_CLS_RSVP (Davide Caratti) - redhat: ark: disable CONFIG_NET_CLS_ROUTE4 (Davide Caratti) - redhat: ark: disable CONFIG_NET_CLS_BASIC (Davide Caratti) - redhat: ark: disable CONFIG_NET_ACT_SKBMOD (Davide Caratti) - redhat: ark: disable CONFIG_NET_ACT_SIMP (Davide Caratti) - redhat: ark: disable CONFIG_NET_ACT_NAT (Davide Caratti) - arm64/defconfig: Enable CONFIG_KEXEC_FILE (Bhupesh Sharma) [1821565] - redhat/configs: Cleanup CONFIG_CRYPTO_SHA512 (Prarit Bhargava) - New configs in drivers/mfd (Fedora Kernel Team) - Fix LTO issues with kernel-tools (Don Zickus) - Point pathfix to the new location for gen_compile_commands.py (Justin M. Forbes) - configs: Disable CONFIG_SECURITY_SELINUX_DISABLE (Ondrej Mosnacek) - [Automatic] Handle config dependency changes (Don Zickus) - configs/iommu: Add config comment to empty CONFIG_SUN50I_IOMMU file (Jerry Snitselaar) - New configs in kernel/trace (Fedora Kernel Team) - Fix Fedora config locations (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - configs: enable CONFIG_CRYPTO_CTS=y so cts(cbc(aes)) is available in FIPS mode (Vladis Dronov) [1855161] - Partial revert: Add master merge check (Don Zickus) - Update Maintainers doc to reflect workflow changes (Don Zickus) - WIP: redhat/docs: Update documentation for single branch workflow (Prarit Bhargava) - Add CONFIG_ARM64_MTE which is not picked up by the config scripts for some reason (Justin M. Forbes) - Disable Speakup synth DECEXT (Justin M. Forbes) - Enable Speakup for Fedora since it is out of staging (Justin M. Forbes) - Modify patchlist changelog output (Don Zickus) - process_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) - generate_all_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) - redhat/self-test: Initial commit (Ben Crocker) - Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only (Peter Robinson) - arch/x86: Remove vendor specific CPU ID checks (Prarit Bhargava) - redhat: Replace hardware.redhat.com link in Unsupported message (Prarit Bhargava) [1810301] - x86: Fix compile issues with rh_check_supported() (Don Zickus) - KEYS: Make use of platform keyring for module signature verify (Robert Holmes) - Input: rmi4 - remove the need for artificial IRQ in case of HID (Benjamin Tissoires) - ARM: tegra: usb no reset (Peter Robinson) - arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT (Jon Masters) - redhat: rh_kabi: deduplication friendly structs (Jiri Benc) - redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage (Jiri Benc) - redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE (Jiri Benc) - redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. (Don Dutile) - redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator (Tony Camuso) - redhat: rh_kabi: Add macros to size and extend structs (Prarit Bhargava) - Removing Obsolete hba pci-ids from rhel8 (Dick Kennedy) - mptsas: pci-id table changes (Laura Abbott) - mptsas: Taint kernel if mptsas is loaded (Laura Abbott) - mptspi: pci-id table changes (Laura Abbott) - qla2xxx: Remove PCI IDs of deprecated adapter (Jeremy Cline) - be2iscsi: remove unsupported device IDs (Chris Leech) - mptspi: Taint kernel if mptspi is loaded (Laura Abbott) - hpsa: remove old cciss-based smartarray pci ids (Joseph Szczypek) - qla4xxx: Remove deprecated PCI IDs from RHEL 8 (Chad Dupuis) - aacraid: Remove depreciated device and vendor PCI id's (Raghava Aditya Renukunta) - megaraid_sas: remove deprecated pci-ids (Tomas Henzl) - mpt*: remove certain deprecated pci-ids (Jeremy Cline) - kernel: add SUPPORT_REMOVED kernel taint (Tomas Henzl) - Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES (Don Zickus) - Add option of 13 for FORCE_MAX_ZONEORDER (Peter Robinson) - s390: Lock down the kernel when the IPL secure flag is set (Jeremy Cline) - efi: Lock down the kernel if booted in secure boot mode (David Howells) - efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode (David Howells) - security: lockdown: expose a hook to lock the kernel down (Jeremy Cline) - Make get_cert_list() use efi_status_to_str() to print error messages. (Peter Jones) - Add efi_status_to_str() and rework efi_status_to_err(). (Peter Jones) - Add support for deprecating processors (Laura Abbott) [1565717 1595918 1609604 1610493] - arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT (Jeremy Cline) - iommu/arm-smmu: workaround DMA mode issues (Laura Abbott) - rh_kabi: introduce RH_KABI_EXCLUDE (Jakub Racek) - ipmi: do not configure ipmi for HPE m400 (Laura Abbott) [1670017] - kABI: Add generic kABI macros to use for kABI workarounds (Myron Stowe) [1546831] - add pci_hw_vendor_status() (Maurizio Lombardi) - ahci: thunderx2: Fix for errata that affects stop engine (Robert Richter) - Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon (Robert Richter) - bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter (Eugene Syromiatnikov) [1561171] - add Red Hat-specific taint flags (Eugene Syromiatnikov) [1559877] - tags.sh: Ignore redhat/rpm (Jeremy Cline) - put RHEL info into generated headers (Laura Abbott) [1663728] - acpi: prefer booting with ACPI over DTS (Mark Salter) [1576869] - aarch64: acpi scan: Fix regression related to X-Gene UARTs (Mark Salter) [1519554] - ACPI / irq: Workaround firmware issue on X-Gene based m400 (Mark Salter) [1519554] - modules: add rhelversion MODULE_INFO tag (Laura Abbott) - ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support (Al Stone) [1518076] - Add Red Hat tainting (Laura Abbott) [1565704] - Introduce CONFIG_RH_DISABLE_DEPRECATED (Laura Abbott) - Stop merging ark-patches for release (Don Zickus) - Fix path location for ark-update-configs.sh (Don Zickus) - Combine Red Hat patches into single patch (Don Zickus) - New configs in drivers/misc (Jeremy Cline) - New configs in drivers/net/wireless (Justin M. Forbes) - New configs in drivers/phy (Fedora Kernel Team) - New configs in drivers/tty (Fedora Kernel Team) - Set SquashFS decompression options for all flavors to match RHEL (Bohdan Khomutskyi) - configs: Enable CONFIG_ENERGY_MODEL (Phil Auld) - New configs in drivers/pinctrl (Fedora Kernel Team) - Update CONFIG_THERMAL_NETLINK (Justin Forbes) - Separate merge-upstream and release stages (Don Zickus) - Re-enable CONFIG_IR_SERIAL on Fedora (Prarit Bhargava) - Create Patchlist.changelog file (Don Zickus) - Filter out upstream commits from changelog (Don Zickus) - Merge Upstream script fixes (Don Zickus) - kernel.spec: Remove kernel-keys directory on rpm erase (Prarit Bhargava) - Add mlx5_vdpa to module filter for Fedora (Justin M. Forbes) - Add python3-sphinx_rtd_theme buildreq for docs (Justin M. Forbes) - redhat/configs/process_configs.sh: Remove *.config.orig files (Prarit Bhargava) - redhat/configs/process_configs.sh: Add process_configs_known_broken flag (Prarit Bhargava) - redhat/Makefile: Fix '*-configs' targets (Prarit Bhargava) - dist-merge-upstream: Checkout known branch for ci scripts (Don Zickus) - kernel.spec: don't override upstream compiler flags for ppc64le (Dan Horák) - Fedora config updates (Justin M. Forbes) - Fedora confi gupdate (Justin M. Forbes) - mod-sign.sh: Fix syntax flagged by shellcheck (Ben Crocker) - Swap how ark-latest is built (Don Zickus) - Add extra version bump to os-build branch (Don Zickus) - dist-release: Avoid needless version bump. (Don Zickus) - Add dist-fedora-release target (Don Zickus) - Remove redundant code in dist-release (Don Zickus) - Makefile.common rename TAG to _TAG (Don Zickus) - Fedora config change (Justin M. Forbes) - Fedora filter update (Justin M. Forbes) - Config update for Fedora (Justin M. Forbes) - enable PROTECTED_VIRTUALIZATION_GUEST for all s390x kernels (Dan Horák) - redhat: ark: enable CONFIG_NET_SCH_TAPRIO (Davide Caratti) - redhat: ark: enable CONFIG_NET_SCH_ETF (Davide Caratti) - More Fedora config updates (Justin M. Forbes) - New config deps (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - First half of config updates for Fedora (Justin M. Forbes) - Updates for Fedora arm architectures for the 5.9 window (Peter Robinson) - Merge 5.9 config changes from Peter Robinson (Justin M. Forbes) - Add config options that only show up when we prep on arm (Justin M. Forbes) - Config updates for Fedora (Justin M. Forbes) - fedora: enable enery model (Peter Robinson) - Use the configs/generic config for SND_HDA_INTEL everywhere (Peter Robinson) - Enable ZSTD compression algorithm on all kernels (Peter Robinson) - Enable ARM_SMCCC_SOC_ID on all aarch64 kernels (Peter Robinson) - iio: enable LTR-559 light and proximity sensor (Peter Robinson) - iio: chemical: enable some popular chemical and partical sensors (Peter Robinson) - More mismatches (Justin M. Forbes) - Fedora config change due to deps (Justin M. Forbes) - CONFIG_SND_SOC_MAX98390 is now selected by SND_SOC_INTEL_DA7219_MAX98357A_GENERIC (Justin M. Forbes) - Config change required for build part 2 (Justin M. Forbes) - Config change required for build (Justin M. Forbes) - Fedora config update (Justin M. Forbes) - Add ability to sync upstream through Makefile (Don Zickus) - Add master merge check (Don Zickus) - Replace hardcoded values 'os-build' and project id with variables (Don Zickus) - redhat/Makefile.common: Fix MARKER (Prarit Bhargava) - gitattributes: Remove unnecesary export restrictions (Prarit Bhargava) - Add new certs for dual signing with boothole (Justin M. Forbes) - Update secureboot signing for dual keys (Justin M. Forbes) - fedora: enable LEDS_SGM3140 for arm configs (Peter Robinson) - Enable CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG (Justin M. Forbes) - redhat/configs: Fix common CONFIGs (Prarit Bhargava) - redhat/configs: General CONFIG cleanups (Prarit Bhargava) - redhat/configs: Update & generalize evaluate_configs (Prarit Bhargava) - fedora: arm: Update some meson config options (Peter Robinson) - redhat/docs: Add Fedora RPM tagging date (Prarit Bhargava) - Update config for renamed panel driver. (Peter Robinson) - Enable SERIAL_SC16IS7XX for SPI interfaces (Peter Robinson) - s390x-zfcpdump: Handle missing Module.symvers file (Don Zickus) - Fedora config updates (Justin M. Forbes) - redhat/configs: Add .tmp files to .gitignore (Prarit Bhargava) - disable uncommon TCP congestion control algorithms (Davide Caratti) - Add new bpf man pages (Justin M. Forbes) - Add default option for CONFIG_ARM64_BTI_KERNEL to pending-common so that eln kernels build (Justin M. Forbes) - redhat/Makefile: Add fedora-configs and rh-configs make targets (Prarit Bhargava) - redhat/configs: Use SHA512 for module signing (Prarit Bhargava) - genspec.sh: 'touch' empty Patchlist file for single tarball (Don Zickus) - Fedora config update for rc1 (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - redhat/Makefile.common: fix RPMKSUBLEVEL condition (Ondrej Mosnacek) - redhat/Makefile: silence KABI tar output (Ondrej Mosnacek) - One more Fedora config update (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Fix PATCHLEVEL for merge window (Justin M. Forbes) - Change ark CONFIG_COMMON_CLK to yes, it is selected already by other options (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - More module filtering for Fedora (Justin M. Forbes) - Update filters for rnbd in Fedora (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Fix up module filtering for 5.8 (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - More Fedora config work (Justin M. Forbes) - RTW88BE and CE have been extracted to their own modules (Justin M. Forbes) - Set CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK for Fedora (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Arm64 Use Branch Target Identification for kernel (Justin M. Forbes) - Change value of CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE (Justin M. Forbes) - Fedora config updates (Justin M. Forbes) - Fix configs for Fedora (Justin M. Forbes) - Add zero-commit to format-patch options (Justin M. Forbes) - Copy Makefile.rhelver as a source file rather than a patch (Jeremy Cline) - Move the sed to clear the patch templating outside of conditionals (Justin M. Forbes) - Match template format in kernel.spec.template (Justin M. Forbes) - Break out the Patches into individual files for dist-git (Justin M. Forbes) - Break the Red Hat patch into individual commits (Jeremy Cline) - Fix update_scripts.sh unselective pattern sub (David Howells) - Add cec to the filter overrides (Justin M. Forbes) - Add overrides to filter-modules.sh (Justin M. Forbes) - redhat/configs: Enable CONFIG_SMC91X and disable CONFIG_SMC911X (Prarit Bhargava) [1722136] - Include bpftool-struct_ops man page in the bpftool package (Jeremy Cline) - Add sharedbuffer_configuration.py to the pathfix.py script (Jeremy Cline) - Use __make macro instead of make (Tom Stellard) - Sign off generated configuration patches (Jeremy Cline) - Drop the static path configuration for the Sphinx docs (Jeremy Cline) - redhat: Add dummy-module kernel module (Prarit Bhargava) - redhat: enable CONFIG_LWTUNNEL_BPF (Jiri Benc) - Remove typoed config file aarch64CONFIG_SM_GCC_8150 (Justin M. Forbes) - Add Documentation back to kernel-devel as it has Kconfig now (Justin M. Forbes) - Copy distro files rather than moving them (Jeremy Cline) - kernel.spec: fix 'make scripts' for kernel-devel package (Brian Masney) - Makefile: correct help text for dist-cross--rpms (Brian Masney) - redhat/Makefile: Fix RHEL8 python warning (Prarit Bhargava) - redhat: Change Makefile target names to dist- (Prarit Bhargava) - configs: Disable Serial IR driver (Prarit Bhargava) - Fix "multiple %%files for package kernel-tools" (Pablo Greco) - Introduce a Sphinx documentation project (Jeremy Cline) - Build ARK against ELN (Don Zickus) - Drop the requirement to have a remote called linus (Jeremy Cline) - Rename 'internal' branch to 'os-build' (Don Zickus) - Only include open merge requests with "Include in Releases" label (Jeremy Cline) - Package gpio-watch in kernel-tools (Jeremy Cline) - Exit non-zero if the tag already exists for a release (Jeremy Cline) - Adjust the changelog update script to not push anything (Jeremy Cline) - Drop --target noarch from the rh-rpms make target (Jeremy Cline) - Add a script to generate release tags and branches (Jeremy Cline) - Set CONFIG_VDPA for fedora (Justin M. Forbes) - Add a README to the dist-git repository (Jeremy Cline) - Provide defaults in ark-rebase-patches.sh (Jeremy Cline) - Default ark-rebase-patches.sh to not report issues (Jeremy Cline) - Drop DIST from release commits and tags (Jeremy Cline) - Place the buildid before the dist in the release (Jeremy Cline) - Sync up with Fedora arm configuration prior to merging (Jeremy Cline) - Disable CONFIG_PROTECTED_VIRTUALIZATION_GUEST for zfcpdump (Jeremy Cline) - Add RHMAINTAINERS file and supporting conf (Don Zickus) - Add a script to test if all commits are signed off (Jeremy Cline) - Fix make rh-configs-arch (Don Zickus) - Drop RH_FEDORA in favor of the now-merged RHEL_DIFFERENCES (Jeremy Cline) - Sync up Fedora configs from the first week of the merge window (Jeremy Cline) - Migrate blacklisting floppy.ko to mod-blacklist.sh (Don Zickus) - kernel packaging: Combine mod-blacklist.sh and mod-extra-blacklist.sh (Don Zickus) - kernel packaging: Fix extra namespace collision (Don Zickus) - mod-extra.sh: Rename to mod-blacklist.sh (Don Zickus) - mod-extra.sh: Make file generic (Don Zickus) - Fix a painfully obvious YAML syntax error in .gitlab-ci.yml (Jeremy Cline) - Add in armv7hl kernel header support (Don Zickus) - Disable all BuildKernel commands when only building headers (Don Zickus) - Drop any gitlab-ci patches from ark-patches (Jeremy Cline) - Build the srpm for internal branch CI using the vanilla tree (Jeremy Cline) - Pull in the latest ARM configurations for Fedora (Jeremy Cline) - Fix xz memory usage issue (Neil Horman) - Use ark-latest instead of master for update script (Jeremy Cline) - Move the CI jobs back into the ARK repository (Jeremy Cline) - Sync up ARK's Fedora config with the dist-git repository (Jeremy Cline) - Pull in the latest configuration changes from Fedora (Jeremy Cline) - configs: enable CONFIG_NET_SCH_CBS (Marcelo Ricardo Leitner) - Drop configuration options in fedora/ that no longer exist (Jeremy Cline) - Set RH_FEDORA for ARK and Fedora (Jeremy Cline) - redhat/kernel.spec: Include the release in the kernel COPYING file (Jeremy Cline) - redhat/kernel.spec: add scripts/jobserver-exec to py3_shbang_opts list (Jeremy Cline) - redhat/kernel.spec: package bpftool-gen man page (Jeremy Cline) - distgit-changelog: handle multiple y-stream BZ numbers (Bruno Meneguele) - redhat/kernel.spec: remove all inline comments (Bruno Meneguele) - redhat/genspec: awk unknown whitespace regex pattern (Bruno Meneguele) - Improve the readability of gen_config_patches.sh (Jeremy Cline) - Fix some awkward edge cases in gen_config_patches.sh (Jeremy Cline) - Update the CI environment to use Fedora 31 (Jeremy Cline) - redhat: drop whitespace from with_gcov macro (Jan Stancek) - configs: Enable CONFIG_KEY_DH_OPERATIONS on ARK (Ondrej Mosnacek) - configs: Adjust CONFIG_MPLS_ROUTING and CONFIG_MPLS_IPTUNNEL (Laura Abbott) - New configs in lib/crypto (Jeremy Cline) - New configs in drivers/char (Jeremy Cline) - Turn on BLAKE2B for Fedora (Jeremy Cline) - kernel.spec.template: Clean up stray *.h.s files (Laura Abbott) - Build the SRPM in the CI job (Jeremy Cline) - New configs in net/tls (Jeremy Cline) - New configs in net/tipc (Jeremy Cline) - New configs in lib/kunit (Jeremy Cline) - Fix up released_kernel case (Laura Abbott) - New configs in lib/Kconfig.debug (Jeremy Cline) - New configs in drivers/ptp (Jeremy Cline) - New configs in drivers/nvme (Jeremy Cline) - New configs in drivers/net/phy (Jeremy Cline) - New configs in arch/arm64 (Jeremy Cline) - New configs in drivers/crypto (Jeremy Cline) - New configs in crypto/Kconfig (Jeremy Cline) - Add label so the Gitlab to email bridge ignores the changelog (Jeremy Cline) - Temporarily switch TUNE_DEFAULT to y (Jeremy Cline) - Run config test for merge requests and internal (Jeremy Cline) - Add missing licensedir line (Laura Abbott) - redhat/scripts: Remove redhat/scripts/rh_get_maintainer.pl (Prarit Bhargava) - configs: Take CONFIG_DEFAULT_MMAP_MIN_ADDR from Fedra (Laura Abbott) - configs: Turn off ISDN (Laura Abbott) - Add a script to generate configuration patches (Laura Abbott) - Introduce rh-configs-commit (Laura Abbott) - kernel-packaging: Remove kernel files from kernel-modules-extra package (Prarit Bhargava) - configs: Enable CONFIG_DEBUG_WX (Laura Abbott) - configs: Disable wireless USB (Laura Abbott) - Clean up some temporary config files (Laura Abbott) - configs: New config in drivers/gpu for v5.4-rc1 (Jeremy Cline) - configs: New config in arch/powerpc for v5.4-rc1 (Jeremy Cline) - configs: New config in crypto for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/usb for v5.4-rc1 (Jeremy Cline) - AUTOMATIC: New configs (Jeremy Cline) - Skip ksamples for bpf, they are broken (Jeremy Cline) - configs: New config in fs/erofs for v5.4-rc1 (Jeremy Cline) - configs: New config in mm for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/md for v5.4-rc1 (Jeremy Cline) - configs: New config in init for v5.4-rc1 (Jeremy Cline) - configs: New config in fs/fuse for v5.4-rc1 (Jeremy Cline) - merge.pl: Avoid comments but do not skip them (Don Zickus) - configs: New config in drivers/net/ethernet/pensando for v5.4-rc1 (Jeremy Cline) - Update a comment about what released kernel means (Laura Abbott) - Provide both Fedora and RHEL files in the SRPM (Laura Abbott) - kernel.spec.template: Trim EXTRAVERSION in the Makefile (Laura Abbott) - kernel.spec.template: Add macros for building with nopatches (Laura Abbott) - kernel.spec.template: Add some macros for Fedora differences (Laura Abbott) - kernel.spec.template: Consolodate the options (Laura Abbott) - configs: Add pending direcory to Fedora (Laura Abbott) - kernel.spec.template: Don't run hardlink if rpm-ostree is in use (Laura Abbott) - configs: New config in net/can for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/net/phy for v5.4-rc1 (Jeremy Cline) - configs: Increase x86_64 NR_UARTS to 64 (Prarit Bhargava) [1730649] - configs: turn on ARM64_FORCE_52BIT for debug builds (Jeremy Cline) - kernel.spec.template: Tweak the python3 mangling (Laura Abbott) - kernel.spec.template: Add --with verbose option (Laura Abbott) - kernel.spec.template: Switch to using %%install instead of %%__install (Laura Abbott) - kernel.spec.template: Make the kernel.org URL https (Laura Abbott) - kernel.spec.template: Update message about secure boot signing (Laura Abbott) - kernel.spec.template: Move some with flags definitions up (Laura Abbott) - kernel.spec.template: Update some BuildRequires (Laura Abbott) - kernel.spec.template: Get rid of %%clean (Laura Abbott) - configs: New config in drivers/char for v5.4-rc1 (Jeremy Cline) - configs: New config in net/sched for v5.4-rc1 (Jeremy Cline) - configs: New config in lib for v5.4-rc1 (Jeremy Cline) - configs: New config in fs/verity for v5.4-rc1 (Jeremy Cline) - configs: New config in arch/aarch64 for v5.4-rc4 (Jeremy Cline) - configs: New config in arch/arm64 for v5.4-rc1 (Jeremy Cline) - Flip off CONFIG_ARM64_VA_BITS_52 so the bundle that turns it on applies (Jeremy Cline) - New configuration options for v5.4-rc4 (Jeremy Cline) - Correctly name tarball for single tarball builds (Laura Abbott) - configs: New config in drivers/pci for v5.4-rc1 (Jeremy Cline) - Allow overriding the dist tag on the command line (Laura Abbott) - Allow scratch branch target to be overridden (Laura Abbott) - Remove long dead BUILD_DEFAULT_TARGET (Laura Abbott) - Amend the changelog when rebasing (Laura Abbott) - configs: New config in drivers/platform for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/pinctrl for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/net/wireless for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/net/ethernet/mellanox for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/net/can for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/hid for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/dma-buf for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/crypto for v5.4-rc1 (Jeremy Cline) - configs: New config in arch/s390 for v5.4-rc1 (Jeremy Cline) - configs: New config in block for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/cpuidle for v5.4-rc1 (Jeremy Cline) - redhat: configs: Split CONFIG_CRYPTO_SHA512 (Laura Abbott) - redhat: Set Fedora options (Laura Abbott) - Set CRYPTO_SHA3_*_S390 to builtin on zfcpdump (Jeremy Cline) - configs: New config in drivers/edac for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/firmware for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/hwmon for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/iio for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/mmc for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/tty for v5.4-rc1 (Jeremy Cline) - configs: New config in arch/s390 for v5.4-rc1 (Jeremy Cline) - configs: New config in drivers/bus for v5.4-rc1 (Jeremy Cline) - Add option to allow mismatched configs on the command line (Laura Abbott) - configs: New config in drivers/crypto for v5.4-rc1 (Jeremy Cline) - configs: New config in sound/pci for v5.4-rc1 (Jeremy Cline) - configs: New config in sound/soc for v5.4-rc1 (Jeremy Cline) - gitlab: Add CI job for packaging scripts (Major Hayden) - Speed up CI with CKI image (Major Hayden) - Disable e1000 driver in ARK (Neil Horman) - configs: Fix the pending default for CONFIG_ARM64_VA_BITS_52 (Jeremy Cline) - configs: Turn on OPTIMIZE_INLINING for everything (Jeremy Cline) - configs: Set valid pending defaults for CRYPTO_ESSIV (Jeremy Cline) - Add an initial CI configuration for the internal branch (Jeremy Cline) - New drop of configuration options for v5.4-rc1 (Jeremy Cline) - New drop of configuration options for v5.4-rc1 (Jeremy Cline) - Pull the RHEL version defines out of the Makefile (Jeremy Cline) - Sync up the ARK build scripts (Jeremy Cline) - Sync up the Fedora Rawhide configs (Jeremy Cline) - Sync up the ARK config files (Jeremy Cline) - configs: Adjust CONFIG_FORCE_MAX_ZONEORDER for Fedora (Laura Abbott) - configs: Add README for some other arches (Laura Abbott) - configs: Sync up Fedora configs (Laura Abbott) - [initial commit] Add structure for building with git (Laura Abbott) - [initial commit] Add Red Hat variables in the top level makefile (Laura Abbott) - [initial commit] Red Hat gitignore and attributes (Laura Abbott) - [initial commit] Add changelog (Laura Abbott) - [initial commit] Add makefile (Laura Abbott) - [initial commit] Add files for generating the kernel.spec (Laura Abbott) - [initial commit] Add rpm directory (Laura Abbott) - [initial commit] Add files for packaging (Laura Abbott) - [initial commit] Add kabi files (Laura Abbott) - [initial commit] Add scripts (Laura Abbott) - [initial commit] Add configs (Laura Abbott) - [initial commit] Add Makefiles (Laura Abbott) Resolves: rhbz#1518076, rhbz#1519554, rhbz#1546831, rhbz#1559877, rhbz#1561171, rhbz#1565704, rhbz#1565717, rhbz#1576869, rhbz#1595918, rhbz#1609604, rhbz#1610493, rhbz#1613522, rhbz#1638087, rhbz#1663728, rhbz#1670017, rhbz#1722136, rhbz#1730649, rhbz#1802694, rhbz#1810301, rhbz#1821565, rhbz#1831065, rhbz#1855161, rhbz#1856174, rhbz#1856176, rhbz#1858592, rhbz#1858594, rhbz#1858596, rhbz#1858599, rhbz#1869674, rhbz#1876435, rhbz#1876436, rhbz#1880486, rhbz#1890304, rhbz#1903201, rhbz#1915073, rhbz#1930649, rhbz#1939095, rhbz#1940075, rhbz#1940794, rhbz#1943423, rhbz#1945002, rhbz#1945477, rhbz#1947240, rhbz#1956988, rhbz#1957636, rhbz#1957819, rhbz#1961178, rhbz#1962936, rhbz#1967640, rhbz#1972795, rhbz#1976270, rhbz#1976835, rhbz#1977056, rhbz#1977529, rhbz#1979379, rhbz#1981406, rhbz#1983298, rhbz#1988254, rhbz#1988384, rhbz#1990040, rhbz#1993393, rhbz#1995321 Signed-off-by: Justin M. Forbes --- Makefile.rhelver | 2 +- Patchlist.changelog | 366 ++- kernel-aarch64-debug-fedora.config | 13 + kernel-aarch64-debug-rhel.config | 7 + kernel-aarch64-fedora.config | 13 + kernel-aarch64-rhel.config | 7 + kernel-armv7hl-debug-fedora.config | 13 + kernel-armv7hl-fedora.config | 13 + kernel-armv7hl-lpae-debug-fedora.config | 13 + kernel-armv7hl-lpae-fedora.config | 13 + kernel-i686-debug-fedora.config | 12 + kernel-i686-fedora.config | 12 + kernel-ppc64le-debug-fedora.config | 13 + kernel-ppc64le-debug-rhel.config | 7 + kernel-ppc64le-fedora.config | 13 + kernel-ppc64le-rhel.config | 7 + kernel-s390x-debug-fedora.config | 13 + kernel-s390x-debug-rhel.config | 7 + kernel-s390x-fedora.config | 13 + kernel-s390x-rhel.config | 7 + kernel-s390x-zfcpdump-rhel.config | 7 + kernel-x86_64-debug-fedora.config | 12 + kernel-x86_64-debug-rhel.config | 6 + kernel-x86_64-fedora.config | 12 + kernel-x86_64-rhel.config | 6 + kernel.spec | 1082 +------- patch-5.14-redhat.patch | 4456 ------------------------------- patch-5.15-redhat.patch | 4456 +++++++++++++++++++++++++++++++ sources | 6 +- 29 files changed, 4870 insertions(+), 5737 deletions(-) delete mode 100644 patch-5.14-redhat.patch create mode 100644 patch-5.15-redhat.patch diff --git a/Makefile.rhelver b/Makefile.rhelver index cd0ec12e6..7fb2464bc 100644 --- a/Makefile.rhelver +++ b/Makefile.rhelver @@ -12,7 +12,7 @@ RHEL_MINOR = 99 # # Use this spot to avoid future merge conflicts. # Do not trim this comment. -RHEL_RELEASE = 60 +RHEL_RELEASE = 1 # # Early y+1 numbering diff --git a/Patchlist.changelog b/Patchlist.changelog index 95738ab54..e1241084e 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,288 +1,234 @@ -https://gitlab.com/cki-project/kernel-ark/-/commit/12be5095f2feb2c686f6c9fb31de5513355fe31a - 12be5095f2feb2c686f6c9fb31de5513355fe31a arm64: use common CONFIG_MAX_ZONEORDER for arm kernel +https://gitlab.com/cki-project/kernel-ark/-/commit/db5256d639278a4a5980c15cffcb538b057e6849 + db5256d639278a4a5980c15cffcb538b057e6849 arm64: use common CONFIG_MAX_ZONEORDER for arm kernel -https://gitlab.com/cki-project/kernel-ark/-/commit/4cee6f338b9edaeab1c45c6b2a8ecf80c8711186 - 4cee6f338b9edaeab1c45c6b2a8ecf80c8711186 Revert "IB/rxe: Mark Soft-RoCE Transport driver as tech-preview" +https://gitlab.com/cki-project/kernel-ark/-/commit/d98289485c8a44dd58ea6b133814ee6bb4c5cbb0 + d98289485c8a44dd58ea6b133814ee6bb4c5cbb0 [fs] dax: mark tech preview -https://gitlab.com/cki-project/kernel-ark/-/commit/b894705796f2b6106035e0619bfba627f2cfca18 - b894705796f2b6106035e0619bfba627f2cfca18 arm64: dts: rockchip: Disable CDN DP on Pinebook Pro +https://gitlab.com/cki-project/kernel-ark/-/commit/41801bc70ab175b570a5101d1fe8474de9260071 + 41801bc70ab175b570a5101d1fe8474de9260071 arm64: dts: rockchip: Disable CDN DP on Pinebook Pro -https://gitlab.com/cki-project/kernel-ark/-/commit/b735f326216640ea0610f20245db2f4505619177 - b735f326216640ea0610f20245db2f4505619177 arm64: dts: rockchip: Setup USB typec port as datarole on +https://gitlab.com/cki-project/kernel-ark/-/commit/6f37056f1e5cac95ac10406c2271c0603c9342e6 + 6f37056f1e5cac95ac10406c2271c0603c9342e6 arm64: dts: rockchip: Setup USB typec port as datarole on -https://gitlab.com/cki-project/kernel-ark/-/commit/3156004a8cc7237e5d8bbc933ca7d98cda0de811 - 3156004a8cc7237e5d8bbc933ca7d98cda0de811 [fs] dax: mark tech preview +https://gitlab.com/cki-project/kernel-ark/-/commit/de7e254b3de69d7ffd425cfcc76bb4a36c78a9df + de7e254b3de69d7ffd425cfcc76bb4a36c78a9df [scsi] megaraid_sas: re-add certain pci-ids -https://gitlab.com/cki-project/kernel-ark/-/commit/d92489c57587f99695a76b1c9abadf50676cdab3 - d92489c57587f99695a76b1c9abadf50676cdab3 xfs: drop experimental warnings for bigtime and inobtcount +https://gitlab.com/cki-project/kernel-ark/-/commit/e2bd746621191dd552630ea3cde7c3be01a4ff7b + e2bd746621191dd552630ea3cde7c3be01a4ff7b xfs: drop experimental warnings for bigtime and inobtcount -https://gitlab.com/cki-project/kernel-ark/-/commit/659c5777b5fd4b759b73495bdc072ea8ac80e1d8 - 659c5777b5fd4b759b73495bdc072ea8ac80e1d8 [scsi] megaraid_sas: re-add certain pci-ids +https://gitlab.com/cki-project/kernel-ark/-/commit/37e0042aaf43d4494bcbea2113605366d0fe6187 + 37e0042aaf43d4494bcbea2113605366d0fe6187 crypto: rng - Override drivers/char/random in FIPS mode -https://gitlab.com/cki-project/kernel-ark/-/commit/8313ae8cdf9823adfd53b643de2385fad6deccc5 - 8313ae8cdf9823adfd53b643de2385fad6deccc5 crypto: rng - Override drivers/char/random in FIPS mode +https://gitlab.com/cki-project/kernel-ark/-/commit/7734225ddded42020189e69901e62b81c25778be + 7734225ddded42020189e69901e62b81c25778be random: Add hook to override device reads and getrandom(2) -https://gitlab.com/cki-project/kernel-ark/-/commit/77f4d04971afd67990d04174c971a74bd2bd1fc9 - 77f4d04971afd67990d04174c971a74bd2bd1fc9 random: Add hook to override device reads and getrandom(2) +https://gitlab.com/cki-project/kernel-ark/-/commit/7ffb8896c863bddd42fff07e665c7df9724750e7 + 7ffb8896c863bddd42fff07e665c7df9724750e7 bpf, selftests: Disable tests that need clang13 -https://gitlab.com/cki-project/kernel-ark/-/commit/a34f0f1fdb553a2d11a5220c9e417e3d9d96ee43 - a34f0f1fdb553a2d11a5220c9e417e3d9d96ee43 Revert "ice: mark driver as tech-preview" +https://gitlab.com/cki-project/kernel-ark/-/commit/60ea9a255a95133998b86c6b50389341089eea69 + 60ea9a255a95133998b86c6b50389341089eea69 RHEL: disable io_uring support -https://gitlab.com/cki-project/kernel-ark/-/commit/42130f93b60c5e750ed179c98da57046ea298c54 - 42130f93b60c5e750ed179c98da57046ea298c54 Revert "Drop that for now" +https://gitlab.com/cki-project/kernel-ark/-/commit/786ca1cae5bcd84b34176de4cb85075050a7facc + 786ca1cae5bcd84b34176de4cb85075050a7facc bpf: Fix unprivileged_bpf_disabled setup -https://gitlab.com/cki-project/kernel-ark/-/commit/f843f86a5b5356d32fa33920ecd399b7a4e2f425 - f843f86a5b5356d32fa33920ecd399b7a4e2f425 Revert "bpf: Add tech preview taint for syscall" +https://gitlab.com/cki-project/kernel-ark/-/commit/ba63ad6afc299c773f6cbbdee708037e888cb2ae + ba63ad6afc299c773f6cbbdee708037e888cb2ae nvme: nvme_mpath_init remove multipath check -https://gitlab.com/cki-project/kernel-ark/-/commit/807dd7c3997fc8ed8936a3d1b2da1d158cd9500b - 807dd7c3997fc8ed8936a3d1b2da1d158cd9500b Revert "scsi: smartpqi: add inspur advantech ids" +https://gitlab.com/cki-project/kernel-ark/-/commit/bf350941113935265e0db9c3abf1f672c936056f + bf350941113935265e0db9c3abf1f672c936056f team: mark team driver as deprecated -https://gitlab.com/cki-project/kernel-ark/-/commit/c86a777b719e3777a9663a13a739840fb48a20ef - c86a777b719e3777a9663a13a739840fb48a20ef Revert "kdump: add support for crashkernel=auto" +https://gitlab.com/cki-project/kernel-ark/-/commit/c56f9f652dba0633becb8935737245f21174c110 + c56f9f652dba0633becb8935737245f21174c110 mm/cma: mark CMA on x86_64 tech preview and print RHEL-specific infos -https://gitlab.com/cki-project/kernel-ark/-/commit/0b109d48baa09325c8ccee1557c2dc8cffac781c - 0b109d48baa09325c8ccee1557c2dc8cffac781c Revert "kdump: round up the total memory size to 128M for crashkernel reservation" +https://gitlab.com/cki-project/kernel-ark/-/commit/840b99a9d9375048150b78e2b9eb94340810844a + 840b99a9d9375048150b78e2b9eb94340810844a wireguard: disable in FIPS mode -https://gitlab.com/cki-project/kernel-ark/-/commit/b09992bdcf141528a8904e3f81b0d915f483248d - b09992bdcf141528a8904e3f81b0d915f483248d Revert "kdump: fix a grammar issue in a kernel message" +https://gitlab.com/cki-project/kernel-ark/-/commit/df97820111f4912654ce642d2833807261fddd0a + df97820111f4912654ce642d2833807261fddd0a nvme: decouple basic ANA log page re-read support from native multipathing -https://gitlab.com/cki-project/kernel-ark/-/commit/97a1cde284225696c445ecd5f844bca58e4321db - 97a1cde284225696c445ecd5f844bca58e4321db bpf, selftests: Disable tests that need clang13 +https://gitlab.com/cki-project/kernel-ark/-/commit/15671d5b3aeda1d084a146f4f93c95056af11825 + 15671d5b3aeda1d084a146f4f93c95056af11825 nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT -https://gitlab.com/cki-project/kernel-ark/-/commit/1d28806bcb94de70e41d2f03da6b71c86f88d426 - 1d28806bcb94de70e41d2f03da6b71c86f88d426 PCI: rockchip: Register IRQs just before pci_host_probe() +https://gitlab.com/cki-project/kernel-ark/-/commit/84ddc21ca691f7a6eec997a772601340875730a9 + 84ddc21ca691f7a6eec997a772601340875730a9 nvme: Return BLK_STS_TARGET if the DNR bit is set -https://gitlab.com/cki-project/kernel-ark/-/commit/ab6e4c2fe96f7707be0b4cf117914e82008dbeab - ab6e4c2fe96f7707be0b4cf117914e82008dbeab arm64: dts: rockchip: Update PCI host bridge window to 32-bit address memory +https://gitlab.com/cki-project/kernel-ark/-/commit/63c0f64e7d7e5ab6459cbbb74bce9a0482b6afe3 + 63c0f64e7d7e5ab6459cbbb74bce9a0482b6afe3 wireguard: mark as Tech Preview -https://gitlab.com/cki-project/kernel-ark/-/commit/50f8c7fb77c97617dbf32519a79a00621ea7d1a3 - 50f8c7fb77c97617dbf32519a79a00621ea7d1a3 RHEL: disable io_uring support +https://gitlab.com/cki-project/kernel-ark/-/commit/22965a73f022bd623a58be4f56fd9588309587e7 + 22965a73f022bd623a58be4f56fd9588309587e7 REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70 -https://gitlab.com/cki-project/kernel-ark/-/commit/4e3bfade34d633a40d22aae98e3010830d35cb41 - 4e3bfade34d633a40d22aae98e3010830d35cb41 bpf: Fix unprivileged_bpf_disabled setup +https://gitlab.com/cki-project/kernel-ark/-/commit/e0b7668ffe7cd92d2e6e91a7adeb551da6eebd15 + e0b7668ffe7cd92d2e6e91a7adeb551da6eebd15 redhat: remove remaining references of CONFIG_RH_DISABLE_DEPRECATED -https://gitlab.com/cki-project/kernel-ark/-/commit/4a87114e6d97574f7613ab6a6d970a756eac9108 - 4a87114e6d97574f7613ab6a6d970a756eac9108 nvme: nvme_mpath_init remove multipath check +https://gitlab.com/cki-project/kernel-ark/-/commit/ae14bf5c73ae90b244f766ff8e486289d998434f + ae14bf5c73ae90b244f766ff8e486289d998434f Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only -https://gitlab.com/cki-project/kernel-ark/-/commit/fc7b1ab36fe5e1a46346ad1ebfe1406c0f3f51c0 - fc7b1ab36fe5e1a46346ad1ebfe1406c0f3f51c0 team: mark team driver as deprecated +https://gitlab.com/cki-project/kernel-ark/-/commit/702d353d2f4a1c92a654753fa8a008ef0a691db6 + 702d353d2f4a1c92a654753fa8a008ef0a691db6 arch/x86: Remove vendor specific CPU ID checks -https://gitlab.com/cki-project/kernel-ark/-/commit/942155bb74d838244c26632a1a67afc1177f5a91 - 942155bb74d838244c26632a1a67afc1177f5a91 mm/cma: mark CMA on x86_64 tech preview and print RHEL-specific infos +https://gitlab.com/cki-project/kernel-ark/-/commit/e87219730dfbbd2b626c661981f44ea201e38a48 + e87219730dfbbd2b626c661981f44ea201e38a48 redhat: Replace hardware.redhat.com link in Unsupported message -https://gitlab.com/cki-project/kernel-ark/-/commit/859b93cd16e1f63d21d072a3b6355055e3b52981 - 859b93cd16e1f63d21d072a3b6355055e3b52981 wireguard: disable in FIPS mode +https://gitlab.com/cki-project/kernel-ark/-/commit/83e4c12bcf9bc5a7186960e29ebd703c8f2f96a6 + 83e4c12bcf9bc5a7186960e29ebd703c8f2f96a6 x86: Fix compile issues with rh_check_supported() -https://gitlab.com/cki-project/kernel-ark/-/commit/0b456fcde49d0d13a0c7027f5eeea5acccb888a9 - 0b456fcde49d0d13a0c7027f5eeea5acccb888a9 nvme: decouple basic ANA log page re-read support from native multipathing +https://gitlab.com/cki-project/kernel-ark/-/commit/5e0381929cca1b759de5f6f64f5ba66930e4ae6c + 5e0381929cca1b759de5f6f64f5ba66930e4ae6c KEYS: Make use of platform keyring for module signature verify -https://gitlab.com/cki-project/kernel-ark/-/commit/bc7fe00a59b0c0c2d16c992af8edbd4667e4311c - bc7fe00a59b0c0c2d16c992af8edbd4667e4311c nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT +https://gitlab.com/cki-project/kernel-ark/-/commit/518428c9502cdf3c7aa78124d1a57a8f849edb02 + 518428c9502cdf3c7aa78124d1a57a8f849edb02 Input: rmi4 - remove the need for artificial IRQ in case of HID -https://gitlab.com/cki-project/kernel-ark/-/commit/f305f17d96b123f243b2a2f55eb3d53ec610a25f - f305f17d96b123f243b2a2f55eb3d53ec610a25f nvme: Return BLK_STS_TARGET if the DNR bit is set +https://gitlab.com/cki-project/kernel-ark/-/commit/67898d57906346ff90f824ad043309c1a0df6ca2 + 67898d57906346ff90f824ad043309c1a0df6ca2 ARM: tegra: usb no reset -https://gitlab.com/cki-project/kernel-ark/-/commit/720204bea631d1f3f69cb1633190d2d6c74f233c - 720204bea631d1f3f69cb1633190d2d6c74f233c wireguard: mark as Tech Preview +https://gitlab.com/cki-project/kernel-ark/-/commit/80a44e877e3e2c6e2c7b64e0ac26279070e98b93 + 80a44e877e3e2c6e2c7b64e0ac26279070e98b93 arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT -https://gitlab.com/cki-project/kernel-ark/-/commit/796a43c75a93faadfd6a7081d00759efd941069a - 796a43c75a93faadfd6a7081d00759efd941069a REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70 +https://gitlab.com/cki-project/kernel-ark/-/commit/2843fcb40c63193ad87bf3af2bac67006924bc1e + 2843fcb40c63193ad87bf3af2bac67006924bc1e redhat: rh_kabi: deduplication friendly structs -https://gitlab.com/cki-project/kernel-ark/-/commit/70ed419b16c1e30822945b6449617b31e0fee2ba - 70ed419b16c1e30822945b6449617b31e0fee2ba redhat: remove remaining references of CONFIG_RH_DISABLE_DEPRECATED +https://gitlab.com/cki-project/kernel-ark/-/commit/687fba0fbfb50fa3cc9cd2b6b5b386712a267307 + 687fba0fbfb50fa3cc9cd2b6b5b386712a267307 redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage -https://gitlab.com/cki-project/kernel-ark/-/commit/86a0202994feeaa2a39fb3da64cea3d559efacd3 - 86a0202994feeaa2a39fb3da64cea3d559efacd3 Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only +https://gitlab.com/cki-project/kernel-ark/-/commit/f5c00a7c20cd5537acbfd1e6066c1972654bc1d5 + f5c00a7c20cd5537acbfd1e6066c1972654bc1d5 redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE -https://gitlab.com/cki-project/kernel-ark/-/commit/a8657b2bc8ca545eed3fb10aabb2e112121b2707 - a8657b2bc8ca545eed3fb10aabb2e112121b2707 arch/x86: Remove vendor specific CPU ID checks +https://gitlab.com/cki-project/kernel-ark/-/commit/531826346544a75b291b5afc78175854d0e25601 + 531826346544a75b291b5afc78175854d0e25601 redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. -https://gitlab.com/cki-project/kernel-ark/-/commit/e8b3592502d30494cb1675f6de1d4478590217b8 - e8b3592502d30494cb1675f6de1d4478590217b8 redhat: Replace hardware.redhat.com link in Unsupported message +https://gitlab.com/cki-project/kernel-ark/-/commit/d2e466ff7ad0a589ffb32b972003d55beaf00a55 + d2e466ff7ad0a589ffb32b972003d55beaf00a55 redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator -https://gitlab.com/cki-project/kernel-ark/-/commit/25b5b66a316d8207c829fc17c554030e5aec1521 - 25b5b66a316d8207c829fc17c554030e5aec1521 x86: Fix compile issues with rh_check_supported() +https://gitlab.com/cki-project/kernel-ark/-/commit/2211cd0f7084b08986f1b7db1950beaca9f63be5 + 2211cd0f7084b08986f1b7db1950beaca9f63be5 redhat: rh_kabi: Add macros to size and extend structs -https://gitlab.com/cki-project/kernel-ark/-/commit/785dcd2368905f54eeb9e895cbb3bd0ab544ab62 - 785dcd2368905f54eeb9e895cbb3bd0ab544ab62 KEYS: Make use of platform keyring for module signature verify +https://gitlab.com/cki-project/kernel-ark/-/commit/7ed290f78765a15cb555d5d2d3e310d2be0adf5e + 7ed290f78765a15cb555d5d2d3e310d2be0adf5e Removing Obsolete hba pci-ids from rhel8 -https://gitlab.com/cki-project/kernel-ark/-/commit/1f80f9253eb2b6a5f63e2053d8e54062791bcff7 - 1f80f9253eb2b6a5f63e2053d8e54062791bcff7 Drop that for now +https://gitlab.com/cki-project/kernel-ark/-/commit/ee382017e8c6aef94aa5b80fd3a3c34ed5010ead + ee382017e8c6aef94aa5b80fd3a3c34ed5010ead mptsas: pci-id table changes -https://gitlab.com/cki-project/kernel-ark/-/commit/c8d8cc89cae059cd7a24d9f3686695c92e70e536 - c8d8cc89cae059cd7a24d9f3686695c92e70e536 Input: rmi4 - remove the need for artificial IRQ in case of HID +https://gitlab.com/cki-project/kernel-ark/-/commit/c2b3035917b8594e9906107dd06f13135c36fe7d + c2b3035917b8594e9906107dd06f13135c36fe7d mptsas: Taint kernel if mptsas is loaded -https://gitlab.com/cki-project/kernel-ark/-/commit/9cbb00d858771652b5c764b254fa66cabfcdeb1e - 9cbb00d858771652b5c764b254fa66cabfcdeb1e ARM: tegra: usb no reset +https://gitlab.com/cki-project/kernel-ark/-/commit/7034944b60f826e24117590d280796dcad8f7518 + 7034944b60f826e24117590d280796dcad8f7518 mptspi: pci-id table changes -https://gitlab.com/cki-project/kernel-ark/-/commit/cdedb23bb628678ede64e53af1981f67eb124414 - cdedb23bb628678ede64e53af1981f67eb124414 arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT +https://gitlab.com/cki-project/kernel-ark/-/commit/344ae03f7e3abae98815335cd0741da4092793e3 + 344ae03f7e3abae98815335cd0741da4092793e3 qla2xxx: Remove PCI IDs of deprecated adapter -https://gitlab.com/cki-project/kernel-ark/-/commit/ddd94771f49b9b8c8e8ce014f26f4c0b4dcdef18 - ddd94771f49b9b8c8e8ce014f26f4c0b4dcdef18 redhat: rh_kabi: deduplication friendly structs +https://gitlab.com/cki-project/kernel-ark/-/commit/098baeebbe0bfb93afd40a815f611a1ace134ae6 + 098baeebbe0bfb93afd40a815f611a1ace134ae6 be2iscsi: remove unsupported device IDs -https://gitlab.com/cki-project/kernel-ark/-/commit/2e0af02d44a790b11c1a4d68789318e6b26f33d3 - 2e0af02d44a790b11c1a4d68789318e6b26f33d3 redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage +https://gitlab.com/cki-project/kernel-ark/-/commit/67ac7dcc2abc276b06f5c77bee42050da3a63473 + 67ac7dcc2abc276b06f5c77bee42050da3a63473 mptspi: Taint kernel if mptspi is loaded -https://gitlab.com/cki-project/kernel-ark/-/commit/327d9febbf4755ca666088bff7ba00e2174b790a - 327d9febbf4755ca666088bff7ba00e2174b790a redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE +https://gitlab.com/cki-project/kernel-ark/-/commit/f609237dc9bd69e9b0d8c7b902217dd3d0b67115 + f609237dc9bd69e9b0d8c7b902217dd3d0b67115 hpsa: remove old cciss-based smartarray pci ids -https://gitlab.com/cki-project/kernel-ark/-/commit/205ffc7d9cb749b9dc602e1127d54a0fb48f606d - 205ffc7d9cb749b9dc602e1127d54a0fb48f606d redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. +https://gitlab.com/cki-project/kernel-ark/-/commit/c6b10bcd198521d0a06d1df8de4f801c27132c28 + c6b10bcd198521d0a06d1df8de4f801c27132c28 qla4xxx: Remove deprecated PCI IDs from RHEL 8 -https://gitlab.com/cki-project/kernel-ark/-/commit/886a2c48095fbee8974a3b668b00d8397f2178b3 - 886a2c48095fbee8974a3b668b00d8397f2178b3 redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator +https://gitlab.com/cki-project/kernel-ark/-/commit/81abd2b189a562ef99316d9419f031ae678e785a + 81abd2b189a562ef99316d9419f031ae678e785a aacraid: Remove depreciated device and vendor PCI id's -https://gitlab.com/cki-project/kernel-ark/-/commit/73c63a17d17ded579e55c7f303915b261d72cee8 - 73c63a17d17ded579e55c7f303915b261d72cee8 redhat: rh_kabi: Add macros to size and extend structs +https://gitlab.com/cki-project/kernel-ark/-/commit/9e89075cef3ec0e7858553689922b8deba3f029a + 9e89075cef3ec0e7858553689922b8deba3f029a megaraid_sas: remove deprecated pci-ids -https://gitlab.com/cki-project/kernel-ark/-/commit/bf483e500e94f677da583fb60e0a7ae9d84a525c - bf483e500e94f677da583fb60e0a7ae9d84a525c Removing Obsolete hba pci-ids from rhel8 +https://gitlab.com/cki-project/kernel-ark/-/commit/60f540b911feef0086d55147aef26d9ed4ed130c + 60f540b911feef0086d55147aef26d9ed4ed130c mpt*: remove certain deprecated pci-ids -https://gitlab.com/cki-project/kernel-ark/-/commit/6060079f22e28071af41c0f3b4254f6fb9e66718 - 6060079f22e28071af41c0f3b4254f6fb9e66718 mptsas: pci-id table changes +https://gitlab.com/cki-project/kernel-ark/-/commit/8a9bf88e9d127580dc3b2356e532d0df28312e9a + 8a9bf88e9d127580dc3b2356e532d0df28312e9a kernel: add SUPPORT_REMOVED kernel taint -https://gitlab.com/cki-project/kernel-ark/-/commit/33a41c2665c4689ea0182669e33212878fe077c7 - 33a41c2665c4689ea0182669e33212878fe077c7 mptsas: Taint kernel if mptsas is loaded +https://gitlab.com/cki-project/kernel-ark/-/commit/096684c2cb48219cb0283222970cade0ab0a6dab + 096684c2cb48219cb0283222970cade0ab0a6dab Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES -https://gitlab.com/cki-project/kernel-ark/-/commit/2836c490fc1661017845b52b6dd550e8857f1641 - 2836c490fc1661017845b52b6dd550e8857f1641 mptspi: pci-id table changes +https://gitlab.com/cki-project/kernel-ark/-/commit/9c5c002fb6bbd7ffd591c765c587338b2500d30e + 9c5c002fb6bbd7ffd591c765c587338b2500d30e Add option of 13 for FORCE_MAX_ZONEORDER -https://gitlab.com/cki-project/kernel-ark/-/commit/7271c15c662c3ec60d26645b5249eb3e458fb9f8 - 7271c15c662c3ec60d26645b5249eb3e458fb9f8 qla2xxx: Remove PCI IDs of deprecated adapter +https://gitlab.com/cki-project/kernel-ark/-/commit/0d4a6e4961fbca6ed861e8950da999516c0e668b + 0d4a6e4961fbca6ed861e8950da999516c0e668b s390: Lock down the kernel when the IPL secure flag is set -https://gitlab.com/cki-project/kernel-ark/-/commit/cc63fd977b64b8e5ab0405dcd8cd80c8699450c7 - cc63fd977b64b8e5ab0405dcd8cd80c8699450c7 be2iscsi: remove unsupported device IDs +https://gitlab.com/cki-project/kernel-ark/-/commit/dc67b5f4fd4ae3763394495ded0dd405c341f10e + dc67b5f4fd4ae3763394495ded0dd405c341f10e efi: Lock down the kernel if booted in secure boot mode -https://gitlab.com/cki-project/kernel-ark/-/commit/9c472bb912f12d9cf5f7dd3bdd3ea555526bf3f6 - 9c472bb912f12d9cf5f7dd3bdd3ea555526bf3f6 mptspi: Taint kernel if mptspi is loaded +https://gitlab.com/cki-project/kernel-ark/-/commit/22705ce40e365709b96a8a3065760f18cf81286b + 22705ce40e365709b96a8a3065760f18cf81286b efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode -https://gitlab.com/cki-project/kernel-ark/-/commit/4b286994ed23bd794272a0207afa52dbd6be011b - 4b286994ed23bd794272a0207afa52dbd6be011b hpsa: remove old cciss-based smartarray pci ids +https://gitlab.com/cki-project/kernel-ark/-/commit/7eb67f94a0478a32ac6bb14fe0db0d3b4153150d + 7eb67f94a0478a32ac6bb14fe0db0d3b4153150d security: lockdown: expose a hook to lock the kernel down -https://gitlab.com/cki-project/kernel-ark/-/commit/5c907fb5a3855b8b04c3d06164b745d150281aa5 - 5c907fb5a3855b8b04c3d06164b745d150281aa5 qla4xxx: Remove deprecated PCI IDs from RHEL 8 +https://gitlab.com/cki-project/kernel-ark/-/commit/93e316e6044e6e4748589c3f3d5fb8896bed0562 + 93e316e6044e6e4748589c3f3d5fb8896bed0562 Make get_cert_list() use efi_status_to_str() to print error messages. -https://gitlab.com/cki-project/kernel-ark/-/commit/29d5a199061363c87fa52aa4a07cd9309f5c7321 - 29d5a199061363c87fa52aa4a07cd9309f5c7321 aacraid: Remove depreciated device and vendor PCI id's +https://gitlab.com/cki-project/kernel-ark/-/commit/7408475406e59bc4e6579890629d7fd41b806f05 + 7408475406e59bc4e6579890629d7fd41b806f05 Add efi_status_to_str() and rework efi_status_to_err(). -https://gitlab.com/cki-project/kernel-ark/-/commit/f3abf29e472be70fbb83c27cc34330150231a5d6 - f3abf29e472be70fbb83c27cc34330150231a5d6 megaraid_sas: remove deprecated pci-ids +https://gitlab.com/cki-project/kernel-ark/-/commit/2ebec7e20530286d0be67d44ddc89aeb078d8266 + 2ebec7e20530286d0be67d44ddc89aeb078d8266 Add support for deprecating processors -https://gitlab.com/cki-project/kernel-ark/-/commit/66d1c99d9a2f064c4429559d558beaf23432f827 - 66d1c99d9a2f064c4429559d558beaf23432f827 mpt*: remove certain deprecated pci-ids +https://gitlab.com/cki-project/kernel-ark/-/commit/f4de4b173f7de35beb7d2fb25e326181fd77cf9c + f4de4b173f7de35beb7d2fb25e326181fd77cf9c arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT -https://gitlab.com/cki-project/kernel-ark/-/commit/bbe8a9a0bd221aae242a73a29c3a63d6a1a2505d - bbe8a9a0bd221aae242a73a29c3a63d6a1a2505d kernel: add SUPPORT_REMOVED kernel taint +https://gitlab.com/cki-project/kernel-ark/-/commit/7b37a2f62ede99b24cb05139d8235bce2603429f + 7b37a2f62ede99b24cb05139d8235bce2603429f iommu/arm-smmu: workaround DMA mode issues -https://gitlab.com/cki-project/kernel-ark/-/commit/5d1f998e7f18d3f2d1145c47693ad38b33ad31a0 - 5d1f998e7f18d3f2d1145c47693ad38b33ad31a0 Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES +https://gitlab.com/cki-project/kernel-ark/-/commit/51810484d6d991fd0bfd332b04e8563b8fe9feda + 51810484d6d991fd0bfd332b04e8563b8fe9feda rh_kabi: introduce RH_KABI_EXCLUDE -https://gitlab.com/cki-project/kernel-ark/-/commit/d777645f6b92abb5fbd34edc826d7c5fbc939066 - d777645f6b92abb5fbd34edc826d7c5fbc939066 Add option of 13 for FORCE_MAX_ZONEORDER +https://gitlab.com/cki-project/kernel-ark/-/commit/9e35c09b5d59b70c443d3762c547a19537fd8f05 + 9e35c09b5d59b70c443d3762c547a19537fd8f05 ipmi: do not configure ipmi for HPE m400 -https://gitlab.com/cki-project/kernel-ark/-/commit/23e98b4145f8232c517247ad44dba9c3b6473aad - 23e98b4145f8232c517247ad44dba9c3b6473aad s390: Lock down the kernel when the IPL secure flag is set +https://gitlab.com/cki-project/kernel-ark/-/commit/bbe1f3e99d9c33e47650d7c518b4fc44ba8c7649 + bbe1f3e99d9c33e47650d7c518b4fc44ba8c7649 kABI: Add generic kABI macros to use for kABI workarounds -https://gitlab.com/cki-project/kernel-ark/-/commit/8db0c71d8c5181563b4070a4af8b4a0cab6a7704 - 8db0c71d8c5181563b4070a4af8b4a0cab6a7704 efi: Lock down the kernel if booted in secure boot mode +https://gitlab.com/cki-project/kernel-ark/-/commit/51b35f4357a66eea79b34aee4bfa90b697f1b44a + 51b35f4357a66eea79b34aee4bfa90b697f1b44a add pci_hw_vendor_status() -https://gitlab.com/cki-project/kernel-ark/-/commit/cae380dfa9b98a5fe828cb12e058cb210f12bbef - cae380dfa9b98a5fe828cb12e058cb210f12bbef efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode +https://gitlab.com/cki-project/kernel-ark/-/commit/4bfbf90b26abf33622f46df22360153bcb7154d9 + 4bfbf90b26abf33622f46df22360153bcb7154d9 ahci: thunderx2: Fix for errata that affects stop engine -https://gitlab.com/cki-project/kernel-ark/-/commit/4b75e708052ef58b47e456f7b9497f4f88574077 - 4b75e708052ef58b47e456f7b9497f4f88574077 security: lockdown: expose a hook to lock the kernel down +https://gitlab.com/cki-project/kernel-ark/-/commit/4e05d8a20fdb635627f111a34de1b9ea48864540 + 4e05d8a20fdb635627f111a34de1b9ea48864540 Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon -https://gitlab.com/cki-project/kernel-ark/-/commit/2af922f4840f98adc5b780356e9ff73c114221b7 - 2af922f4840f98adc5b780356e9ff73c114221b7 Make get_cert_list() use efi_status_to_str() to print error messages. +https://gitlab.com/cki-project/kernel-ark/-/commit/9ce398ab77c97491096a08332d416d6422d1261f + 9ce398ab77c97491096a08332d416d6422d1261f bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter -https://gitlab.com/cki-project/kernel-ark/-/commit/4d16b7699c1f4ca766af007e06cb144135d31647 - 4d16b7699c1f4ca766af007e06cb144135d31647 Add efi_status_to_str() and rework efi_status_to_err(). +https://gitlab.com/cki-project/kernel-ark/-/commit/d3c11e8d593c748b64d7170adefbd4f33a9e3ef7 + d3c11e8d593c748b64d7170adefbd4f33a9e3ef7 add Red Hat-specific taint flags -https://gitlab.com/cki-project/kernel-ark/-/commit/e1ed07005c30deac917eb4c367d0d1cfa03240c6 - e1ed07005c30deac917eb4c367d0d1cfa03240c6 Add support for deprecating processors +https://gitlab.com/cki-project/kernel-ark/-/commit/abae7ce67e2db14f93b3d1c2ebdb1c8e6e2d6478 + abae7ce67e2db14f93b3d1c2ebdb1c8e6e2d6478 tags.sh: Ignore redhat/rpm -https://gitlab.com/cki-project/kernel-ark/-/commit/9a6b87c1d98199dc087596c4a68a43931c8a6864 - 9a6b87c1d98199dc087596c4a68a43931c8a6864 arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT +https://gitlab.com/cki-project/kernel-ark/-/commit/d603bdb7714e85fd7ad75c051cfc1298c42ed6eb + d603bdb7714e85fd7ad75c051cfc1298c42ed6eb put RHEL info into generated headers -https://gitlab.com/cki-project/kernel-ark/-/commit/40f622ec0d86309b2cd9a54d2219fefe9491245c - 40f622ec0d86309b2cd9a54d2219fefe9491245c iommu/arm-smmu: workaround DMA mode issues +https://gitlab.com/cki-project/kernel-ark/-/commit/7e4dc6ad7b68cabc41f9be926dadb93147d92af9 + 7e4dc6ad7b68cabc41f9be926dadb93147d92af9 acpi: prefer booting with ACPI over DTS -https://gitlab.com/cki-project/kernel-ark/-/commit/306e29b464801ddf07e5d021cefbbc5c3ea4010f - 306e29b464801ddf07e5d021cefbbc5c3ea4010f rh_kabi: introduce RH_KABI_EXCLUDE +https://gitlab.com/cki-project/kernel-ark/-/commit/e31b8137cbf455e912240d2b35c7d0962b34522f + e31b8137cbf455e912240d2b35c7d0962b34522f aarch64: acpi scan: Fix regression related to X-Gene UARTs -https://gitlab.com/cki-project/kernel-ark/-/commit/54af0e08d528a9ba2dac0e6d8f55f12169fb69d0 - 54af0e08d528a9ba2dac0e6d8f55f12169fb69d0 ipmi: do not configure ipmi for HPE m400 +https://gitlab.com/cki-project/kernel-ark/-/commit/7e0a2ca8b0842706eeb2a3686804a7b8168f3ccb + 7e0a2ca8b0842706eeb2a3686804a7b8168f3ccb ACPI / irq: Workaround firmware issue on X-Gene based m400 -https://gitlab.com/cki-project/kernel-ark/-/commit/c54211b70e8e9f062803f03c9fa5906d8d5ca02c - c54211b70e8e9f062803f03c9fa5906d8d5ca02c IB/rxe: Mark Soft-RoCE Transport driver as tech-preview +https://gitlab.com/cki-project/kernel-ark/-/commit/d2857e67599ce2d97f9995d6856d49f95ab4a9b7 + d2857e67599ce2d97f9995d6856d49f95ab4a9b7 modules: add rhelversion MODULE_INFO tag -https://gitlab.com/cki-project/kernel-ark/-/commit/5330336348c05ca65b2d3c485ffff4ef0f5ddf3a - 5330336348c05ca65b2d3c485ffff4ef0f5ddf3a scsi: smartpqi: add inspur advantech ids +https://gitlab.com/cki-project/kernel-ark/-/commit/1fbf4313b15db2785208791fe2dfb0e7ca24b9eb + 1fbf4313b15db2785208791fe2dfb0e7ca24b9eb ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support -https://gitlab.com/cki-project/kernel-ark/-/commit/642c4ae991474c59124e20ad9531dcbd47743e58 - 642c4ae991474c59124e20ad9531dcbd47743e58 ice: mark driver as tech-preview +https://gitlab.com/cki-project/kernel-ark/-/commit/54b6d49a09eb7d00a28ec7b0270ae922c3368701 + 54b6d49a09eb7d00a28ec7b0270ae922c3368701 Add Red Hat tainting -https://gitlab.com/cki-project/kernel-ark/-/commit/373400877917cf9dba7977afd087bb1d94dded41 - 373400877917cf9dba7977afd087bb1d94dded41 kABI: Add generic kABI macros to use for kABI workarounds +https://gitlab.com/cki-project/kernel-ark/-/commit/f36d30523dc3f8448406f10842a131fb7f766191 + f36d30523dc3f8448406f10842a131fb7f766191 Introduce CONFIG_RH_DISABLE_DEPRECATED -https://gitlab.com/cki-project/kernel-ark/-/commit/f771c5d00a76a580a2db9d18e9ae6b9c2f0010c2 - f771c5d00a76a580a2db9d18e9ae6b9c2f0010c2 add pci_hw_vendor_status() +https://gitlab.com/cki-project/kernel-ark/-/commit/20afc3fa183b13bcbfdb96002f7a8085d1611e3e + 20afc3fa183b13bcbfdb96002f7a8085d1611e3e Pull the RHEL version defines out of the Makefile -https://gitlab.com/cki-project/kernel-ark/-/commit/69a21fa9fa6bc0b5035384093a5e8420ad9dd221 - 69a21fa9fa6bc0b5035384093a5e8420ad9dd221 ahci: thunderx2: Fix for errata that affects stop engine - -https://gitlab.com/cki-project/kernel-ark/-/commit/e70c7ae4016cb724f810166d476de8bffbe66d25 - e70c7ae4016cb724f810166d476de8bffbe66d25 Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon - -https://gitlab.com/cki-project/kernel-ark/-/commit/064cac0e85883d89bb45f3cce00e2f1eb9e0b8df - 064cac0e85883d89bb45f3cce00e2f1eb9e0b8df bpf: Add tech preview taint for syscall - -https://gitlab.com/cki-project/kernel-ark/-/commit/87744daea4da21b2dfab83b2ec3064875b1c1058 - 87744daea4da21b2dfab83b2ec3064875b1c1058 bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter - -https://gitlab.com/cki-project/kernel-ark/-/commit/279af733167ee222e78498729b5a06db35cbcd9d - 279af733167ee222e78498729b5a06db35cbcd9d add Red Hat-specific taint flags - -https://gitlab.com/cki-project/kernel-ark/-/commit/b58ece80bfcf5683511152cd0b3130e514228e91 - b58ece80bfcf5683511152cd0b3130e514228e91 kdump: fix a grammar issue in a kernel message - -https://gitlab.com/cki-project/kernel-ark/-/commit/64bc02f469aac5305866556d4ccf250bfcc0e9c9 - 64bc02f469aac5305866556d4ccf250bfcc0e9c9 tags.sh: Ignore redhat/rpm - -https://gitlab.com/cki-project/kernel-ark/-/commit/e334f652a24618f69cc9f932bd1121a0695f2af5 - e334f652a24618f69cc9f932bd1121a0695f2af5 put RHEL info into generated headers - -https://gitlab.com/cki-project/kernel-ark/-/commit/f64b9d8e602582b5a0e6265c8b67597ea6c0c2ec - f64b9d8e602582b5a0e6265c8b67597ea6c0c2ec kdump: add support for crashkernel=auto - -https://gitlab.com/cki-project/kernel-ark/-/commit/a1417600eb23ef78aaafe5ddff495b9e3a8dfbce - a1417600eb23ef78aaafe5ddff495b9e3a8dfbce kdump: round up the total memory size to 128M for crashkernel reservation - -https://gitlab.com/cki-project/kernel-ark/-/commit/cc33b3e0a29c11d97faf2991ed5973fa7966eaad - cc33b3e0a29c11d97faf2991ed5973fa7966eaad acpi: prefer booting with ACPI over DTS - -https://gitlab.com/cki-project/kernel-ark/-/commit/149c42edf76af3c145dd7178257c6e0bf3281f64 - 149c42edf76af3c145dd7178257c6e0bf3281f64 aarch64: acpi scan: Fix regression related to X-Gene UARTs - -https://gitlab.com/cki-project/kernel-ark/-/commit/995c5e2a2650a3ea53322306eb9743e8503cc184 - 995c5e2a2650a3ea53322306eb9743e8503cc184 ACPI / irq: Workaround firmware issue on X-Gene based m400 - -https://gitlab.com/cki-project/kernel-ark/-/commit/f9a8e78b4f30d0c532f77b24d644c17b328a4bea - f9a8e78b4f30d0c532f77b24d644c17b328a4bea modules: add rhelversion MODULE_INFO tag - -https://gitlab.com/cki-project/kernel-ark/-/commit/8ce71256601b9e3b51fec68271b6a85bd898c40c - 8ce71256601b9e3b51fec68271b6a85bd898c40c ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support - -https://gitlab.com/cki-project/kernel-ark/-/commit/e4c2685781281f5bfaab9107dc93f2e94b12c227 - e4c2685781281f5bfaab9107dc93f2e94b12c227 Add Red Hat tainting - -https://gitlab.com/cki-project/kernel-ark/-/commit/5e521fca94640717cc1d3bb5680860b0628cb072 - 5e521fca94640717cc1d3bb5680860b0628cb072 Introduce CONFIG_RH_DISABLE_DEPRECATED - -https://gitlab.com/cki-project/kernel-ark/-/commit/27b6eeac8c596c848a530f0a56a3f497833b689b - 27b6eeac8c596c848a530f0a56a3f497833b689b Pull the RHEL version defines out of the Makefile - -https://gitlab.com/cki-project/kernel-ark/-/commit/d1036d96f7d8ac3df30ddb5cd461a3fbf7d3bf1b - d1036d96f7d8ac3df30ddb5cd461a3fbf7d3bf1b [initial commit] Add Red Hat variables in the top level makefile +https://gitlab.com/cki-project/kernel-ark/-/commit/3468b32f1b1a498b157480f6eea0b5cfacb47c09 + 3468b32f1b1a498b157480f6eea0b5cfacb47c09 [initial commit] Add Red Hat variables in the top level makefile diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 3e09fa3d3..74bf4e37a 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -1006,6 +1006,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set CONFIG_CHARGER_BQ25980=m +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set CONFIG_CHARGER_GPIO=m @@ -1439,6 +1440,8 @@ CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3_ARM64_CE is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4_ARM64_CE is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y @@ -2402,6 +2405,7 @@ CONFIG_GPIO_PCI_IDIO_16=m CONFIG_GPIO_PL061=y CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2623,6 +2627,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_CAVIUM=m @@ -3364,6 +3369,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_SW_TAGS is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -4085,6 +4091,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -5091,6 +5099,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -5323,6 +5332,7 @@ CONFIG_POWER_RESET_REGULATOR=y CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_TPS65086 is not set CONFIG_POWER_RESET_VERSATILE=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET_XGENE=y @@ -5684,6 +5694,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY8106A=m # CONFIG_REGULATOR_SY8824X is not set @@ -7196,6 +7208,7 @@ CONFIG_SPI_QCOM_GENI=m CONFIG_SPI_QCOM_QSPI=m CONFIG_SPI_QUP=m CONFIG_SPI_ROCKCHIP=m +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-aarch64-debug-rhel.config b/kernel-aarch64-debug-rhel.config index 29d7e4646..61493abc9 100644 --- a/kernel-aarch64-debug-rhel.config +++ b/kernel-aarch64-debug-rhel.config @@ -1073,6 +1073,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3_ARM64_CE is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4_ARM64_CE is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set @@ -2087,6 +2089,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set @@ -2701,6 +2704,7 @@ CONFIG_KASAN_INLINE=y CONFIG_KASAN_VMALLOC=y CONFIG_KASAN=y # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x1 CONFIG_KDB_KEYBOARD=y @@ -3324,6 +3328,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4146,6 +4152,7 @@ CONFIG_PCS_XPCS=m # CONFIG_PEAQ_WMI is not set CONFIG_PERCPU_STATS=y CONFIG_PERCPU_TEST=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index da658beba..61c3841e6 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -1006,6 +1006,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set CONFIG_CHARGER_BQ25980=m +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set CONFIG_CHARGER_GPIO=m @@ -1439,6 +1440,8 @@ CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3_ARM64_CE is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4_ARM64_CE is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y @@ -2386,6 +2389,7 @@ CONFIG_GPIO_PCI_IDIO_16=m CONFIG_GPIO_PL061=y CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2607,6 +2611,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_CAVIUM=m @@ -3344,6 +3349,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_SW_TAGS is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_GZIP=y @@ -4062,6 +4068,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -5068,6 +5076,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -5300,6 +5309,7 @@ CONFIG_POWER_RESET_REGULATOR=y CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_TPS65086 is not set CONFIG_POWER_RESET_VERSATILE=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET_XGENE=y @@ -5661,6 +5671,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_SY8106A=m # CONFIG_REGULATOR_SY8824X is not set @@ -7171,6 +7183,7 @@ CONFIG_SPI_QCOM_GENI=m CONFIG_SPI_QCOM_QSPI=m CONFIG_SPI_QUP=m CONFIG_SPI_ROCKCHIP=m +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-aarch64-rhel.config b/kernel-aarch64-rhel.config index ab75889ce..060e118f1 100644 --- a/kernel-aarch64-rhel.config +++ b/kernel-aarch64-rhel.config @@ -1073,6 +1073,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3_ARM64_CE is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4_ARM64_CE is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set @@ -2071,6 +2073,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_CAVIUM=m # CONFIG_HW_RANDOM_CCTRNG is not set @@ -2681,6 +2684,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_SW_TAGS is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3304,6 +3308,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4125,6 +4131,7 @@ CONFIG_PCS_XPCS=m # CONFIG_PEAQ_WMI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index eddd4379d..622ec2a11 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -1025,6 +1025,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set CONFIG_CHARGER_GPIO=m @@ -1430,6 +1431,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2422,6 +2425,7 @@ CONFIG_GPIO_PISOSR=m CONFIG_GPIO_PL061=y CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2642,6 +2646,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_BCM2835=m # CONFIG_HW_RANDOM_CCTRNG is not set @@ -3394,6 +3399,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_OUTLINE is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -4155,6 +4161,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -5183,6 +5191,7 @@ CONFIG_PDA_POWER=m CONFIG_PDC_ADMA=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -5425,6 +5434,7 @@ CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_ST=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_TPS65086 is not set CONFIG_POWER_RESET_VERSATILE=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET=y @@ -5784,6 +5794,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set CONFIG_REGULATOR_S2MPA01=m CONFIG_REGULATOR_S2MPS11=m CONFIG_REGULATOR_S5M8767=m @@ -7382,6 +7394,7 @@ CONFIG_SPI_PXA2XX=m CONFIG_SPI_QCOM_QSPI=m CONFIG_SPI_QUP=m CONFIG_SPI_ROCKCHIP=m +# CONFIG_SPI_ROCKCHIP_SFC is not set CONFIG_SPI_S3C64XX=m # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index dcec67aec..5688a2597 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -1025,6 +1025,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set CONFIG_CHARGER_GPIO=m @@ -1430,6 +1431,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2407,6 +2410,7 @@ CONFIG_GPIO_PISOSR=m CONFIG_GPIO_PL061=y CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2627,6 +2631,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_BCM2835=m # CONFIG_HW_RANDOM_CCTRNG is not set @@ -3375,6 +3380,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_GZIP=y @@ -4133,6 +4139,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -5161,6 +5169,7 @@ CONFIG_PDA_POWER=m CONFIG_PDC_ADMA=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -5403,6 +5412,7 @@ CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_ST=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_TPS65086 is not set CONFIG_POWER_RESET_VERSATILE=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET=y @@ -5762,6 +5772,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set CONFIG_REGULATOR_S2MPA01=m CONFIG_REGULATOR_S2MPS11=m CONFIG_REGULATOR_S5M8767=m @@ -7358,6 +7370,7 @@ CONFIG_SPI_PXA2XX=m CONFIG_SPI_QCOM_QSPI=m CONFIG_SPI_QUP=m CONFIG_SPI_ROCKCHIP=m +# CONFIG_SPI_ROCKCHIP_SFC is not set CONFIG_SPI_S3C64XX=m # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index fdb9440ff..123ea8f51 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -1002,6 +1002,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set CONFIG_CHARGER_GPIO=m @@ -1400,6 +1401,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2372,6 +2375,7 @@ CONFIG_GPIO_PISOSR=m CONFIG_GPIO_PL061=y CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2588,6 +2592,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_BCM2835=m # CONFIG_HW_RANDOM_CCTRNG is not set @@ -3326,6 +3331,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_OUTLINE is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -4063,6 +4069,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -5069,6 +5077,7 @@ CONFIG_PDA_POWER=m CONFIG_PDC_ADMA=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -5291,6 +5300,7 @@ CONFIG_POWER_RESET_REGULATOR=y CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_TPS65086 is not set CONFIG_POWER_RESET_VERSATILE=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET=y @@ -5611,6 +5621,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set CONFIG_REGULATOR_S2MPA01=m CONFIG_REGULATOR_S2MPS11=m CONFIG_REGULATOR_S5M8767=m @@ -7149,6 +7161,7 @@ CONFIG_SPI_ORION=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set CONFIG_SPI_ROCKCHIP=m +# CONFIG_SPI_ROCKCHIP_SFC is not set CONFIG_SPI_S3C64XX=m # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index eda6f055b..396a3dc82 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -1002,6 +1002,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set CONFIG_CHARGER_GPIO=m @@ -1400,6 +1401,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2357,6 +2360,7 @@ CONFIG_GPIO_PISOSR=m CONFIG_GPIO_PL061=y CONFIG_GPIO_RASPBERRYPI_EXP=m # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2573,6 +2577,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set CONFIG_HW_RANDOM_BCM2835=m # CONFIG_HW_RANDOM_CCTRNG is not set @@ -3307,6 +3312,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_GZIP=y @@ -4041,6 +4047,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -5047,6 +5055,7 @@ CONFIG_PDA_POWER=m CONFIG_PDC_ADMA=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -5269,6 +5278,7 @@ CONFIG_POWER_RESET_REGULATOR=y CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_TPS65086 is not set CONFIG_POWER_RESET_VERSATILE=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET=y @@ -5589,6 +5599,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set CONFIG_REGULATOR_S2MPA01=m CONFIG_REGULATOR_S2MPS11=m CONFIG_REGULATOR_S5M8767=m @@ -7125,6 +7137,7 @@ CONFIG_SPI_ORION=m CONFIG_SPI_PL022=m # CONFIG_SPI_PXA2XX is not set CONFIG_SPI_ROCKCHIP=m +# CONFIG_SPI_ROCKCHIP_SFC is not set CONFIG_SPI_S3C64XX=m # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config index d39096a05..9f43bf4c0 100644 --- a/kernel-i686-debug-fedora.config +++ b/kernel-i686-debug-fedora.config @@ -824,6 +824,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1134,6 +1135,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2066,6 +2069,7 @@ CONFIG_GPIO_PCA9570=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set CONFIG_GPIO_SCH=m @@ -2291,6 +2295,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_GEODE=m @@ -3713,6 +3718,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4680,6 +4687,7 @@ CONFIG_PEAQ_WMI=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_UNCORE=m @@ -4832,6 +4840,7 @@ CONFIG_POWER_RESET_GPIO=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_SUPPLY_DEBUG is not set @@ -5103,6 +5112,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6509,6 +6520,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config index 2e4315f1f..2e5b01629 100644 --- a/kernel-i686-fedora.config +++ b/kernel-i686-fedora.config @@ -823,6 +823,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1133,6 +1134,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2049,6 +2052,7 @@ CONFIG_GPIO_PCA9570=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set CONFIG_GPIO_SCH=m @@ -2274,6 +2278,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_GEODE=m @@ -3691,6 +3696,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4658,6 +4665,7 @@ CONFIG_PEAQ_WMI=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_UNCORE=m @@ -4810,6 +4818,7 @@ CONFIG_POWER_RESET_GPIO=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_SUPPLY_DEBUG is not set @@ -5081,6 +5090,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6485,6 +6496,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 0ed62d23b..363aef10b 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -781,6 +781,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m # CONFIG_CHARGER_CROS_USBPD is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1074,6 +1075,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -1928,6 +1931,7 @@ CONFIG_GPIO_PCF857X=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2139,6 +2143,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_POWERNV=m @@ -2792,6 +2797,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_OUTLINE is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3451,6 +3457,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4358,6 +4366,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -4491,6 +4500,7 @@ CONFIG_POWER_RESET_GPIO=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_SUPPLY_DEBUG is not set @@ -4784,6 +4794,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6175,6 +6187,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-ppc64le-debug-rhel.config b/kernel-ppc64le-debug-rhel.config index cda427dac..371e811b4 100644 --- a/kernel-ppc64le-debug-rhel.config +++ b/kernel-ppc64le-debug-rhel.config @@ -916,6 +916,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -1920,6 +1922,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -2524,6 +2527,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_OUTLINE is not set CONFIG_KASAN_VMALLOC=y # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3143,6 +3147,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -3937,6 +3943,7 @@ CONFIG_PCPU_DEV_REFCNT=y # CONFIG_PEAQ_WMI is not set CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 983bd9850..b7ccf5b08 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -780,6 +780,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m # CONFIG_CHARGER_CROS_USBPD is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1073,6 +1074,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -1911,6 +1914,7 @@ CONFIG_GPIO_PCF857X=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2122,6 +2126,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_POWERNV=m @@ -2772,6 +2777,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_GZIP=y @@ -3428,6 +3434,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4335,6 +4343,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set @@ -4468,6 +4477,7 @@ CONFIG_POWER_RESET_GPIO=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_SUPPLY_DEBUG is not set @@ -4761,6 +4771,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6150,6 +6162,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-ppc64le-rhel.config b/kernel-ppc64le-rhel.config index 9373a536c..09b4883ff 100644 --- a/kernel-ppc64le-rhel.config +++ b/kernel-ppc64le-rhel.config @@ -916,6 +916,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -1904,6 +1906,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -2507,6 +2510,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3126,6 +3130,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -3920,6 +3926,7 @@ CONFIG_PCPU_DEV_REFCNT=y # CONFIG_PEAQ_WMI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PGTABLE_MAPPING is not set diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 36aa849ce..c31091a07 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -787,6 +787,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m # CONFIG_CHARGER_CROS_USBPD is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1081,6 +1082,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -1924,6 +1927,7 @@ CONFIG_GPIO_PCA9570=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2125,6 +2129,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=m CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_S390=m @@ -2769,6 +2774,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_OUTLINE is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3432,6 +3438,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4331,6 +4339,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PFAULT=y @@ -4462,6 +4471,7 @@ CONFIG_POWERCAP=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_POWER_SUPPLY_HWMON=y @@ -4725,6 +4735,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6123,6 +6135,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-s390x-debug-rhel.config b/kernel-s390x-debug-rhel.config index 8dafc671c..a4a4330ab 100644 --- a/kernel-s390x-debug-rhel.config +++ b/kernel-s390x-debug-rhel.config @@ -919,6 +919,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -1909,6 +1911,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON is not set CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -2504,6 +2507,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_OUTLINE is not set CONFIG_KASAN_VMALLOC=y # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3124,6 +3128,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -3915,6 +3921,7 @@ CONFIG_PCPU_DEV_REFCNT=y # CONFIG_PEAQ_WMI is not set CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PFAULT=y diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index 14e04c814..fcd4ddaba 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -786,6 +786,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m # CONFIG_CHARGER_CROS_USBPD is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1080,6 +1081,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -1907,6 +1910,7 @@ CONFIG_GPIO_PCA9570=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SIFIVE is not set @@ -2108,6 +2112,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_HWMON=m CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_S390=m @@ -2749,6 +2754,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_GZIP=y @@ -3409,6 +3415,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4308,6 +4316,7 @@ CONFIG_PD6729=m CONFIG_PDC_ADMA=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PFAULT=y @@ -4439,6 +4448,7 @@ CONFIG_POWERCAP=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_POWER_SUPPLY_HWMON=y @@ -4702,6 +4712,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6098,6 +6110,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PXA2XX is not set # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-s390x-rhel.config b/kernel-s390x-rhel.config index bcd81f508..c9c9b001b 100644 --- a/kernel-s390x-rhel.config +++ b/kernel-s390x-rhel.config @@ -919,6 +919,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -1893,6 +1895,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON is not set CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -2487,6 +2490,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3107,6 +3111,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -3898,6 +3904,7 @@ CONFIG_PCPU_DEV_REFCNT=y # CONFIG_PEAQ_WMI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_PFAULT=y diff --git a/kernel-s390x-zfcpdump-rhel.config b/kernel-s390x-zfcpdump-rhel.config index 966946b34..b063665dc 100644 --- a/kernel-s390x-zfcpdump-rhel.config +++ b/kernel-s390x-zfcpdump-rhel.config @@ -924,6 +924,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -1907,6 +1909,7 @@ CONFIG_HWLAT_TRACER=y # CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON is not set CONFIG_HWPOISON_INJECT=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -2505,6 +2508,7 @@ CONFIG_KALLSYMS=y # CONFIG_KASAN_MODULE_TEST is not set # CONFIG_KASAN_VMALLOC is not set # CONFIG_KCOV is not set +# CONFIG_KCSAN is not set CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y @@ -3126,6 +3130,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -3920,6 +3926,7 @@ CONFIG_PCPU_DEV_REFCNT=y # CONFIG_PEAQ_WMI is not set # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y # CONFIG_PERF_EVENTS is not set CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PFAULT is not set diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index 1712a0106..f0fe976d7 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -834,6 +834,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1173,6 +1174,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2106,6 +2109,7 @@ CONFIG_GPIO_PCA9570=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SCH is not set @@ -2329,6 +2333,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_INTEL=m @@ -3762,6 +3767,8 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4724,6 +4731,7 @@ CONFIG_PEAQ_WMI=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_UNCORE=m @@ -4873,6 +4881,7 @@ CONFIG_POWERCAP=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_SUPPLY_DEBUG is not set @@ -5147,6 +5156,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6562,6 +6573,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-x86_64-debug-rhel.config b/kernel-x86_64-debug-rhel.config index daa3a2255..a10cfa84d 100644 --- a/kernel-x86_64-debug-rhel.config +++ b/kernel-x86_64-debug-rhel.config @@ -979,6 +979,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -2053,6 +2055,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -3333,6 +3336,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4146,6 +4151,7 @@ CONFIG_PCS_XPCS=m CONFIG_PERCPU_STATS=y # CONFIG_PERCPU_TEST is not set CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_UNCORE=m diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index 3946ad9bb..eaa3e03f1 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -833,6 +833,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ256XX=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +CONFIG_CHARGER_CROS_PCHG=m CONFIG_CHARGER_CROS_USBPD=m # CONFIG_CHARGER_DETECTOR_MAX14656 is not set # CONFIG_CHARGER_GPIO is not set @@ -1172,6 +1173,8 @@ CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SIMD=y # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_STREEBOG=m @@ -2089,6 +2092,7 @@ CONFIG_GPIO_PCA9570=m CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_RDC321X is not set +CONFIG_GPIO_ROCKCHIP=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_SCH is not set @@ -2312,6 +2316,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_INTEL=m @@ -3740,6 +3745,8 @@ CONFIG_MODULE_COMPRESS_NONE=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4702,6 +4709,7 @@ CONFIG_PEAQ_WMI=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_UNCORE=m @@ -4851,6 +4859,7 @@ CONFIG_POWERCAP=y # CONFIG_POWER_RESET_RESTART is not set # CONFIG_POWER_RESET_SYSCON is not set # CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_TPS65086 is not set # CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_SUPPLY_DEBUG is not set @@ -5125,6 +5134,8 @@ CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTMV20=m +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SY8106A is not set # CONFIG_REGULATOR_SY8824X is not set @@ -6538,6 +6549,7 @@ CONFIG_SPI_MUX=m # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SLAVE is not set diff --git a/kernel-x86_64-rhel.config b/kernel-x86_64-rhel.config index cefe578b2..a1da929ff 100644 --- a/kernel-x86_64-rhel.config +++ b/kernel-x86_64-rhel.config @@ -979,6 +979,8 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_SKEIN is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SPECK is not set # CONFIG_CRYPTO_SPECK_NEON is not set @@ -2037,6 +2039,7 @@ CONFIG_HWLAT_TRACER=y CONFIG_HWMON=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_BA431 is not set # CONFIG_HW_RANDOM_CCTRNG is not set CONFIG_HW_RANDOM_HISI=y @@ -3314,6 +3317,8 @@ CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_FORCE is not set CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set # CONFIG_MODULE_SIG_SHA256 is not set @@ -4127,6 +4132,7 @@ CONFIG_PCS_XPCS=m # CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_TEST is not set CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_UNCORE=m diff --git a/kernel.spec b/kernel.spec index bbf5f5f60..3c079e12a 100755 --- a/kernel.spec +++ b/kernel.spec @@ -78,9 +78,9 @@ Summary: The Linux 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 debugbuildsenabled 0 -%global distro_build 61 +%global distro_build 0.rc0.20210831gitb91db6a0b52e.1 %if 0%{?fedora} %define secure_boot_arch x86_64 @@ -121,17 +121,17 @@ Summary: The Linux kernel %endif # The kernel tarball/base version -%define kversion 5.14 +%define kversion 5.15 -%define rpmversion 5.14.0 -%define patchversion 5.14 -%define pkgrelease 61 +%define rpmversion 5.15.0 +%define patchversion 5.15 +%define pkgrelease 0.rc0.20210831gitb91db6a0b52e.1 # This is needed to do merge window version magic -%define patchlevel 14 +%define patchlevel 15 # allow pkg_release to have configurable %%{?dist} tag -%define specrelease 61%{?buildid}%{?dist} +%define specrelease 0.rc0.20210831gitb91db6a0b52e.1%{?buildid}%{?dist} %define pkg_release %{specrelease} @@ -672,7 +672,7 @@ BuildRequires: lld # exact git commit you can run # # xzcat -qq ${TARBALL} | git get-tar-commit-id -Source0: linux-5.14.tar.xz +Source0: linux-5.14-1100-gb91db6a0b52e.tar.xz Source1: Makefile.rhelver @@ -853,7 +853,6 @@ Provides: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires(pre): %{kernel_prereq}\ Requires(pre): %{initrd_prereq}\ Requires(pre): linux-firmware >= 20150904-56.git6ebf5d57\ -Requires(pre): strace\ Requires(preun): systemd >= 200\ Conflicts: xfsprogs < 4.3.0-1\ Conflicts: xorg-x11-drv-vmmouse < 13.0.99\ @@ -1359,8 +1358,8 @@ ApplyOptionalPatch() fi } -%setup -q -n kernel-5.14 -c -mv linux-5.14 linux-%{KVERREL} +%setup -q -n kernel-5.14-1100-gb91db6a0b52e -c +mv linux-5.14-1100-gb91db6a0b52e linux-%{KVERREL} cd linux-%{KVERREL} cp -a %{SOURCE1} . @@ -2655,7 +2654,7 @@ then\ %{_sbindir}/weak-modules --add-kernel %{KVERREL}%{?1:+%{1}} || exit $?\ fi\ %endif\ -/usr/bin/strace -f -s 8192 /bin/kernel-install -v add %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ +/bin/kernel-install add %{KVERREL}%{?1:+%{1}} /lib/modules/%{KVERREL}%{?1:+%{1}}/vmlinuz || exit $?\ %{nil} # @@ -2959,21 +2958,12 @@ fi # # %changelog -* Mon Aug 30 2021 Fedora Kernel Team [5.14-60] +* Tue Aug 31 2021 Fedora Kernel Team [5.15-0.rc0.20210831gitb91db6a0b52e.1] - arm64: use common CONFIG_MAX_ZONEORDER for arm kernel (Mark Salter) - -* Sat Aug 28 2021 Fedora Kernel Team [5.14-0.rc7.20210828git64b4fc45bea6.58] - Create Makefile.variables for a single point of configuration change (Justin M. Forbes) - -* Fri Aug 27 2021 Fedora Kernel Team [5.14.0-0.rc7.20210827git77dd11439b86.57] - rpmspec: drop traceevent files instead of just excluding them from files list (Herton R. Krzesinski) [1967640] -- Revert "redhat/configs: Enable genet and brcmfmac wlan" (Íñigo Huguet) - redhat/config: Enablement of CONFIG_PAPR_SCM for PowerPC (Gustavo Walbon) [1962936] - -* Thu Aug 26 2021 Fedora Kernel Team [5.14.0-0.rc7.20210826git73f3af7b4611.56] - Attempt to fix Intel PMT code (David Arcari) - -* Wed Aug 25 2021 Fedora Kernel Team [5.14.0-0.rc7.20210825git6e764bcd1cf7.55] - CI: Enable realtime branch testing (Veronika Kabatova) - CI: Enable realtime checks for c9s and RHEL9 (Veronika Kabatova) - [fs] dax: mark tech preview (Bill O'Donnell) @@ -2981,34 +2971,19 @@ fi - wireless: rtw88: move debug options to common/debug (Peter Robinson) - fedora: minor PTP clock driver cleanups (Peter Robinson) - common: x86: enable VMware PTP support on ark (Peter Robinson) - -* Tue Aug 24 2021 Fedora Kernel Team [5.14.0-0.rc7.20210824gitd5ae8d7f85b7.54] - arm64: dts: rockchip: Disable CDN DP on Pinebook Pro (Matthias Brugger) - arm64: dts: rockchip: Setup USB typec port as datarole on (Dan Johansen) -- Revert "IB/rxe: Mark Soft-RoCE Transport driver as tech-preview" (Herton R. Krzesinski) -- redhat/configs: Enable genet and brcmfmac wlan (Jeremy Linton) [1992902] - [scsi] megaraid_sas: re-add certain pci-ids (Tomas Henzl) - xfs: drop experimental warnings for bigtime and inobtcount (Bill O'Donnell) [1995321] - Disable liquidio driver on ark/rhel (Herton R. Krzesinski) [1993393] - -* Sat Aug 21 2021 Fedora Kernel Team [5.14.0-0.rc6.20210821gitfa54d366a6e4.51] - More Fedora config updates (Justin M. Forbes) - -* Fri Aug 20 2021 Fedora Kernel Team [5.14.0-0.rc6.20210820gitd992fe5318d8.50] - Fedora config updates for 5.14 (Justin M. Forbes) - -* Thu Aug 19 2021 Fedora Kernel Team [5.14.0-0.rc6.20210819gitd6d09a694205.49] - CI: Rename ARK CI pipeline type (Veronika Kabatova) - CI: Finish up c9s config (Veronika Kabatova) - CI: Update ppc64le config (Veronika Kabatova) - CI: use more templates (Veronika Kabatova) - -* Wed Aug 18 2021 Fedora Kernel Team [5.14.0-0.rc6.20210818git614cb2751d31.48] - Filter updates for aarch64 (Justin M. Forbes) - increase CONFIG_NODES_SHIFT for aarch64 (Chris von Recklinghausen) [1890304] - -* Tue Aug 17 2021 Fedora Kernel Team [5.14.0-0.rc6.20210817git794c7931a242.47] -- Revert "redhat: ark: disable CONFIG_NET_SCH_MULTIQ" (Marcelo Ricardo Leitner) - redhat: configs: Enable CONFIG_WIRELESS_HOTKEY (Hans de Goede) - redhat/configs: Update CONFIG_NVRAM (Desnes A. Nunes do Rosario) [1988254] - common: serial: build in SERIAL_8250_LPSS for x86 (Peter Robinson) @@ -3016,179 +2991,23 @@ fi - crypto: rng - Override drivers/char/random in FIPS mode (Herbert Xu) - random: Add hook to override device reads and getrandom(2) (Herbert Xu) - redhat/configs: Disable Soft-RoCE driver (Kamal Heib) -- filter-modules.sh: add more sound modules to filter (Jaroslav Kysela) -- redhat/configs: sound configuration cleanups and updates (Jaroslav Kysela) - -* Fri Aug 13 2021 Fedora Kernel Team [5.14.0-0.rc5.20210813gitf8e6dfc64f61.45] -- update filters for Fedora (Justin M. Forbes) - -* Tue Aug 10 2021 Fedora Kernel Team [5.14.0-0.rc5.20210810git9a73fa375d58.42] - redhat/configs/evaluate_configs: Update help output (Prarit Bhargava) - redhat/configs: Double MAX_LOCKDEP_CHAINS (Justin M. Forbes) - fedora: configs: Fix WM5102 Kconfig (Hans de Goede) - powerpc: enable CONFIG_POWER9_CPU (Diego Domingos) [1876436] - redhat/configs: Fix CONFIG_VIRTIO_IOMMU to 'y' on aarch64 (Eric Auger) [1972795] -- Revert "ice: mark driver as tech-preview" (Jonathan Toppins) - -* Thu Aug 05 2021 Fedora Kernel Team [5.14.0-0.rc4.20210805git251a1524293d.37] +- filter-modules.sh: add more sound modules to filter (Jaroslav Kysela) +- redhat/configs: sound configuration cleanups and updates (Jaroslav Kysela) - common: Update for CXL (Compute Express Link) configs (Peter Robinson) - redhat: configs: disable CRYPTO_SM modules (Herton R. Krzesinski) [1990040] - Remove fedora version of the LOCKDEP_BITS, we should use common (Justin M. Forbes) - Re-enable sermouse for x86 (rhbz 1974002) (Justin M. Forbes) - -* Wed Aug 04 2021 Fedora Kernel Team [5.14.0-0.rc4.20210804gitd5ad8ec3cfb5.36] -- Revert "Merge branch 'releasefix' into 'os-build'" (Justin M. Forbes) - Fedora 5.14 configs round 1 (Justin M. Forbes) - redhat: add gating configuration for centos stream/rhel9 (Herton R. Krzesinski) -- kernel-5.14.0-0.rc4.35 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210801gitf3438b4c4e69.34 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210731gitc7d102232649.33 (Fedora Kernel Team) -- x86: configs: Enable CONFIG_TEST_FPU for debug kernels (Vitaly Kuznetsov) [1988384] -- kernel-5.14.0-0.rc3.20210730git764a5bc89b12.32 (Fedora Kernel Team) -- redhat/configs: Move CHACHA and POLY1305 to core kernel to allow BIG_KEYS=y (root) [1983298] -- Revert "bpf: Add tech preview taint for syscall" (Jiri Olsa) [1978833] -- kernel.spec: fix build of samples/bpf (Jiri Benc) -- Enable OSNOISE_TRACER and TIMERLAT_TRACER (Jerome Marchand) [1979379] -- kernel-5.14.0-0.rc3.20210728git4010a528219e.31 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210728git7d549995d4e0.30 (Fedora Kernel Team) -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) -- rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] -- configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) -- fedora: sound config updates for 5.14 (Peter Robinson) -- fedora: Only enable FSI drivers on POWER platform (Peter Robinson) -- The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) -- fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) -- fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) -- fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) -- Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) -- fedora: arm: disabled unused FB drivers (Peter Robinson) -- fedora: don't enable FB_VIRTUAL (Peter Robinson) -- redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] -- rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Mon Aug 02 2021 Fedora Kernel Team [5.14.0-0.rc4.35] -- kernel-5.14.0-0.rc3.20210801gitf3438b4c4e69.34 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210731gitc7d102232649.33 (Fedora Kernel Team) -- x86: configs: Enable CONFIG_TEST_FPU for debug kernels (Vitaly Kuznetsov) [1988384] -- kernel-5.14.0-0.rc3.20210730git764a5bc89b12.32 (Fedora Kernel Team) -- redhat/configs: Move CHACHA and POLY1305 to core kernel to allow BIG_KEYS=y (root) [1983298] -- Revert "bpf: Add tech preview taint for syscall" (Jiri Olsa) [1978833] -- kernel.spec: fix build of samples/bpf (Jiri Benc) -- Enable OSNOISE_TRACER and TIMERLAT_TRACER (Jerome Marchand) [1979379] -- kernel-5.14.0-0.rc3.20210728git4010a528219e.31 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210728git7d549995d4e0.30 (Fedora Kernel Team) -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) -- rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] -- configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) -- fedora: sound config updates for 5.14 (Peter Robinson) -- fedora: Only enable FSI drivers on POWER platform (Peter Robinson) -- The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) -- fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) -- fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) -- fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) -- Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) -- fedora: arm: disabled unused FB drivers (Peter Robinson) -- fedora: don't enable FB_VIRTUAL (Peter Robinson) -- redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] -- rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Sun Aug 01 2021 Fedora Kernel Team [5.14.0-0.rc3.20210801gitf3438b4c4e69.34] -- kernel-5.14.0-0.rc3.20210731gitc7d102232649.33 (Fedora Kernel Team) -- x86: configs: Enable CONFIG_TEST_FPU for debug kernels (Vitaly Kuznetsov) [1988384] -- kernel-5.14.0-0.rc3.20210730git764a5bc89b12.32 (Fedora Kernel Team) -- redhat/configs: Move CHACHA and POLY1305 to core kernel to allow BIG_KEYS=y (root) [1983298] -- Revert "bpf: Add tech preview taint for syscall" (Jiri Olsa) [1978833] -- kernel.spec: fix build of samples/bpf (Jiri Benc) -- Enable OSNOISE_TRACER and TIMERLAT_TRACER (Jerome Marchand) [1979379] -- kernel-5.14.0-0.rc3.20210728git4010a528219e.31 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210728git7d549995d4e0.30 (Fedora Kernel Team) -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) -- rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] -- configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) -- fedora: sound config updates for 5.14 (Peter Robinson) -- fedora: Only enable FSI drivers on POWER platform (Peter Robinson) -- The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) -- fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) -- fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) -- fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) -- Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) -- fedora: arm: disabled unused FB drivers (Peter Robinson) -- fedora: don't enable FB_VIRTUAL (Peter Robinson) -- redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] -- rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Sat Jul 31 2021 Fedora Kernel Team [5.14.0-0.rc3.20210731gitc7d102232649.33] - x86: configs: Enable CONFIG_TEST_FPU for debug kernels (Vitaly Kuznetsov) [1988384] -- kernel-5.14.0-0.rc3.20210730git764a5bc89b12.32 (Fedora Kernel Team) -- redhat/configs: Move CHACHA and POLY1305 to core kernel to allow BIG_KEYS=y (root) [1983298] -- Revert "bpf: Add tech preview taint for syscall" (Jiri Olsa) [1978833] -- kernel.spec: fix build of samples/bpf (Jiri Benc) -- Enable OSNOISE_TRACER and TIMERLAT_TRACER (Jerome Marchand) [1979379] -- kernel-5.14.0-0.rc3.20210728git4010a528219e.31 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210728git7d549995d4e0.30 (Fedora Kernel Team) -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) -- rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] -- configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) -- fedora: sound config updates for 5.14 (Peter Robinson) -- fedora: Only enable FSI drivers on POWER platform (Peter Robinson) -- The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) -- fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) -- fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) -- fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) -- Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) -- fedora: arm: disabled unused FB drivers (Peter Robinson) -- fedora: don't enable FB_VIRTUAL (Peter Robinson) -- redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] -- rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Fri Jul 30 2021 Fedora Kernel Team [5.14.0-0.rc3.20210730git764a5bc89b12.32] - redhat/configs: Move CHACHA and POLY1305 to core kernel to allow BIG_KEYS=y (root) [1983298] -- Revert "bpf: Add tech preview taint for syscall" (Jiri Olsa) [1978833] - kernel.spec: fix build of samples/bpf (Jiri Benc) - Enable OSNOISE_TRACER and TIMERLAT_TRACER (Jerome Marchand) [1979379] -- kernel-5.14.0-0.rc3.20210728git4010a528219e.31 (Fedora Kernel Team) -- kernel-5.14.0-0.rc3.20210728git7d549995d4e0.30 (Fedora Kernel Team) -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) -- rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] -- configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) -- fedora: sound config updates for 5.14 (Peter Robinson) -- fedora: Only enable FSI drivers on POWER platform (Peter Robinson) -- The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) -- fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) -- fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) -- fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) -- Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) -- fedora: arm: disabled unused FB drivers (Peter Robinson) -- fedora: don't enable FB_VIRTUAL (Peter Robinson) -- redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] -- rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Wed Jul 28 2021 Fedora Kernel Team [5.14.0-0.rc3.20210728git4010a528219e.31] -- kernel-5.14.0-0.rc3.20210728git7d549995d4e0.30 (Fedora Kernel Team) -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) -- rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] -- configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) -- fedora: sound config updates for 5.14 (Peter Robinson) -- fedora: Only enable FSI drivers on POWER platform (Peter Robinson) -- The CONFIG_RAW_DRIVER has been removed from upstream (Peter Robinson) -- fedora: updates for 5.14 with a few disables for common from pending (Peter Robinson) -- fedora: migrate from MFD_TPS68470 -> INTEL_SKL_INT3472 (Peter Robinson) -- fedora: Remove STAGING_GASKET_FRAMEWORK (Peter Robinson) -- Fedora: move DRM_VMWGFX configs from ark -> common (Peter Robinson) -- fedora: arm: disabled unused FB drivers (Peter Robinson) -- fedora: don't enable FB_VIRTUAL (Peter Robinson) -- redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] -- rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Wed Jul 28 2021 Fedora Kernel Team [5.14.0-0.rc3.20210728git7d549995d4e0.30] -- Don't tag a release as [redhat] (Justin M. Forbes) -- Revert "Drop that for now" (Herton R. Krzesinski) - rpmspec: switch iio and gpio tools to use tools_make (Herton R. Krzesinski) [1956988] - configs/process_configs.sh: Handle config items with no help text (Patrick Talbert) - fedora: sound config updates for 5.14 (Peter Robinson) @@ -3202,19 +3021,13 @@ fi - fedora: don't enable FB_VIRTUAL (Peter Robinson) - redhat/configs: Double MAX_LOCKDEP_ENTRIES (Waiman Long) [1940075] - rpmspec: fix verbose output on kernel-devel installation (Herton R. Krzesinski) [1981406] - -* Sat Jul 24 2021 Fedora Kernel Team [5.14.0-0.rc2.20210723git8baef6386baa.27] - Build Fedora x86s kernels with bytcr-wm5102 (Marius Hoch) - Deleted redhat/configs/fedora/generic/x86/CONFIG_FB_HYPERV (Patrick Lang) - -* Fri Jul 23 2021 Fedora Kernel Team [5.14.0-0.rc2.20210723git8baef6386baa.26] - rpmspec: correct the ghost initramfs attributes (Herton R. Krzesinski) [1977056] - rpmspec: amend removal of depmod created files to include modules.builtin.alias.bin (Herton R. Krzesinski) [1977056] - configs: remove duplicate CONFIG_DRM_HYPERV file (Patrick Talbert) - CI: use common code for merge and release (Don Zickus) - rpmspec: add release string to kernel doc directory name (Jan Stancek) - -* Wed Jul 21 2021 Fedora Kernel Team [5.14.0-0.rc2.20210721git8cae8cd89f05.24] - redhat/configs: Add CONFIG_INTEL_PMT_CRASHLOG (Michael Petlan) [1880486] - redhat/configs: Add CONFIG_INTEL_PMT_TELEMETRY (Michael Petlan) [1880486] - redhat/configs: Add CONFIG_MFD_INTEL_PMT (Michael Petlan) [1880486] @@ -3223,65 +3036,35 @@ fi - common: disable DVB_AV7110 and associated pieces (Peter Robinson) - Fix fedora-only config updates (Don Zickus) - Fedor config update for new option (Justin M. Forbes) - -* Mon Jul 19 2021 Fedora Kernel Team [5.14.0-0.rc1.20210719git1d67c8d993ba.22] -- Revert "scsi: smartpqi: add inspur advantech ids" (Herton R. Krzesinski) - redhat/configs: Enable stmmac NIC for x86_64 (Mark Salter) - -* Thu Jul 15 2021 Fedora Kernel Team [5.14.0-0.rc1.20210715git40226a3d96ef.19] - all: hyperv: use the DRM driver rather than FB (Peter Robinson) - all: hyperv: unify the Microsoft HyperV configs (Peter Robinson) - all: VMWare: clean up VMWare configs (Peter Robinson) - Update CONFIG_ARM_FFA_TRANSPORT (Patrick Talbert) - -* Wed Jul 14 2021 Fedora Kernel Team [5.14.0-0.rc1.20210714git40226a3d96ef.18] - CI: Handle all mirrors (Veronika Kabatova) - Turn on CONFIG_STACKTRACE for s390x zfpcdump kernels (Justin M. Forbes) - -* Tue Jul 13 2021 Fedora Kernel Team [5.14.0-0.rc1.20210713git7fef2edf7cc7.17] - arm64: switch ark kernel to 4K pagesize (Mark Salter) - Disable AMIGA_PARTITION and KARMA_PARTITION (Prarit Bhargava) [1802694] - all: unify and cleanup i2c TPM2 modules (Peter Robinson) - redhat/configs: Set CONFIG_VIRTIO_IOMMU on aarch64 (Eric Auger) [1972795] - redhat/configs: Disable CONFIG_RT_GROUP_SCHED in rhel config (Phil Auld) - -* Fri Jul 09 2021 Fedora Kernel Team [5.14.0-0.rc0.20210709gitf55966571d5e.13] - redhat/configs: enable KEXEC_SIG which is already enabled in RHEL8 for s390x and x86_64 (Coiby Xu) [1976835] - -* Thu Jul 08 2021 Fedora Kernel Team [5.14.0-0.rc0.20210708gite9f1cbc0c411.12] - rpmspec: do not BuildRequires bpftool on noarch (Herton R. Krzesinski) - redhat/configs: disable {IMA,EVM}_LOAD_X509 (Bruno Meneguele) [1977529] - -* Wed Jul 07 2021 Fedora Kernel Team [5.14.0-0.rc0.20210707git77d34a4683b0.11] - redhat: add secureboot CA certificate to trusted kernel keyring (Bruno Meneguele) - redhat/configs: enable IMA_ARCH_POLICY for aarch64 and s390x (Bruno Meneguele) - redhat/configs: Enable CONFIG_MLXBF_GIGE on aarch64 (Alaa Hleihel) [1858599] -- Revert "kdump: add support for crashkernel=auto" (Kairui Song) -- Revert "kdump: round up the total memory size to 128M for crashkernel reservation" (Kairui Song) -- Revert "kdump: fix a grammar issue in a kernel message" (Kairui Song) -- Revert "Merge branch 'rename_mod_blacklist_sh_part_2' into 'os-build'" (Justin M. Forbes) - common: enable STRICT_MODULE_RWX everywhere (Peter Robinson) - -* Sat Jul 03 2021 Fedora Kernel Team [5.14.0-0.rc0.20210702git3dbdb38e2869.7] - COMMON_CLK_STM32MP157_SCMI is bool and selects COMMON_CLK_SCMI (Justin M. Forbes) - kernel.spec: Add kernel{,-debug}-devel-matched meta packages (Timothée Ravier) -- mod-denylist.sh: Change to denylist (Prarit Bhargava) - -* Fri Jul 02 2021 Fedora Kernel Team [5.14.0-0.rc0.20210702git3dbdb38e2869.6] - Turn off with_selftests for Fedora (Justin M. Forbes) - Don't build bpftool on Fedora (Justin M. Forbes) - Fix location of syscall scripts for kernel-devel (Justin M. Forbes) - -* Thu Jul 01 2021 Fedora Kernel Team [5.14.0-0.rc0.20210630git007b350a5875.4] - fedora: arm: Enable some i.MX8 options (Peter Robinson) - Enable Landlock for Fedora (Justin M. Forbes) - Filter update for Fedora aarch64 (Justin M. Forbes) - -* Wed Jun 30 2021 Fedora Kernel Team [5.14.0-0.rc0.20210630git007b350a5875.3] - rpmspec: only build debug meta packages where we build debug ones (Herton R. Krzesinski) - rpmspec: do not BuildRequires bpftool on nobuildarches (Herton R. Krzesinski) - -* Tue Jun 29 2021 Fedora Kernel Team [5.14.0-0.rc0.20210629gitc54b245d0118.2] - redhat/configs: Consolidate CONFIG_HMC_DRV in the common s390x folder (Thomas Huth) [1976270] - redhat/configs: Consolidate CONFIG_EXPOLINE_OFF in the common folder (Thomas Huth) [1976270] - redhat/configs: Move CONFIG_HW_RANDOM_S390 into the s390x/ subfolder (Thomas Huth) [1976270] @@ -3343,832 +3126,6 @@ fi - Fedora 5.13 config updates pt 2 (Justin M. Forbes) - Move CONFIG_ARCH_INTEL_SOCFPGA up a level for Fedora (Justin M. Forbes) - fedora: enable the Rockchip rk3399 pcie drivers (Peter Robinson) -- PCI: rockchip: Register IRQs just before pci_host_probe() (Javier Martinez Canillas) -- arm64: dts: rockchip: Update PCI host bridge window to 32-bit address memory (Punit Agrawal) -- Fedora 5.13 config updates pt 1 (Justin M. Forbes) -- Fix version requirement from opencsd-devel buildreq (Justin M. Forbes) -- configs/ark/s390: set CONFIG_MARCH_Z14 and CONFIG_TUNE_Z15 (Philipp Rudo) [1876435] -- configs/common/s390: Clean up CONFIG_{MARCH,TUNE}_Z* (Philipp Rudo) -- configs/process_configs.sh: make use of dummy-tools (Philipp Rudo) -- configs/common: disable CONFIG_INIT_STACK_ALL_{PATTERN,ZERO} (Philipp Rudo) -- configs/common/aarch64: disable CONFIG_RELR (Philipp Rudo) -- redhat/config: enable STMICRO nic for RHEL (Mark Salter) -- redhat/configs: Enable ARCH_TEGRA on RHEL (Mark Salter) -- redhat/configs: enable IMA_KEXEC for supported arches (Bruno Meneguele) -- redhat/configs: enable INTEGRITY_SIGNATURE to all arches (Bruno Meneguele) -- configs: enable CONFIG_LEDS_BRIGHTNESS_HW_CHANGED (Benjamin Tissoires) -- RHEL: disable io_uring support (Jeff Moyer) -- all: Changing CONFIG_UV_SYSFS to build uv_sysfs.ko as a loadable module. (Frank Ramsay) -- Enable NITRO_ENCLAVES on RHEL (Vitaly Kuznetsov) -- Update the Quick Start documentation (David Ward) -- redhat/configs: Set PVPANIC_MMIO for x86 and PVPANIC_PCI for aarch64 (Eric Auger) [1961178] -- bpf: Fix unprivileged_bpf_disabled setup (Jiri Olsa) -- Enable CONFIG_BPF_UNPRIV_DEFAULT_OFF (Jiri Olsa) -- configs/common/s390: disable CONFIG_QETH_{OSN,OSX} (Philipp Rudo) [1903201] -- nvme: nvme_mpath_init remove multipath check (Mike Snitzer) -- team: mark team driver as deprecated (Hangbin Liu) [1945477] -- Make CRYPTO_EC also builtin (Simo Sorce) [1947240] -- Do not hard-code a default value for DIST (David Ward) -- Override %%{debugbuildsenabled} if the --with-release option is used (David Ward) -- Improve comments in SPEC file, and move some option tests and macros (David Ward) -- configs: enable CONFIG_EXFAT_FS (Pavel Reichl) [1943423] -- Revert s390x/zfcpdump part of a9d179c40281 and ecbfddd98621 (Vladis Dronov) -- Embed crypto algos, modes and templates needed in the FIPS mode (Vladis Dronov) [1947240] -- configs: Add and enable CONFIG_HYPERV_TESTING for debug kernels (Mohammed Gamal) -- mm/cma: mark CMA on x86_64 tech preview and print RHEL-specific infos (David Hildenbrand) [1945002] -- configs: enable CONFIG_CMA on x86_64 in ARK (David Hildenbrand) [1945002] -- rpmspec: build debug-* meta-packages if debug builds are disabled (Herton R. Krzesinski) -- UIO: disable unused config options (Aristeu Rozanski) [1957819] -- ARK-config: Make amd_pinctrl module builtin (Hans de Goede) -- rpmspec: revert/drop content hash for kernel-headers (Herton R. Krzesinski) -- rpmspec: fix check that calls InitBuildVars (Herton R. Krzesinski) -- fedora: enable zonefs (Damien Le Moal) -- redhat: load specific ARCH keys to INTEGRITY_PLATFORM_KEYRING (Bruno Meneguele) -- redhat: enable INTEGRITY_TRUSTED_KEYRING across all variants (Bruno Meneguele) -- redhat: enable SYSTEM_BLACKLIST_KEYRING across all variants (Bruno Meneguele) -- redhat: enable INTEGRITY_ASYMMETRIC_KEYS across all variants (Bruno Meneguele) -- Remove unused boot loader specification files (David Ward) -- redhat/configs: Enable mlx5 IPsec and TLS offloads (Alaa Hleihel) [1869674 1957636] -- Force DWARF4 because crash does not support DWARF5 yet (Justin M. Forbes) -- common: disable Apple Silicon generally (Peter Robinson) -- cleanup Intel's FPGA configs (Peter Robinson) -- common: move PTP KVM support from ark to common (Peter Robinson) -- Enable CONFIG_DRM_AMDGPU_USERPTR for everyone (Justin M. Forbes) -- redhat: add initial rpminspect configuration (Herton R. Krzesinski) -- fedora: arm updates for 5.13 (Peter Robinson) -- fedora: Enable WWAN and associated MHI bits (Peter Robinson) -- Update CONFIG_MODPROBE_PATH to /usr/sbin (Justin Forbes) -- Fedora set modprobe path (Justin M. Forbes) -- Keep sctp and l2tp modules in modules-extra (Don Zickus) -- Fix ppc64le cross build packaging (Don Zickus) -- Fedora: Make amd_pinctrl module builtin (Hans de Goede) -- Keep CONFIG_KASAN_HW_TAGS off for aarch64 debug configs (Justin M. Forbes) -- New configs in drivers/bus (Fedora Kernel Team) -- RHEL: Don't build KVM PR module on ppc64 (David Gibson) [1930649] -- Flip CONFIG_USB_ROLE_SWITCH from m to y (Justin M. Forbes) -- Set valid options for CONFIG_FW_LOADER_USER_HELPER (Justin M. Forbes) -- Clean up CONFIG_FB_MODE_HELPERS (Justin M. Forbes) -- Turn off CONFIG_VFIO for the s390x zfcpdump kernel (Justin M. Forbes) -- Delete unused CONFIG_SND_SOC_MAX98390 pending-common (Justin M. Forbes) -- Update pending-common configs, preparing to set correctly (Justin M. Forbes) -- Update fedora filters for surface (Justin M. Forbes) -- Build CONFIG_CRYPTO_ECDSA inline for s390x zfcpdump (Justin M. Forbes) -- Replace "flavour" where "variant" is meant instead (David Ward) -- Drop the %%{variant} macro and fix --with-vanilla (David Ward) -- Fix syntax of %%kernel_variant_files (David Ward) -- Change description of --without-vdso-install to fix typo (David Ward) -- Config updates to work around mismatches (Justin M. Forbes) -- CONFIG_SND_SOC_FSL_ASOC_CARD selects CONFIG_MFD_WM8994 now (Justin M. Forbes) -- wireguard: disable in FIPS mode (Hangbin Liu) [1940794] -- Enable mtdram for fedora (rhbz 1955916) (Justin M. Forbes) -- Remove reference to bpf-helpers man page (Justin M. Forbes) -- Fedora: enable more modules for surface devices (Dave Olsthoorn) -- Fix Fedora config mismatch for CONFIG_FSL_ENETC_IERB (Justin M. Forbes) -- hardlink is in /usr/bin/ now (Justin M. Forbes) -- Ensure CONFIG_KVM_BOOK3S_64_PR stays on in Fedora, even if it is turned off in RHEL (Justin M. Forbes) -- Set date in package release from repository commit, not system clock (David Ward) -- Use a better upstream tarball filename for snapshots (David Ward) -- Don't create empty pending-common files on pending-fedora commits (Don Zickus) -- nvme: decouple basic ANA log page re-read support from native multipathing (Mike Snitzer) -- nvme: allow local retry and proper failover for REQ_FAILFAST_TRANSPORT (Mike Snitzer) -- nvme: Return BLK_STS_TARGET if the DNR bit is set (Mike Snitzer) -- Add redhat/configs/pending-common/generic/s390x/zfcpdump/CONFIG_NETFS_SUPPORT (Justin M. Forbes) -- Create ark-latest branch last for CI scripts (Don Zickus) -- Replace /usr/libexec/platform-python with /usr/bin/python3 (David Ward) -- Turn off ADI_AXI_ADC and AD9467 which now require CONFIG_OF (Justin M. Forbes) -- Export ark infrastructure files (Don Zickus) -- docs: Update docs to reflect newer workflow. (Don Zickus) -- Use upstream/master for merge-base with fallback to master (Don Zickus) -- Fedora: Turn off the SND_INTEL_BYT_PREFER_SOF option (Hans de Goede) -- filter-modules.sh.fedora: clean up "netprots" (Paul Bolle) -- filter-modules.sh.fedora: clean up "scsidrvs" (Paul Bolle) -- filter-*.sh.fedora: clean up "ethdrvs" (Paul Bolle) -- filter-*.sh.fedora: clean up "driverdirs" (Paul Bolle) -- filter-*.sh.fedora: remove incorrect entries (Paul Bolle) -- filter-*.sh.fedora: clean up "singlemods" (Paul Bolle) -- filter-modules.sh.fedora: drop unused list "iiodrvs" (Paul Bolle) -- Update mod-internal to fix depmod issue (Nico Pache) -- Turn on CONFIG_VDPA_SIM_NET (rhbz 1942343) (Justin M. Forbes) -- New configs in drivers/power (Fedora Kernel Team) -- Turn on CONFIG_NOUVEAU_DEBUG_PUSH for debug configs (Justin M. Forbes) -- Turn off KFENCE sampling by default for Fedora (Justin M. Forbes) -- Fedora config updates round 2 (Justin M. Forbes) -- New configs in drivers/soc (Jeremy Cline) -- filter-modules.sh: Fix copy/paste error 'input' (Paul Bolle) -- Update module filtering for 5.12 kernels (Justin M. Forbes) -- Fix genlog.py to ensure that comments retain "%%" characters. (Mark Mielke) -- New configs in drivers/leds (Fedora Kernel Team) -- Limit CONFIG_USB_CDNS_SUPPORT to x86_64 and arm in Fedora (David Ward) -- Fedora: Enable CHARGER_GPIO on aarch64 too (Peter Robinson) -- Fedora config updates (Justin M. Forbes) -- wireguard: mark as Tech Preview (Hangbin Liu) [1613522] -- configs: enable CONFIG_WIREGUARD in ARK (Hangbin Liu) [1613522] -- Remove duplicate configs acroos fedora, ark and common (Don Zickus) -- Combine duplicate configs across ark and fedora into common (Don Zickus) -- common/ark: cleanup and unify the parport configs (Peter Robinson) -- iommu/vt-d: enable INTEL_IDXD_SVM for both fedora and rhel (Jerry Snitselaar) -- REDHAT: coresight: etm4x: Disable coresight on HPE Apollo 70 (Jeremy Linton) -- configs/common/generic: disable CONFIG_SLAB_MERGE_DEFAULT (Rafael Aquini) -- Remove _legacy_common_support (Justin M. Forbes) -- redhat/mod-blacklist.sh: Fix floppy blacklisting (Hans de Goede) -- New configs in fs/pstore (CKI@GitLab) -- New configs in arch/powerpc (Fedora Kernel Team) -- configs: enable BPF LSM on Fedora and ARK (Ondrej Mosnacek) -- configs: clean up LSM configs (Ondrej Mosnacek) -- New configs in drivers/platform (CKI@GitLab) -- New configs in drivers/firmware (CKI@GitLab) -- New configs in drivers/mailbox (Fedora Kernel Team) -- New configs in drivers/net/phy (Justin M. Forbes) -- Update CONFIG_DM_MULTIPATH_IOA (Augusto Caringi) -- New configs in mm/Kconfig (CKI@GitLab) -- New configs in arch/powerpc (Jeremy Cline) -- New configs in arch/powerpc (Jeremy Cline) -- New configs in drivers/input (Fedora Kernel Team) -- New configs in net/bluetooth (Justin M. Forbes) -- New configs in drivers/clk (Fedora Kernel Team) -- New configs in init/Kconfig (Jeremy Cline) -- redhat: allow running fedora-configs and rh-configs targets outside of redhat/ (Herton R. Krzesinski) -- all: unify the disable of goldfish (android emulation platform) (Peter Robinson) -- common: minor cleanup/de-dupe of dma/dmabuf debug configs (Peter Robinson) -- common/ark: these drivers/arches were removed in 5.12 (Peter Robinson) -- Correct kernel-devel make prepare build for 5.12. (Paulo E. Castro) -- redhat: add initial support for centos stream dist-git sync on Makefiles (Herton R. Krzesinski) -- redhat/configs: Enable CONFIG_SCHED_STACK_END_CHECK for Fedora and ARK (Josh Poimboeuf) [1856174] -- CONFIG_VFIO now selects IOMMU_API instead of depending on it, causing several config mismatches for the zfcpdump kernel (Justin M. Forbes) -- Turn off weak-modules for Fedora (Justin M. Forbes) -- redhat: enable CONFIG_FW_LOADER_COMPRESS for ARK (Herton R. Krzesinski) [1939095] -- Fedora: filters: update to move dfl-emif to modules (Peter Robinson) -- drop duplicate DEVFREQ_GOV_SIMPLE_ONDEMAND config (Peter Robinson) -- efi: The EFI_VARS is legacy and now x86 only (Peter Robinson) -- common: enable RTC_SYSTOHC to supplement update_persistent_clock64 (Peter Robinson) -- generic: arm: enable SCMI for all options (Peter Robinson) -- fedora: the PCH_CAN driver is x86-32 only (Peter Robinson) -- common: disable legacy CAN device support (Peter Robinson) -- common: Enable Microchip MCP251x/MCP251xFD CAN controllers (Peter Robinson) -- common: Bosch MCAN support for Intel Elkhart Lake (Peter Robinson) -- common: enable CAN_PEAK_PCIEFD PCI-E driver (Peter Robinson) -- common: disable CAN_PEAK_PCIEC PCAN-ExpressCard (Peter Robinson) -- common: enable common CAN layer 2 protocols (Peter Robinson) -- ark: disable CAN_LEDS option (Peter Robinson) -- Fedora: Turn on SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC option (Hans de Goede) -- Fedora: enable modules for surface devices (Dave Olsthoorn) -- Turn on SND_SOC_INTEL_SOUNDWIRE_SOF_MACH for Fedora again (Justin M. Forbes) -- common: fix WM8804 codec dependencies (Peter Robinson) -- Build SERIO_SERPORT as a module (Peter Robinson) -- input: touchscreen: move ELO and Wacom serial touchscreens to x86 (Peter Robinson) -- Sync serio touchscreens for non x86 architectures to the same as ARK (Peter Robinson) -- Only enable SERIO_LIBPS2 on x86 (Peter Robinson) -- Only enable PC keyboard controller and associated keyboard on x86 (Peter Robinson) -- Generic: Mouse: Tweak generic serial mouse options (Peter Robinson) -- Only enable PS2 Mouse options on x86 (Peter Robinson) -- Disable bluetooth highspeed by default (Peter Robinson) -- Fedora: A few more general updates for 5.12 window (Peter Robinson) -- Fedora: Updates for 5.12 merge window (Peter Robinson) -- Fedora: remove dead options that were removed upstream (Peter Robinson) -- redhat: remove CONFIG_DRM_PANEL_XINGBANGDA_XBD599 (Herton R. Krzesinski) -- New configs in arch/powerpc (Fedora Kernel Team) -- Turn on CONFIG_PPC_QUEUED_SPINLOCKS as it is default upstream now (Justin M. Forbes) -- Update pending-common configs to address new upstream config deps (Justin M. Forbes) -- rpmspec: ship gpio-watch.debug in the proper debuginfo package (Herton R. Krzesinski) -- Removed description text as a comment confuses the config generation (Justin M. Forbes) -- New configs in drivers/dma-buf (Jeremy Cline) -- Fedora: ARMv7: build for 16 CPUs. (Peter Robinson) -- Fedora: only enable DEBUG_HIGHMEM on debug kernels (Peter Robinson) -- process_configs.sh: fix find/xargs data flow (Ondrej Mosnacek) -- Fedora config update (Justin M. Forbes) -- fedora: minor arm sound config updates (Peter Robinson) -- Fix trailing white space in redhat/configs/fedora/generic/CONFIG_SND_INTEL_BYT_PREFER_SOF (Justin M. Forbes) -- Add a redhat/rebase-notes.txt file (Hans de Goede) -- Turn on SND_INTEL_BYT_PREFER_SOF for Fedora (Hans de Goede) -- CI: Drop MR ID from the name variable (Veronika Kabatova) -- redhat: add DUP and kpatch certificates to system trusted keys for RHEL build (Herton R. Krzesinski) -- The comments in CONFIG_USB_RTL8153_ECM actually turn off CONFIG_USB_RTL8152 (Justin M. Forbes) -- Update CKI pipeline project (Veronika Kabatova) -- Turn off additional KASAN options for Fedora (Justin M. Forbes) -- Rename the master branch to rawhide for Fedora (Justin M. Forbes) -- Makefile targets for packit integration (Ben Crocker) -- Turn off KASAN for rawhide debug builds (Justin M. Forbes) -- New configs in arch/arm64 (Justin Forbes) -- Remove deprecated Intel MIC config options (Peter Robinson) -- redhat: replace inline awk script with genlog.py call (Herton R. Krzesinski) -- redhat: add genlog.py script (Herton R. Krzesinski) -- kernel.spec.template - fix use_vdso usage (Ben Crocker) -- redhat: remove remaining references of CONFIG_RH_DISABLE_DEPRECATED (Herton R. Krzesinski) -- Turn off vdso_install for ppc (Justin M. Forbes) -- Remove bpf-helpers.7 from bpftool package (Jiri Olsa) -- New configs in lib/Kconfig.debug (Fedora Kernel Team) -- Turn off CONFIG_VIRTIO_CONSOLE for s390x zfcpdump (Justin M. Forbes) -- New configs in drivers/clk (Justin M. Forbes) -- Keep VIRTIO_CONSOLE on s390x available. (Jakub Čajka) -- New configs in lib/Kconfig.debug (Jeremy Cline) -- Fedora 5.11 config updates part 4 (Justin M. Forbes) -- Fedora 5.11 config updates part 3 (Justin M. Forbes) -- Fedora 5.11 config updates part 2 (Justin M. Forbes) -- Update internal (test) module list from RHEL-8 (Joe Lawrence) [1915073] -- Fix USB_XHCI_PCI regression (Justin M. Forbes) -- fedora: fixes for ARMv7 build issue by disabling HIGHPTE (Peter Robinson) -- all: s390x: Increase CONFIG_PCI_NR_FUNCTIONS to 512 (#1888735) (Dan Horák) -- Fedora 5.11 configs pt 1 (Justin M. Forbes) -- redhat: avoid conflict with mod-blacklist.sh and released_kernel defined (Herton R. Krzesinski) -- redhat: handle certificate files conditionally as done for src.rpm (Herton R. Krzesinski) -- specfile: add %%{?_smp_mflags} to "make headers_install" in tools/testing/selftests (Denys Vlasenko) -- specfile: add %%{?_smp_mflags} to "make samples/bpf/" (Denys Vlasenko) -- Run MR testing in CKI pipeline (Veronika Kabatova) -- Reword comment (Nicolas Chauvet) -- Add with_cross_arm conditional (Nicolas Chauvet) -- Redefines __strip if with_cross (Nicolas Chauvet) -- fedora: only enable ACPI_CONFIGFS, ACPI_CUSTOM_METHOD in debug kernels (Peter Robinson) -- fedora: User the same EFI_CUSTOM_SSDT_OVERLAYS as ARK (Peter Robinson) -- all: all arches/kernels enable the same DMI options (Peter Robinson) -- all: move SENSORS_ACPI_POWER to common/generic (Peter Robinson) -- fedora: PCIE_HISI_ERR is already in common (Peter Robinson) -- all: all ACPI platforms enable ATA_ACPI so move it to common (Peter Robinson) -- all: x86: move shared x86 acpi config options to generic (Peter Robinson) -- All: x86: Move ACPI_VIDEO to common/x86 (Peter Robinson) -- All: x86: Enable ACPI_DPTF (Intel DPTF) (Peter Robinson) -- All: enable ACPI_BGRT for all ACPI platforms. (Peter Robinson) -- All: Only build ACPI_EC_DEBUGFS for debug kernels (Peter Robinson) -- All: Disable Intel Classmate PC ACPI_CMPC option (Peter Robinson) -- cleanup: ACPI_PROCFS_POWER was removed upstream (Peter Robinson) -- All: ACPI: De-dupe the ACPI options that are the same across ark/fedora on x86/arm (Peter Robinson) -- Enable the vkms module in Fedora (Jeremy Cline) -- Fedora: arm updates for 5.11 and general cross Fedora cleanups (Peter Robinson) -- Add gcc-c++ to BuildRequires (Justin M. Forbes) -- Update CONFIG_KASAN_HW_TAGS (Justin M. Forbes) -- fedora: arm: move generic power off/reset to all arm (Peter Robinson) -- fedora: ARMv7: build in DEVFREQ_GOV_SIMPLE_ONDEMAND until I work out why it's changed (Peter Robinson) -- fedora: cleanup joystick_adc (Peter Robinson) -- fedora: update some display options (Peter Robinson) -- fedora: arm: enable TI PRU options (Peter Robinson) -- fedora: arm: minor exynos plaform updates (Peter Robinson) -- arm: SoC: disable Toshiba Visconti SoC (Peter Robinson) -- common: disable ARCH_BCM4908 (NFC) (Peter Robinson) -- fedora: minor arm config updates (Peter Robinson) -- fedora: enable Tegra 234 SoC (Peter Robinson) -- fedora: arm: enable new Hikey 3xx options (Peter Robinson) -- Fedora: USB updates (Peter Robinson) -- fedora: enable the GNSS receiver subsystem (Peter Robinson) -- Remove POWER_AVS as no longer upstream (Peter Robinson) -- Cleanup RESET_RASPBERRYPI (Peter Robinson) -- Cleanup GPIO_CDEV_V1 options. (Peter Robinson) -- fedora: arm crypto updates (Peter Robinson) -- CONFIG_KASAN_HW_TAGS for aarch64 (Justin M. Forbes) -- Fedora: cleanup PCMCIA configs, move to x86 (Peter Robinson) -- New configs in drivers/rtc (Fedora Kernel Team) -- redhat/configs: Enable CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL (Josh Poimboeuf) [1856176] -- redhat/configs: Enable CONFIG_GCC_PLUGIN_STRUCTLEAK (Josh Poimboeuf) [1856176] -- redhat/configs: Enable CONFIG_GCC_PLUGINS on ARK (Josh Poimboeuf) [1856176] -- redhat/configs: Enable CONFIG_KASAN on Fedora (Josh Poimboeuf) [1856176] -- New configs in init/Kconfig (Fedora Kernel Team) -- build_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) -- genspec.sh: Fix syntax flagged by shellcheck (Ben Crocker) -- mod-blacklist.sh: Fix syntax flagged by shellcheck (Ben Crocker) -- Enable Speakup accessibility driver (Justin M. Forbes) -- New configs in init/Kconfig (Fedora Kernel Team) -- Fix fedora config mismatch due to dep changes (Justin M. Forbes) -- New configs in drivers/crypto (Jeremy Cline) -- Remove duplicate ENERGY_MODEL configs (Peter Robinson) -- This is selected by PCIE_QCOM so must match (Justin M. Forbes) -- drop unused BACKLIGHT_GENERIC (Peter Robinson) -- Remove cp instruction already handled in instruction below. (Paulo E. Castro) -- Add all the dependencies gleaned from running `make prepare` on a bloated devel kernel. (Paulo E. Castro) -- Add tools to path mangling script. (Paulo E. Castro) -- Remove duplicate cp statement which is also not specific to x86. (Paulo E. Castro) -- Correct orc_types failure whilst running `make prepare` https://bugzilla.redhat.com/show_bug.cgi?id=1882854 (Paulo E. Castro) -- redhat: ark: enable CONFIG_IKHEADERS (Jiri Olsa) -- Add missing '$' sign to (GIT) in redhat/Makefile (Augusto Caringi) -- Remove filterdiff and use native git instead (Don Zickus) -- New configs in net/sched (Justin M. Forbes) -- New configs in drivers/mfd (CKI@GitLab) -- New configs in drivers/mfd (Fedora Kernel Team) -- New configs in drivers/firmware (Fedora Kernel Team) -- Temporarily backout parallel xz script (Justin M. Forbes) -- redhat: explicitly disable CONFIG_IMA_APPRAISE_SIGNED_INIT (Bruno Meneguele) -- redhat: enable CONFIG_EVM_LOAD_X509 on ARK (Bruno Meneguele) -- redhat: enable CONFIG_EVM_ATTR_FSUUID on ARK (Bruno Meneguele) -- redhat: enable CONFIG_EVM in all arches and flavors (Bruno Meneguele) -- redhat: enable CONFIG_IMA_LOAD_X509 on ARK (Bruno Meneguele) -- redhat: set CONFIG_IMA_DEFAULT_HASH to SHA256 (Bruno Meneguele) -- redhat: enable CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT (Bruno Meneguele) -- redhat: enable CONFIG_IMA_READ_POLICY on ARK (Bruno Meneguele) -- redhat: set default IMA template for all ARK arches (Bruno Meneguele) -- redhat: enable CONFIG_IMA_DEFAULT_HASH_SHA256 for all flavors (Bruno Meneguele) -- redhat: disable CONFIG_IMA_DEFAULT_HASH_SHA1 (Bruno Meneguele) -- redhat: enable CONFIG_IMA_ARCH_POLICY for ppc and x86 (Bruno Meneguele) -- redhat: enable CONFIG_IMA_APPRAISE_MODSIG (Bruno Meneguele) -- redhat: enable CONFIG_IMA_APPRAISE_BOOTPARAM (Bruno Meneguele) -- redhat: enable CONFIG_IMA_APPRAISE (Bruno Meneguele) -- redhat: enable CONFIG_INTEGRITY for aarch64 (Bruno Meneguele) -- kernel: Update some missing KASAN/KCSAN options (Jeremy Linton) -- kernel: Enable coresight on aarch64 (Jeremy Linton) -- Update CONFIG_INET6_ESPINTCP (Justin Forbes) -- New configs in net/ipv6 (Justin M. Forbes) -- fedora: move CONFIG_RTC_NVMEM options from ark to common (Peter Robinson) -- configs: Enable CONFIG_DEBUG_INFO_BTF (Don Zickus) -- fedora: some minor arm audio config tweaks (Peter Robinson) -- Ship xpad with default modules on Fedora and RHEL (Bastien Nocera) -- Fedora: Only enable legacy serial/game port joysticks on x86 (Peter Robinson) -- Fedora: Enable the options required for the Librem 5 Phone (Peter Robinson) -- Fedora config update (Justin M. Forbes) -- Fedora config change because CONFIG_FSL_DPAA2_ETH now selects CONFIG_FSL_XGMAC_MDIO (Justin M. Forbes) -- redhat: generic enable CONFIG_INET_MPTCP_DIAG (Davide Caratti) -- Fedora config update (Justin M. Forbes) -- Enable NANDSIM for Fedora (Justin M. Forbes) -- Re-enable CONFIG_ACPI_TABLE_UPGRADE for Fedora since upstream disables this if secureboot is active (Justin M. Forbes) -- Ath11k related config updates (Justin M. Forbes) -- Fedora config updates for ath11k (Justin M. Forbes) -- Turn on ATH11K for Fedora (Justin M. Forbes) -- redhat: enable CONFIG_INTEL_IOMMU_SVM (Jerry Snitselaar) -- More Fedora config fixes (Justin M. Forbes) -- Fedora 5.10 config updates (Justin M. Forbes) -- Fedora 5.10 configs round 1 (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Allow kernel-tools to build without selftests (Don Zickus) -- Allow building of kernel-tools standalone (Don Zickus) -- redhat: ark: disable CONFIG_NET_ACT_CTINFO (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_TEQL (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_SFB (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_QFQ (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_PLUG (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_PIE (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_MULTIQ (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_HHF (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_DSMARK (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_DRR (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_CODEL (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_CHOKE (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_CBQ (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_ATM (Davide Caratti) -- redhat: ark: disable CONFIG_NET_EMATCH and sub-targets (Davide Caratti) -- redhat: ark: disable CONFIG_NET_CLS_TCINDEX (Davide Caratti) -- redhat: ark: disable CONFIG_NET_CLS_RSVP6 (Davide Caratti) -- redhat: ark: disable CONFIG_NET_CLS_RSVP (Davide Caratti) -- redhat: ark: disable CONFIG_NET_CLS_ROUTE4 (Davide Caratti) -- redhat: ark: disable CONFIG_NET_CLS_BASIC (Davide Caratti) -- redhat: ark: disable CONFIG_NET_ACT_SKBMOD (Davide Caratti) -- redhat: ark: disable CONFIG_NET_ACT_SIMP (Davide Caratti) -- redhat: ark: disable CONFIG_NET_ACT_NAT (Davide Caratti) -- arm64/defconfig: Enable CONFIG_KEXEC_FILE (Bhupesh Sharma) [1821565] -- redhat/configs: Cleanup CONFIG_CRYPTO_SHA512 (Prarit Bhargava) -- New configs in drivers/mfd (Fedora Kernel Team) -- Fix LTO issues with kernel-tools (Don Zickus) -- Point pathfix to the new location for gen_compile_commands.py (Justin M. Forbes) -- configs: Disable CONFIG_SECURITY_SELINUX_DISABLE (Ondrej Mosnacek) -- [Automatic] Handle config dependency changes (Don Zickus) -- configs/iommu: Add config comment to empty CONFIG_SUN50I_IOMMU file (Jerry Snitselaar) -- New configs in kernel/trace (Fedora Kernel Team) -- Fix Fedora config locations (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- configs: enable CONFIG_CRYPTO_CTS=y so cts(cbc(aes)) is available in FIPS mode (Vladis Dronov) [1855161] -- Partial revert: Add master merge check (Don Zickus) -- Update Maintainers doc to reflect workflow changes (Don Zickus) -- WIP: redhat/docs: Update documentation for single branch workflow (Prarit Bhargava) -- Add CONFIG_ARM64_MTE which is not picked up by the config scripts for some reason (Justin M. Forbes) -- Disable Speakup synth DECEXT (Justin M. Forbes) -- Enable Speakup for Fedora since it is out of staging (Justin M. Forbes) -- Modify patchlist changelog output (Don Zickus) -- process_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) -- generate_all_configs.sh: Fix syntax flagged by shellcheck (Ben Crocker) -- redhat/self-test: Initial commit (Ben Crocker) -- Fixes "acpi: prefer booting with ACPI over DTS" to be RHEL only (Peter Robinson) -- arch/x86: Remove vendor specific CPU ID checks (Prarit Bhargava) -- redhat: Replace hardware.redhat.com link in Unsupported message (Prarit Bhargava) [1810301] -- x86: Fix compile issues with rh_check_supported() (Don Zickus) -- KEYS: Make use of platform keyring for module signature verify (Robert Holmes) -- Drop that for now (Laura Abbott) -- Input: rmi4 - remove the need for artificial IRQ in case of HID (Benjamin Tissoires) -- ARM: tegra: usb no reset (Peter Robinson) -- arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT (Jon Masters) -- redhat: rh_kabi: deduplication friendly structs (Jiri Benc) -- redhat: rh_kabi add a comment with warning about RH_KABI_EXCLUDE usage (Jiri Benc) -- redhat: rh_kabi: introduce RH_KABI_EXTEND_WITH_SIZE (Jiri Benc) -- redhat: rh_kabi: Indirect EXTEND macros so nesting of other macros will resolve. (Don Dutile) -- redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference operator (Tony Camuso) -- redhat: rh_kabi: Add macros to size and extend structs (Prarit Bhargava) -- Removing Obsolete hba pci-ids from rhel8 (Dick Kennedy) -- mptsas: pci-id table changes (Laura Abbott) -- mptsas: Taint kernel if mptsas is loaded (Laura Abbott) -- mptspi: pci-id table changes (Laura Abbott) -- qla2xxx: Remove PCI IDs of deprecated adapter (Jeremy Cline) -- be2iscsi: remove unsupported device IDs (Chris Leech) -- mptspi: Taint kernel if mptspi is loaded (Laura Abbott) -- hpsa: remove old cciss-based smartarray pci ids (Joseph Szczypek) -- qla4xxx: Remove deprecated PCI IDs from RHEL 8 (Chad Dupuis) -- aacraid: Remove depreciated device and vendor PCI id's (Raghava Aditya Renukunta) -- megaraid_sas: remove deprecated pci-ids (Tomas Henzl) -- mpt*: remove certain deprecated pci-ids (Jeremy Cline) -- kernel: add SUPPORT_REMOVED kernel taint (Tomas Henzl) -- Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES (Don Zickus) -- Add option of 13 for FORCE_MAX_ZONEORDER (Peter Robinson) -- s390: Lock down the kernel when the IPL secure flag is set (Jeremy Cline) -- efi: Lock down the kernel if booted in secure boot mode (David Howells) -- efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode (David Howells) -- security: lockdown: expose a hook to lock the kernel down (Jeremy Cline) -- Make get_cert_list() use efi_status_to_str() to print error messages. (Peter Jones) -- Add efi_status_to_str() and rework efi_status_to_err(). (Peter Jones) -- Add support for deprecating processors (Laura Abbott) [1565717 1595918 1609604 1610493] -- arm: aarch64: Drop the EXPERT setting from ARM64_FORCE_52BIT (Jeremy Cline) -- iommu/arm-smmu: workaround DMA mode issues (Laura Abbott) -- rh_kabi: introduce RH_KABI_EXCLUDE (Jakub Racek) -- ipmi: do not configure ipmi for HPE m400 (Laura Abbott) [1670017] -- IB/rxe: Mark Soft-RoCE Transport driver as tech-preview (Don Dutile) [1605216] -- scsi: smartpqi: add inspur advantech ids (Don Brace) -- ice: mark driver as tech-preview (Jonathan Toppins) -- kABI: Add generic kABI macros to use for kABI workarounds (Myron Stowe) [1546831] -- add pci_hw_vendor_status() (Maurizio Lombardi) -- ahci: thunderx2: Fix for errata that affects stop engine (Robert Richter) -- Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon (Robert Richter) -- bpf: Add tech preview taint for syscall (Eugene Syromiatnikov) [1559877] -- bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter (Eugene Syromiatnikov) [1561171] -- add Red Hat-specific taint flags (Eugene Syromiatnikov) [1559877] -- kdump: fix a grammar issue in a kernel message (Dave Young) [1507353] -- tags.sh: Ignore redhat/rpm (Jeremy Cline) -- put RHEL info into generated headers (Laura Abbott) [1663728] -- kdump: add support for crashkernel=auto (Jeremy Cline) -- kdump: round up the total memory size to 128M for crashkernel reservation (Dave Young) [1507353] -- acpi: prefer booting with ACPI over DTS (Mark Salter) [1576869] -- aarch64: acpi scan: Fix regression related to X-Gene UARTs (Mark Salter) [1519554] -- ACPI / irq: Workaround firmware issue on X-Gene based m400 (Mark Salter) [1519554] -- modules: add rhelversion MODULE_INFO tag (Laura Abbott) -- ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support (Al Stone) [1518076] -- Add Red Hat tainting (Laura Abbott) [1565704] -- Introduce CONFIG_RH_DISABLE_DEPRECATED (Laura Abbott) -- Stop merging ark-patches for release (Don Zickus) -- Fix path location for ark-update-configs.sh (Don Zickus) -- Combine Red Hat patches into single patch (Don Zickus) -- New configs in drivers/misc (Jeremy Cline) -- New configs in drivers/net/wireless (Justin M. Forbes) -- New configs in drivers/phy (Fedora Kernel Team) -- New configs in drivers/tty (Fedora Kernel Team) -- Set SquashFS decompression options for all flavors to match RHEL (Bohdan Khomutskyi) -- configs: Enable CONFIG_ENERGY_MODEL (Phil Auld) -- New configs in drivers/pinctrl (Fedora Kernel Team) -- Update CONFIG_THERMAL_NETLINK (Justin Forbes) -- Separate merge-upstream and release stages (Don Zickus) -- Re-enable CONFIG_IR_SERIAL on Fedora (Prarit Bhargava) -- Create Patchlist.changelog file (Don Zickus) -- Filter out upstream commits from changelog (Don Zickus) -- Merge Upstream script fixes (Don Zickus) -- kernel.spec: Remove kernel-keys directory on rpm erase (Prarit Bhargava) -- Add mlx5_vdpa to module filter for Fedora (Justin M. Forbes) -- Add python3-sphinx_rtd_theme buildreq for docs (Justin M. Forbes) -- redhat/configs/process_configs.sh: Remove *.config.orig files (Prarit Bhargava) -- redhat/configs/process_configs.sh: Add process_configs_known_broken flag (Prarit Bhargava) -- redhat/Makefile: Fix '*-configs' targets (Prarit Bhargava) -- dist-merge-upstream: Checkout known branch for ci scripts (Don Zickus) -- kernel.spec: don't override upstream compiler flags for ppc64le (Dan Horák) -- Fedora config updates (Justin M. Forbes) -- Fedora confi gupdate (Justin M. Forbes) -- mod-sign.sh: Fix syntax flagged by shellcheck (Ben Crocker) -- Swap how ark-latest is built (Don Zickus) -- Add extra version bump to os-build branch (Don Zickus) -- dist-release: Avoid needless version bump. (Don Zickus) -- Add dist-fedora-release target (Don Zickus) -- Remove redundant code in dist-release (Don Zickus) -- Makefile.common rename TAG to _TAG (Don Zickus) -- Fedora config change (Justin M. Forbes) -- Fedora filter update (Justin M. Forbes) -- Config update for Fedora (Justin M. Forbes) -- enable PROTECTED_VIRTUALIZATION_GUEST for all s390x kernels (Dan Horák) -- redhat: ark: enable CONFIG_NET_SCH_TAPRIO (Davide Caratti) -- redhat: ark: enable CONFIG_NET_SCH_ETF (Davide Caratti) -- More Fedora config updates (Justin M. Forbes) -- New config deps (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- First half of config updates for Fedora (Justin M. Forbes) -- Updates for Fedora arm architectures for the 5.9 window (Peter Robinson) -- Merge 5.9 config changes from Peter Robinson (Justin M. Forbes) -- Add config options that only show up when we prep on arm (Justin M. Forbes) -- Config updates for Fedora (Justin M. Forbes) -- fedora: enable enery model (Peter Robinson) -- Use the configs/generic config for SND_HDA_INTEL everywhere (Peter Robinson) -- Enable ZSTD compression algorithm on all kernels (Peter Robinson) -- Enable ARM_SMCCC_SOC_ID on all aarch64 kernels (Peter Robinson) -- iio: enable LTR-559 light and proximity sensor (Peter Robinson) -- iio: chemical: enable some popular chemical and partical sensors (Peter Robinson) -- More mismatches (Justin M. Forbes) -- Fedora config change due to deps (Justin M. Forbes) -- CONFIG_SND_SOC_MAX98390 is now selected by SND_SOC_INTEL_DA7219_MAX98357A_GENERIC (Justin M. Forbes) -- Config change required for build part 2 (Justin M. Forbes) -- Config change required for build (Justin M. Forbes) -- Fedora config update (Justin M. Forbes) -- Add ability to sync upstream through Makefile (Don Zickus) -- Add master merge check (Don Zickus) -- Replace hardcoded values 'os-build' and project id with variables (Don Zickus) -- redhat/Makefile.common: Fix MARKER (Prarit Bhargava) -- gitattributes: Remove unnecesary export restrictions (Prarit Bhargava) -- Add new certs for dual signing with boothole (Justin M. Forbes) -- Update secureboot signing for dual keys (Justin M. Forbes) -- fedora: enable LEDS_SGM3140 for arm configs (Peter Robinson) -- Enable CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG (Justin M. Forbes) -- redhat/configs: Fix common CONFIGs (Prarit Bhargava) -- redhat/configs: General CONFIG cleanups (Prarit Bhargava) -- redhat/configs: Update & generalize evaluate_configs (Prarit Bhargava) -- fedora: arm: Update some meson config options (Peter Robinson) -- redhat/docs: Add Fedora RPM tagging date (Prarit Bhargava) -- Update config for renamed panel driver. (Peter Robinson) -- Enable SERIAL_SC16IS7XX for SPI interfaces (Peter Robinson) -- s390x-zfcpdump: Handle missing Module.symvers file (Don Zickus) -- Fedora config updates (Justin M. Forbes) -- redhat/configs: Add .tmp files to .gitignore (Prarit Bhargava) -- disable uncommon TCP congestion control algorithms (Davide Caratti) -- Add new bpf man pages (Justin M. Forbes) -- Add default option for CONFIG_ARM64_BTI_KERNEL to pending-common so that eln kernels build (Justin M. Forbes) -- redhat/Makefile: Add fedora-configs and rh-configs make targets (Prarit Bhargava) -- redhat/configs: Use SHA512 for module signing (Prarit Bhargava) -- genspec.sh: 'touch' empty Patchlist file for single tarball (Don Zickus) -- Fedora config update for rc1 (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- redhat/Makefile.common: fix RPMKSUBLEVEL condition (Ondrej Mosnacek) -- redhat/Makefile: silence KABI tar output (Ondrej Mosnacek) -- One more Fedora config update (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Fix PATCHLEVEL for merge window (Justin M. Forbes) -- Change ark CONFIG_COMMON_CLK to yes, it is selected already by other options (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- More module filtering for Fedora (Justin M. Forbes) -- Update filters for rnbd in Fedora (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Fix up module filtering for 5.8 (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- More Fedora config work (Justin M. Forbes) -- RTW88BE and CE have been extracted to their own modules (Justin M. Forbes) -- Set CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK for Fedora (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Arm64 Use Branch Target Identification for kernel (Justin M. Forbes) -- Change value of CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE (Justin M. Forbes) -- Fedora config updates (Justin M. Forbes) -- Fix configs for Fedora (Justin M. Forbes) -- Add zero-commit to format-patch options (Justin M. Forbes) -- Copy Makefile.rhelver as a source file rather than a patch (Jeremy Cline) -- Move the sed to clear the patch templating outside of conditionals (Justin M. Forbes) -- Match template format in kernel.spec.template (Justin M. Forbes) -- Break out the Patches into individual files for dist-git (Justin M. Forbes) -- Break the Red Hat patch into individual commits (Jeremy Cline) -- Fix update_scripts.sh unselective pattern sub (David Howells) -- Add cec to the filter overrides (Justin M. Forbes) -- Add overrides to filter-modules.sh (Justin M. Forbes) -- redhat/configs: Enable CONFIG_SMC91X and disable CONFIG_SMC911X (Prarit Bhargava) [1722136] -- Include bpftool-struct_ops man page in the bpftool package (Jeremy Cline) -- Add sharedbuffer_configuration.py to the pathfix.py script (Jeremy Cline) -- Use __make macro instead of make (Tom Stellard) -- Sign off generated configuration patches (Jeremy Cline) -- Drop the static path configuration for the Sphinx docs (Jeremy Cline) -- redhat: Add dummy-module kernel module (Prarit Bhargava) -- redhat: enable CONFIG_LWTUNNEL_BPF (Jiri Benc) -- Remove typoed config file aarch64CONFIG_SM_GCC_8150 (Justin M. Forbes) -- Add Documentation back to kernel-devel as it has Kconfig now (Justin M. Forbes) -- Copy distro files rather than moving them (Jeremy Cline) -- kernel.spec: fix 'make scripts' for kernel-devel package (Brian Masney) -- Makefile: correct help text for dist-cross--rpms (Brian Masney) -- redhat/Makefile: Fix RHEL8 python warning (Prarit Bhargava) -- redhat: Change Makefile target names to dist- (Prarit Bhargava) -- configs: Disable Serial IR driver (Prarit Bhargava) -- Fix "multiple %%files for package kernel-tools" (Pablo Greco) -- Introduce a Sphinx documentation project (Jeremy Cline) -- Build ARK against ELN (Don Zickus) -- Drop the requirement to have a remote called linus (Jeremy Cline) -- Rename 'internal' branch to 'os-build' (Don Zickus) -- Only include open merge requests with "Include in Releases" label (Jeremy Cline) -- Package gpio-watch in kernel-tools (Jeremy Cline) -- Exit non-zero if the tag already exists for a release (Jeremy Cline) -- Adjust the changelog update script to not push anything (Jeremy Cline) -- Drop --target noarch from the rh-rpms make target (Jeremy Cline) -- Add a script to generate release tags and branches (Jeremy Cline) -- Set CONFIG_VDPA for fedora (Justin M. Forbes) -- Add a README to the dist-git repository (Jeremy Cline) -- Provide defaults in ark-rebase-patches.sh (Jeremy Cline) -- Default ark-rebase-patches.sh to not report issues (Jeremy Cline) -- Drop DIST from release commits and tags (Jeremy Cline) -- Place the buildid before the dist in the release (Jeremy Cline) -- Sync up with Fedora arm configuration prior to merging (Jeremy Cline) -- Disable CONFIG_PROTECTED_VIRTUALIZATION_GUEST for zfcpdump (Jeremy Cline) -- Add RHMAINTAINERS file and supporting conf (Don Zickus) -- Add a script to test if all commits are signed off (Jeremy Cline) -- Fix make rh-configs-arch (Don Zickus) -- Drop RH_FEDORA in favor of the now-merged RHEL_DIFFERENCES (Jeremy Cline) -- Sync up Fedora configs from the first week of the merge window (Jeremy Cline) -- Migrate blacklisting floppy.ko to mod-blacklist.sh (Don Zickus) -- kernel packaging: Combine mod-blacklist.sh and mod-extra-blacklist.sh (Don Zickus) -- kernel packaging: Fix extra namespace collision (Don Zickus) -- mod-extra.sh: Rename to mod-blacklist.sh (Don Zickus) -- mod-extra.sh: Make file generic (Don Zickus) -- Fix a painfully obvious YAML syntax error in .gitlab-ci.yml (Jeremy Cline) -- Add in armv7hl kernel header support (Don Zickus) -- Disable all BuildKernel commands when only building headers (Don Zickus) -- Drop any gitlab-ci patches from ark-patches (Jeremy Cline) -- Build the srpm for internal branch CI using the vanilla tree (Jeremy Cline) -- Pull in the latest ARM configurations for Fedora (Jeremy Cline) -- Fix xz memory usage issue (Neil Horman) -- Use ark-latest instead of master for update script (Jeremy Cline) -- Move the CI jobs back into the ARK repository (Jeremy Cline) -- Sync up ARK's Fedora config with the dist-git repository (Jeremy Cline) -- Pull in the latest configuration changes from Fedora (Jeremy Cline) -- configs: enable CONFIG_NET_SCH_CBS (Marcelo Ricardo Leitner) -- Drop configuration options in fedora/ that no longer exist (Jeremy Cline) -- Set RH_FEDORA for ARK and Fedora (Jeremy Cline) -- redhat/kernel.spec: Include the release in the kernel COPYING file (Jeremy Cline) -- redhat/kernel.spec: add scripts/jobserver-exec to py3_shbang_opts list (Jeremy Cline) -- redhat/kernel.spec: package bpftool-gen man page (Jeremy Cline) -- distgit-changelog: handle multiple y-stream BZ numbers (Bruno Meneguele) -- redhat/kernel.spec: remove all inline comments (Bruno Meneguele) -- redhat/genspec: awk unknown whitespace regex pattern (Bruno Meneguele) -- Improve the readability of gen_config_patches.sh (Jeremy Cline) -- Fix some awkward edge cases in gen_config_patches.sh (Jeremy Cline) -- Update the CI environment to use Fedora 31 (Jeremy Cline) -- redhat: drop whitespace from with_gcov macro (Jan Stancek) -- configs: Enable CONFIG_KEY_DH_OPERATIONS on ARK (Ondrej Mosnacek) -- configs: Adjust CONFIG_MPLS_ROUTING and CONFIG_MPLS_IPTUNNEL (Laura Abbott) -- New configs in lib/crypto (Jeremy Cline) -- New configs in drivers/char (Jeremy Cline) -- Turn on BLAKE2B for Fedora (Jeremy Cline) -- kernel.spec.template: Clean up stray *.h.s files (Laura Abbott) -- Build the SRPM in the CI job (Jeremy Cline) -- New configs in net/tls (Jeremy Cline) -- New configs in net/tipc (Jeremy Cline) -- New configs in lib/kunit (Jeremy Cline) -- Fix up released_kernel case (Laura Abbott) -- New configs in lib/Kconfig.debug (Jeremy Cline) -- New configs in drivers/ptp (Jeremy Cline) -- New configs in drivers/nvme (Jeremy Cline) -- New configs in drivers/net/phy (Jeremy Cline) -- New configs in arch/arm64 (Jeremy Cline) -- New configs in drivers/crypto (Jeremy Cline) -- New configs in crypto/Kconfig (Jeremy Cline) -- Add label so the Gitlab to email bridge ignores the changelog (Jeremy Cline) -- Temporarily switch TUNE_DEFAULT to y (Jeremy Cline) -- Run config test for merge requests and internal (Jeremy Cline) -- Add missing licensedir line (Laura Abbott) -- redhat/scripts: Remove redhat/scripts/rh_get_maintainer.pl (Prarit Bhargava) -- configs: Take CONFIG_DEFAULT_MMAP_MIN_ADDR from Fedra (Laura Abbott) -- configs: Turn off ISDN (Laura Abbott) -- Add a script to generate configuration patches (Laura Abbott) -- Introduce rh-configs-commit (Laura Abbott) -- kernel-packaging: Remove kernel files from kernel-modules-extra package (Prarit Bhargava) -- configs: Enable CONFIG_DEBUG_WX (Laura Abbott) -- configs: Disable wireless USB (Laura Abbott) -- Clean up some temporary config files (Laura Abbott) -- configs: New config in drivers/gpu for v5.4-rc1 (Jeremy Cline) -- configs: New config in arch/powerpc for v5.4-rc1 (Jeremy Cline) -- configs: New config in crypto for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/usb for v5.4-rc1 (Jeremy Cline) -- AUTOMATIC: New configs (Jeremy Cline) -- Skip ksamples for bpf, they are broken (Jeremy Cline) -- configs: New config in fs/erofs for v5.4-rc1 (Jeremy Cline) -- configs: New config in mm for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/md for v5.4-rc1 (Jeremy Cline) -- configs: New config in init for v5.4-rc1 (Jeremy Cline) -- configs: New config in fs/fuse for v5.4-rc1 (Jeremy Cline) -- merge.pl: Avoid comments but do not skip them (Don Zickus) -- configs: New config in drivers/net/ethernet/pensando for v5.4-rc1 (Jeremy Cline) -- Update a comment about what released kernel means (Laura Abbott) -- Provide both Fedora and RHEL files in the SRPM (Laura Abbott) -- kernel.spec.template: Trim EXTRAVERSION in the Makefile (Laura Abbott) -- kernel.spec.template: Add macros for building with nopatches (Laura Abbott) -- kernel.spec.template: Add some macros for Fedora differences (Laura Abbott) -- kernel.spec.template: Consolodate the options (Laura Abbott) -- configs: Add pending direcory to Fedora (Laura Abbott) -- kernel.spec.template: Don't run hardlink if rpm-ostree is in use (Laura Abbott) -- configs: New config in net/can for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/net/phy for v5.4-rc1 (Jeremy Cline) -- configs: Increase x86_64 NR_UARTS to 64 (Prarit Bhargava) [1730649] -- configs: turn on ARM64_FORCE_52BIT for debug builds (Jeremy Cline) -- kernel.spec.template: Tweak the python3 mangling (Laura Abbott) -- kernel.spec.template: Add --with verbose option (Laura Abbott) -- kernel.spec.template: Switch to using %%install instead of %%__install (Laura Abbott) -- kernel.spec.template: Make the kernel.org URL https (Laura Abbott) -- kernel.spec.template: Update message about secure boot signing (Laura Abbott) -- kernel.spec.template: Move some with flags definitions up (Laura Abbott) -- kernel.spec.template: Update some BuildRequires (Laura Abbott) -- kernel.spec.template: Get rid of %%clean (Laura Abbott) -- configs: New config in drivers/char for v5.4-rc1 (Jeremy Cline) -- configs: New config in net/sched for v5.4-rc1 (Jeremy Cline) -- configs: New config in lib for v5.4-rc1 (Jeremy Cline) -- configs: New config in fs/verity for v5.4-rc1 (Jeremy Cline) -- configs: New config in arch/aarch64 for v5.4-rc4 (Jeremy Cline) -- configs: New config in arch/arm64 for v5.4-rc1 (Jeremy Cline) -- Flip off CONFIG_ARM64_VA_BITS_52 so the bundle that turns it on applies (Jeremy Cline) -- New configuration options for v5.4-rc4 (Jeremy Cline) -- Correctly name tarball for single tarball builds (Laura Abbott) -- configs: New config in drivers/pci for v5.4-rc1 (Jeremy Cline) -- Allow overriding the dist tag on the command line (Laura Abbott) -- Allow scratch branch target to be overridden (Laura Abbott) -- Remove long dead BUILD_DEFAULT_TARGET (Laura Abbott) -- Amend the changelog when rebasing (Laura Abbott) -- configs: New config in drivers/platform for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/pinctrl for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/net/wireless for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/net/ethernet/mellanox for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/net/can for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/hid for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/dma-buf for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/crypto for v5.4-rc1 (Jeremy Cline) -- configs: New config in arch/s390 for v5.4-rc1 (Jeremy Cline) -- configs: New config in block for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/cpuidle for v5.4-rc1 (Jeremy Cline) -- redhat: configs: Split CONFIG_CRYPTO_SHA512 (Laura Abbott) -- redhat: Set Fedora options (Laura Abbott) -- Set CRYPTO_SHA3_*_S390 to builtin on zfcpdump (Jeremy Cline) -- configs: New config in drivers/edac for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/firmware for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/hwmon for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/iio for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/mmc for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/tty for v5.4-rc1 (Jeremy Cline) -- configs: New config in arch/s390 for v5.4-rc1 (Jeremy Cline) -- configs: New config in drivers/bus for v5.4-rc1 (Jeremy Cline) -- Add option to allow mismatched configs on the command line (Laura Abbott) -- configs: New config in drivers/crypto for v5.4-rc1 (Jeremy Cline) -- configs: New config in sound/pci for v5.4-rc1 (Jeremy Cline) -- configs: New config in sound/soc for v5.4-rc1 (Jeremy Cline) -- gitlab: Add CI job for packaging scripts (Major Hayden) -- Speed up CI with CKI image (Major Hayden) -- Disable e1000 driver in ARK (Neil Horman) -- configs: Fix the pending default for CONFIG_ARM64_VA_BITS_52 (Jeremy Cline) -- configs: Turn on OPTIMIZE_INLINING for everything (Jeremy Cline) -- configs: Set valid pending defaults for CRYPTO_ESSIV (Jeremy Cline) -- Add an initial CI configuration for the internal branch (Jeremy Cline) -- New drop of configuration options for v5.4-rc1 (Jeremy Cline) -- New drop of configuration options for v5.4-rc1 (Jeremy Cline) -- Pull the RHEL version defines out of the Makefile (Jeremy Cline) -- Sync up the ARK build scripts (Jeremy Cline) -- Sync up the Fedora Rawhide configs (Jeremy Cline) -- Sync up the ARK config files (Jeremy Cline) -- configs: Adjust CONFIG_FORCE_MAX_ZONEORDER for Fedora (Laura Abbott) -- configs: Add README for some other arches (Laura Abbott) -- configs: Sync up Fedora configs (Laura Abbott) -- [initial commit] Add structure for building with git (Laura Abbott) -- [initial commit] Add Red Hat variables in the top level makefile (Laura Abbott) -- [initial commit] Red Hat gitignore and attributes (Laura Abbott) -- [initial commit] Add changelog (Laura Abbott) -- [initial commit] Add makefile (Laura Abbott) -- [initial commit] Add files for generating the kernel.spec (Laura Abbott) -- [initial commit] Add rpm directory (Laura Abbott) -- [initial commit] Add files for packaging (Laura Abbott) -- [initial commit] Add kabi files (Laura Abbott) -- [initial commit] Add scripts (Laura Abbott) -- [initial commit] Add configs (Laura Abbott) -- [initial commit] Add Makefiles (Laura Abbott) - -* Tue Jun 29 2021 Fedora Kernel Team [5.13.0-1] -- Fix typos in fedora filters (Justin M. Forbes) -- More filtering for Fedora (Justin M. Forbes) -- Fix Fedora module filtering for spi-altera-dfl (Justin M. Forbes) -- Fedora 5.13 config updates (Justin M. Forbes) -- fedora: cleanup TCG_TIS_I2C_CR50 (Peter Robinson) -- fedora: drop duplicate configs (Peter Robinson) -- More Fedora config updates for 5.13 (Justin M. Forbes) -- redhat/configs: Enable needed drivers for BlueField SoC on aarch64 (Alaa Hleihel) [1858592 1858594 1858596] -- redhat: Rename mod-blacklist.sh to mod-denylist.sh (Prarit Bhargava) -- redhat/configs: enable CONFIG_NET_ACT_MPLS (Marcelo Ricardo Leitner) -- configs: Enable CONFIG_DEBUG_KERNEL for zfcpdump (Jiri Olsa) -- kernel.spec: Add support to use vmlinux.h (Don Zickus) -- spec: Add vmlinux.h to kernel-devel package (Jiri Olsa) -- Turn off DRM_XEN_FRONTEND for Fedora as we had DRM_XEN off already (Justin M. Forbes) -- Fedora 5.13 config updates pt 3 (Justin M. Forbes) -- all: enable ath11k wireless modules (Peter Robinson) -- all: Enable WWAN and associated MHI bus pieces (Peter Robinson) -- spec: Enable sefltests rpm build (Jiri Olsa) -- spec: Allow bpf selftest/samples to fail (Jiri Olsa) -- bpf, selftests: Disable tests that need clang13 (Toke Høiland-Jørgensen) -- kvm: Add kvm_stat.service file and kvm_stat logrotate config to the tools (Jiri Benc) -- kernel.spec: Add missing source files to kernel-selftests-internal (Jiri Benc) -- kernel.spec: selftests: add net/forwarding to TARGETS list (Jiri Benc) -- kernel.spec: selftests: add build requirement on libmnl-devel (Jiri Benc) -- kernel.spec: add action.o to kernel-selftests-internal (Jiri Benc) -- kernel.spec: avoid building bpftool repeatedly (Jiri Benc) -- kernel.spec: selftests require python3 (Jiri Benc) -- kernel.spec: skip selftests that failed to build (Jiri Benc) -- kernel.spec: fix installation of bpf selftests (Jiri Benc) -- redhat: fix samples and selftests make options (Jiri Benc) -- kernel.spec: enable mptcp selftests for kernel-selftests-internal (Jiri Benc) -- kernel.spec: Do not export shared objects from libexecdir to RPM Provides (Jiri Benc) -- kernel.spec: add missing dependency for the which package (Jiri Benc) -- kernel.spec: add netfilter selftests to kernel-selftests-internal (Jiri Benc) -- kernel.spec: move slabinfo and page_owner_sort debuginfo to tools-debuginfo (Jiri Benc) -- kernel.spec: package and ship VM tools (Jiri Benc) -- configs: enable CONFIG_PAGE_OWNER (Jiri Benc) -- kernel.spec: add coreutils (Jiri Benc) -- kernel.spec: add netdevsim driver selftests to kernel-selftests-internal (Jiri Benc) -- redhat/Makefile: Clean out the --without flags from the baseonly rule (Jiri Benc) -- kernel.spec: Stop building unnecessary rpms for baseonly builds (Jiri Benc) -- kernel.spec: disable more kabi switches for gcov build (Jiri Benc) -- kernel.spec: Rename kabi-dw base (Jiri Benc) -- kernel.spec: Fix error messages during build of zfcpdump kernel (Jiri Benc) -- kernel.spec: perf: remove bpf examples (Jiri Benc) -- kernel.spec: selftests should not depend on modules-internal (Jiri Benc) -- kernel.spec: build samples (Jiri Benc) -- kernel.spec: tools: sync missing options with RHEL 8 (Jiri Benc) -- redhat/configs: nftables: Enable extra flowtable symbols (Phil Sutter) -- redhat/configs: Sync netfilter options with RHEL8 (Phil Sutter) -- Fedora 5.13 config updates pt 2 (Justin M. Forbes) -- Move CONFIG_ARCH_INTEL_SOCFPGA up a level for Fedora (Justin M. Forbes) -- fedora: enable the Rockchip rk3399 pcie drivers (Peter Robinson) -- PCI: rockchip: Register IRQs just before pci_host_probe() (Javier Martinez Canillas) -- arm64: dts: rockchip: Update PCI host bridge window to 32-bit address memory (Punit Agrawal) - Fedora 5.13 config updates pt 1 (Justin M. Forbes) - Fix version requirement from opencsd-devel buildreq (Justin M. Forbes) - configs/ark/s390: set CONFIG_MARCH_Z14 and CONFIG_TUNE_Z15 (Philipp Rudo) [1876435] @@ -4515,7 +3472,6 @@ fi - redhat: ark: disable CONFIG_NET_SCH_QFQ (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_PLUG (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_PIE (Davide Caratti) -- redhat: ark: disable CONFIG_NET_SCH_MULTIQ (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_HHF (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_DSMARK (Davide Caratti) - redhat: ark: disable CONFIG_NET_SCH_DRR (Davide Caratti) @@ -4559,7 +3515,6 @@ fi - redhat: Replace hardware.redhat.com link in Unsupported message (Prarit Bhargava) [1810301] - x86: Fix compile issues with rh_check_supported() (Don Zickus) - KEYS: Make use of platform keyring for module signature verify (Robert Holmes) -- Drop that for now (Laura Abbott) - Input: rmi4 - remove the need for artificial IRQ in case of HID (Benjamin Tissoires) - ARM: tegra: usb no reset (Peter Robinson) - arm: make CONFIG_HIGHPTE optional without CONFIG_EXPERT (Jon Masters) @@ -4595,21 +3550,14 @@ fi - iommu/arm-smmu: workaround DMA mode issues (Laura Abbott) - rh_kabi: introduce RH_KABI_EXCLUDE (Jakub Racek) - ipmi: do not configure ipmi for HPE m400 (Laura Abbott) [1670017] -- IB/rxe: Mark Soft-RoCE Transport driver as tech-preview (Don Dutile) [1605216] -- scsi: smartpqi: add inspur advantech ids (Don Brace) -- ice: mark driver as tech-preview (Jonathan Toppins) - kABI: Add generic kABI macros to use for kABI workarounds (Myron Stowe) [1546831] - add pci_hw_vendor_status() (Maurizio Lombardi) - ahci: thunderx2: Fix for errata that affects stop engine (Robert Richter) - Vulcan: AHCI PCI bar fix for Broadcom Vulcan early silicon (Robert Richter) -- bpf: Add tech preview taint for syscall (Eugene Syromiatnikov) [1559877] - bpf: set unprivileged_bpf_disabled to 1 by default, add a boot parameter (Eugene Syromiatnikov) [1561171] - add Red Hat-specific taint flags (Eugene Syromiatnikov) [1559877] -- kdump: fix a grammar issue in a kernel message (Dave Young) [1507353] - tags.sh: Ignore redhat/rpm (Jeremy Cline) - put RHEL info into generated headers (Laura Abbott) [1663728] -- kdump: add support for crashkernel=auto (Jeremy Cline) -- kdump: round up the total memory size to 128M for crashkernel reservation (Dave Young) [1507353] - acpi: prefer booting with ACPI over DTS (Mark Salter) [1576869] - aarch64: acpi scan: Fix regression related to X-Gene UARTs (Mark Salter) [1519554] - ACPI / irq: Workaround firmware issue on X-Gene based m400 (Mark Salter) [1519554] diff --git a/patch-5.14-redhat.patch b/patch-5.14-redhat.patch deleted file mode 100644 index 852489059..000000000 --- a/patch-5.14-redhat.patch +++ /dev/null @@ -1,4456 +0,0 @@ - Documentation/admin-guide/kernel-parameters.txt | 9 + - Kconfig | 2 + - Kconfig.redhat | 17 + - Makefile | 12 +- - arch/arm/Kconfig | 4 +- - arch/arm64/Kconfig | 3 +- - .../boot/dts/rockchip/rk3399-pinebook-pro.dts | 6 +- - arch/arm64/kernel/acpi.c | 4 + - arch/s390/include/asm/ipl.h | 1 + - arch/s390/kernel/ipl.c | 5 + - arch/s390/kernel/setup.c | 4 + - arch/x86/kernel/cpu/common.c | 1 + - arch/x86/kernel/setup.c | 69 ++- - crypto/rng.c | 73 ++- - drivers/acpi/apei/hest.c | 8 + - drivers/acpi/irq.c | 17 +- - drivers/acpi/scan.c | 9 + - drivers/ata/libahci.c | 18 + - drivers/char/ipmi/ipmi_dmi.c | 15 + - drivers/char/ipmi/ipmi_msghandler.c | 16 +- - drivers/char/random.c | 115 +++++ - drivers/firmware/efi/Makefile | 1 + - drivers/firmware/efi/efi.c | 124 +++-- - drivers/firmware/efi/secureboot.c | 38 ++ - drivers/hid/hid-rmi.c | 64 --- - drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + - drivers/input/rmi4/rmi_driver.c | 124 +++-- - drivers/iommu/iommu.c | 22 + - drivers/message/fusion/mptsas.c | 10 + - drivers/message/fusion/mptspi.c | 11 + - drivers/net/team/team.c | 2 + - drivers/net/wireguard/main.c | 7 + - drivers/nvme/host/core.c | 22 +- - drivers/nvme/host/multipath.c | 19 +- - drivers/nvme/host/nvme.h | 4 + - drivers/pci/pci-driver.c | 29 ++ - drivers/pci/quirks.c | 24 + - drivers/scsi/aacraid/linit.c | 2 + - drivers/scsi/be2iscsi/be_main.c | 2 + - drivers/scsi/hpsa.c | 4 + - drivers/scsi/lpfc/lpfc_ids.h | 14 + - drivers/scsi/megaraid/megaraid_sas_base.c | 4 + - drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 + - drivers/scsi/qla2xxx/qla_os.c | 6 + - drivers/scsi/qla4xxx/ql4_os.c | 2 + - drivers/usb/core/hub.c | 7 + - fs/ext4/super.c | 5 + - fs/xfs/xfs_super.c | 13 +- - include/linux/efi.h | 22 +- - include/linux/kernel.h | 15 + - include/linux/lsm_hook_defs.h | 2 + - include/linux/lsm_hooks.h | 6 + - include/linux/module.h | 1 + - include/linux/panic.h | 19 +- - include/linux/pci.h | 4 + - include/linux/random.h | 7 + - include/linux/rh_kabi.h | 297 +++++++++++ - include/linux/rmi.h | 1 + - include/linux/security.h | 5 + - init/Kconfig | 2 +- - kernel/Makefile | 1 + - kernel/bpf/syscall.c | 18 + - kernel/module.c | 2 + - kernel/module_signing.c | 9 +- - kernel/panic.c | 14 + - kernel/rh_taint.c | 93 ++++ - kernel/sysctl.c | 5 + - mm/cma.c | 10 + - scripts/mod/modpost.c | 8 + - scripts/tags.sh | 2 + - security/integrity/platform_certs/load_uefi.c | 6 +- - security/lockdown/Kconfig | 13 + - security/lockdown/lockdown.c | 1 + - security/security.c | 6 + - tools/testing/selftests/bpf/Makefile | 1 - - .../selftests/bpf/prog_tests/linked_funcs.c | 42 -- - .../testing/selftests/bpf/prog_tests/linked_maps.c | 30 -- - .../testing/selftests/bpf/prog_tests/linked_vars.c | 43 -- - tools/testing/selftests/bpf/progs/bpf_cubic.c | 545 --------------------- - tools/testing/selftests/bpf/progs/bpf_dctcp.c | 224 --------- - .../testing/selftests/bpf/progs/kfunc_call_test.c | 47 -- - .../selftests/bpf/progs/kfunc_call_test_subprog.c | 42 -- - tools/testing/selftests/bpf/progs/linked_funcs1.c | 73 --- - tools/testing/selftests/bpf/progs/linked_funcs2.c | 73 --- - tools/testing/selftests/bpf/progs/linked_maps2.c | 76 --- - tools/testing/selftests/bpf/progs/linked_vars1.c | 54 -- - tools/testing/selftests/bpf/progs/linked_vars2.c | 55 --- - 87 files changed, 1359 insertions(+), 1506 deletions(-) - -diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index bdb22006f713..61a3a4a4730b 100644 ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -5854,6 +5854,15 @@ - unknown_nmi_panic - [X86] Cause panic on unknown NMI. - -+ unprivileged_bpf_disabled= -+ Format: { "0" | "1" | "2" } -+ Sets the initial value of -+ kernel.unprivileged_bpf_disabled sysctl knob. -+ 0 - unprivileged bpf() syscall access is enabled. -+ 1 - unprivileged bpf() syscall access is disabled permanently. -+ 2 - unprivileged bpf() syscall access is disabled. -+ Default value is 2. -+ - usbcore.authorized_default= - [USB] Default USB device authorization: - (default -1 = authorized except for wireless USB, -diff --git a/Kconfig b/Kconfig -index 745bc773f567..f57ff40109d7 100644 ---- a/Kconfig -+++ b/Kconfig -@@ -30,3 +30,5 @@ source "lib/Kconfig" - source "lib/Kconfig.debug" - - source "Documentation/Kconfig" -+ -+source "Kconfig.redhat" -diff --git a/Kconfig.redhat b/Kconfig.redhat -new file mode 100644 -index 000000000000..effb81d04bfd ---- /dev/null -+++ b/Kconfig.redhat -@@ -0,0 +1,17 @@ -+# SPDX-License-Identifier: GPL-2.0-only -+# -+# Red Hat specific options -+# -+ -+menu "Red Hat options" -+ -+config RHEL_DIFFERENCES -+ bool "Remove support for deprecated features" -+ help -+ Red Hat may choose to deprecate certain features in its kernels. -+ Enable this option to remove support for hardware that is no -+ longer supported. -+ -+ Unless you want a restricted kernel, say N here. -+ -+endmenu -diff --git a/Makefile b/Makefile -index 61741e9d9c6e..093ecf99677f 100644 ---- a/Makefile -+++ b/Makefile -@@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ - PHONY := __all - __all: - -+# Set RHEL variables -+# Use this spot to avoid future merge conflicts -+include Makefile.rhelver -+ - # We are using a recursive build, so we need to do a little thinking - # to get the ordering right. - # -@@ -1256,7 +1260,13 @@ define filechk_version.h - ((c) > 255 ? 255 : (c)))'; \ - echo \#define LINUX_VERSION_MAJOR $(VERSION); \ - echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \ -- echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL) -+ echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL); \ -+ echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \ -+ echo '#define RHEL_MINOR $(RHEL_MINOR)'; \ -+ echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \ -+ echo '#define RHEL_RELEASE_CODE \ -+ $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \ -+ echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"' - endef - - $(version_h): PATCHLEVEL := $(if $(PATCHLEVEL), $(PATCHLEVEL), 0) -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 2fb7012c3246..47718b4f2f75 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -1474,9 +1474,9 @@ config HIGHMEM - If unsure, say n. - - config HIGHPTE -- bool "Allocate 2nd-level pagetables from highmem" if EXPERT -+ bool "Allocate 2nd-level pagetables from highmem" - depends on HIGHMEM -- default y -+ default n - help - The VM uses one page of physical memory for each page table. - For systems with a lot of processes, this can use a lot of -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 62c3c1d2190f..9ef6bb1d5b0c 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -915,7 +915,7 @@ endchoice - - config ARM64_FORCE_52BIT - bool "Force 52-bit virtual addresses for userspace" -- depends on ARM64_VA_BITS_52 && EXPERT -+ depends on ARM64_VA_BITS_52 - help - For systems with 52-bit userspace VAs enabled, the kernel will attempt - to maintain compatibility with older software by providing 48-bit VAs -@@ -1156,6 +1156,7 @@ config XEN - config FORCE_MAX_ZONEORDER - int - default "14" if ARM64_64K_PAGES -+ default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES) - default "12" if ARM64_16K_PAGES - default "11" - help -diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -index 2b5f001ff4a6..dae8c252bc2b 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts -@@ -385,10 +385,6 @@ mains_charger: dc-charger { - }; - }; - --&cdn_dp { -- status = "okay"; --}; -- - &cpu_b0 { - cpu-supply = <&vdd_cpu_b>; - }; -@@ -711,7 +707,7 @@ fusb0: fusb30x@22 { - - connector { - compatible = "usb-c-connector"; -- data-role = "host"; -+ data-role = "dual"; - label = "USB-C"; - op-sink-microwatt = <1000000>; - power-role = "dual"; -diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c -index f3851724fe35..ef69eeab6f2a 100644 ---- a/arch/arm64/kernel/acpi.c -+++ b/arch/arm64/kernel/acpi.c -@@ -40,7 +40,11 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */ - EXPORT_SYMBOL(acpi_pci_disabled); - - static bool param_acpi_off __initdata; -+#ifdef CONFIG_RHEL_DIFFERENCES -+static bool param_acpi_on __initdata = true; -+#else - static bool param_acpi_on __initdata; -+#endif - static bool param_acpi_force __initdata; - - static int __init parse_acpi(char *arg) -diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h -index a9e2c7295b35..6ff11f3a2d47 100644 ---- a/arch/s390/include/asm/ipl.h -+++ b/arch/s390/include/asm/ipl.h -@@ -127,6 +127,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, - unsigned char flags, unsigned short cert); - int ipl_report_add_certificate(struct ipl_report *report, void *key, - unsigned long addr, unsigned long len); -+bool ipl_get_secureboot(void); - - /* - * DIAG 308 support -diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c -index 50e2c21e0ec9..5da0c683df8d 100644 ---- a/arch/s390/kernel/ipl.c -+++ b/arch/s390/kernel/ipl.c -@@ -2218,3 +2218,8 @@ int ipl_report_free(struct ipl_report *report) - } - - #endif -+ -+bool ipl_get_secureboot(void) -+{ -+ return !!ipl_secure_flag; -+} -diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c -index ff0f9e838916..557318323664 100644 ---- a/arch/s390/kernel/setup.c -+++ b/arch/s390/kernel/setup.c -@@ -49,6 +49,7 @@ - #include - #include - #include -+#include - #include - - #include -@@ -1023,6 +1024,9 @@ void __init setup_arch(char **cmdline_p) - - log_component_list(); - -+ if (ipl_get_secureboot()) -+ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); -+ - /* Have one command line that is parsed and saved in /proc/cmdline */ - /* boot_command_line has been already set up in early.c */ - *cmdline_p = boot_command_line; -diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c -index 64b805bd6a54..e6702f1e1beb 100644 ---- a/arch/x86/kernel/cpu/common.c -+++ b/arch/x86/kernel/cpu/common.c -@@ -1304,6 +1304,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c) - cpu_detect(c); - get_cpu_vendor(c); - get_cpu_cap(c); -+ get_model_name(c); /* RHEL: get model name for unsupported check */ - get_cpu_address_sizes(c); - setup_force_cpu_cap(X86_FEATURE_CPUID); - cpu_parse_early_param(); -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index bff3a784aec5..1a9c345f914d 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -49,6 +50,7 @@ - #include - #include - #include -+#include - - /* - * max_low_pfn_mapped: highest directly mapped pfn < 4 GB -@@ -732,6 +734,50 @@ static void __init early_reserve_memory(void) - trim_snb_memory(); - } - -+#ifdef CONFIG_RHEL_DIFFERENCES -+ -+static void rh_check_supported(void) -+{ -+ bool guest; -+ -+ guest = (x86_hyper_type != X86_HYPER_NATIVE || boot_cpu_has(X86_FEATURE_HYPERVISOR)); -+ -+ /* RHEL supports single cpu on guests only */ -+ if (((boot_cpu_data.x86_max_cores * smp_num_siblings) == 1) && -+ !guest && is_kdump_kernel()) { -+ pr_crit("Detected single cpu native boot.\n"); -+ pr_crit("Important: In this kernel, single threaded, single CPU 64-bit physical systems are unsupported."); -+ } -+ -+ /* -+ * If the RHEL kernel does not support this hardware, the kernel will -+ * attempt to boot, but no support is provided for this hardware -+ */ -+ switch (boot_cpu_data.x86_vendor) { -+ case X86_VENDOR_AMD: -+ case X86_VENDOR_INTEL: -+ break; -+ default: -+ pr_crit("Detected processor %s %s\n", -+ boot_cpu_data.x86_vendor_id, -+ boot_cpu_data.x86_model_id); -+ mark_hardware_unsupported("Processor"); -+ break; -+ } -+ -+ /* -+ * Due to the complexity of x86 lapic & ioapic enumeration, and PCI IRQ -+ * routing, ACPI is required for x86. acpi=off is a valid debug kernel -+ * parameter, so just print out a loud warning in case something -+ * goes wrong (which is most of the time). -+ */ -+ if (acpi_disabled && !guest) -+ pr_crit("ACPI has been disabled or is not available on this hardware. This may result in a single cpu boot, incorrect PCI IRQ routing, or boot failure.\n"); -+} -+#else -+#define rh_check_supported() -+#endif -+ - /* - * Dump out kernel offset information on panic. - */ -@@ -936,6 +982,13 @@ void __init setup_arch(char **cmdline_p) - if (efi_enabled(EFI_BOOT)) - efi_init(); - -+ efi_set_secure_boot(boot_params.secure_boot); -+ -+#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT -+ if (efi_enabled(EFI_SECURE_BOOT)) -+ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); -+#endif -+ - dmi_setup(); - - /* -@@ -1101,19 +1154,7 @@ void __init setup_arch(char **cmdline_p) - /* Allocate bigger log buffer */ - setup_log_buf(1); - -- if (efi_enabled(EFI_BOOT)) { -- switch (boot_params.secure_boot) { -- case efi_secureboot_mode_disabled: -- pr_info("Secure boot disabled\n"); -- break; -- case efi_secureboot_mode_enabled: -- pr_info("Secure boot enabled\n"); -- break; -- default: -- pr_info("Secure boot could not be determined\n"); -- break; -- } -- } -+ efi_set_secure_boot(boot_params.secure_boot); - - reserve_initrd(); - -@@ -1226,6 +1267,8 @@ void __init setup_arch(char **cmdline_p) - efi_apply_memmap_quirks(); - #endif - -+ rh_check_supported(); -+ - unwind_init(); - } - -diff --git a/crypto/rng.c b/crypto/rng.c -index fea082b25fe4..50a9d040bed1 100644 ---- a/crypto/rng.c -+++ b/crypto/rng.c -@@ -11,14 +11,17 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include - #include -+#include -+#include - #include - #include - #include --#include - #include - - #include "internal.h" -@@ -224,5 +227,73 @@ void crypto_unregister_rngs(struct rng_alg *algs, int count) - } - EXPORT_SYMBOL_GPL(crypto_unregister_rngs); - -+static ssize_t crypto_devrandom_read(void __user *buf, size_t buflen) -+{ -+ u8 tmp[256]; -+ ssize_t ret; -+ -+ if (!buflen) -+ return 0; -+ -+ ret = crypto_get_default_rng(); -+ if (ret) -+ return ret; -+ -+ for (;;) { -+ int err; -+ int i; -+ -+ i = min_t(int, buflen, sizeof(tmp)); -+ err = crypto_rng_get_bytes(crypto_default_rng, tmp, i); -+ if (err) { -+ ret = err; -+ break; -+ } -+ -+ if (copy_to_user(buf, tmp, i)) { -+ ret = -EFAULT; -+ break; -+ } -+ -+ buflen -= i; -+ buf += i; -+ ret += i; -+ -+ if (!buflen) -+ break; -+ -+ if (need_resched()) { -+ if (signal_pending(current)) -+ break; -+ schedule(); -+ } -+ } -+ -+ crypto_put_default_rng(); -+ memzero_explicit(tmp, sizeof(tmp)); -+ -+ return ret; -+} -+ -+static const struct random_extrng crypto_devrandom_rng = { -+ .extrng_read = crypto_devrandom_read, -+ .owner = THIS_MODULE, -+}; -+ -+static int __init crypto_rng_init(void) -+{ -+ if (fips_enabled) -+ random_register_extrng(&crypto_devrandom_rng); -+ return 0; -+} -+ -+static void __exit crypto_rng_exit(void) -+{ -+ random_unregister_extrng(); -+} -+ -+late_initcall(crypto_rng_init); -+module_exit(crypto_rng_exit); -+ - MODULE_LICENSE("GPL"); - MODULE_DESCRIPTION("Random Number Generator"); -diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c -index 277f00b288d1..adbce15c273d 100644 ---- a/drivers/acpi/apei/hest.c -+++ b/drivers/acpi/apei/hest.c -@@ -94,6 +94,14 @@ int apei_hest_parse(apei_hest_func_t func, void *data) - if (hest_disable || !hest_tab) - return -EINVAL; - -+#ifdef CONFIG_ARM64 -+ /* Ignore broken firmware */ -+ if (!strncmp(hest_tab->header.oem_id, "HPE ", 6) && -+ !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) && -+ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) -+ return -EINVAL; -+#endif -+ - hest_hdr = (struct acpi_hest_header *)(hest_tab + 1); - for (i = 0; i < hest_tab->error_source_count; i++) { - len = hest_esrc_len(hest_hdr); -diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c -index c68e694fca26..146cba5ae5bc 100644 ---- a/drivers/acpi/irq.c -+++ b/drivers/acpi/irq.c -@@ -130,6 +130,7 @@ struct acpi_irq_parse_one_ctx { - unsigned int index; - unsigned long *res_flags; - struct irq_fwspec *fwspec; -+ bool skip_producer_check; - }; - - /** -@@ -201,7 +202,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, - return AE_CTRL_TERMINATE; - case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: - eirq = &ares->data.extended_irq; -- if (eirq->producer_consumer == ACPI_PRODUCER) -+ if (!ctx->skip_producer_check && -+ eirq->producer_consumer == ACPI_PRODUCER) - return AE_OK; - if (ctx->index >= eirq->interrupt_count) { - ctx->index -= eirq->interrupt_count; -@@ -236,8 +238,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, - static int acpi_irq_parse_one(acpi_handle handle, unsigned int index, - struct irq_fwspec *fwspec, unsigned long *flags) - { -- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec }; -+ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false }; - -+ /* -+ * Firmware on arm64-based HPE m400 platform incorrectly marks -+ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER. -+ * Don't do the producer/consumer check for that device. -+ */ -+ if (IS_ENABLED(CONFIG_ARM64)) { -+ struct acpi_device *adev = acpi_bus_get_acpi_device(handle); -+ -+ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08")) -+ ctx.skip_producer_check = true; -+ } - acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx); - return ctx.rc; - } -diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c -index b24513ec3fae..8308569f66e0 100644 ---- a/drivers/acpi/scan.c -+++ b/drivers/acpi/scan.c -@@ -1721,6 +1721,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) - if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids)) - return false; - -+ /* -+ * Firmware on some arm64 X-Gene platforms will make the UART -+ * device appear as both a UART and a slave of that UART. Just -+ * bail out here for X-Gene UARTs. -+ */ -+ if (IS_ENABLED(CONFIG_ARM64) && -+ !strcmp(acpi_device_hid(device), "APMC0D08")) -+ return false; -+ - INIT_LIST_HEAD(&resource_list); - acpi_dev_get_resources(device, &resource_list, - acpi_check_serial_bus_slave, -diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c -index fec2e9754aed..bea4e2973259 100644 ---- a/drivers/ata/libahci.c -+++ b/drivers/ata/libahci.c -@@ -671,6 +671,24 @@ int ahci_stop_engine(struct ata_port *ap) - tmp &= ~PORT_CMD_START; - writel(tmp, port_mmio + PORT_CMD); - -+#ifdef CONFIG_ARM64 -+ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ -+ if (dev_is_pci(ap->host->dev) && -+ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && -+ to_pci_dev(ap->host->dev)->device == 0x9027 && -+ midr_is_cpu_model_range(read_cpuid_id(), -+ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), -+ MIDR_CPU_VAR_REV(0, 0), -+ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { -+ tmp = readl(hpriv->mmio + 0x8000); -+ udelay(100); -+ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); -+ udelay(100); -+ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); -+ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); -+ } -+#endif -+ - /* wait for engine to stop. This could be as long as 500 msec */ - tmp = ata_wait_register(ap, port_mmio + PORT_CMD, - PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); -diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c -index bbf7029e224b..cf7faa970dd6 100644 ---- a/drivers/char/ipmi/ipmi_dmi.c -+++ b/drivers/char/ipmi/ipmi_dmi.c -@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void) - { - const struct dmi_device *dev = NULL; - -+#ifdef CONFIG_ARM64 -+ /* RHEL-only -+ * If this is ARM-based HPE m400, return now, because that platform -+ * reports the host-side ipmi address as intel port-io space, which -+ * does not exist in the ARM architecture. -+ */ -+ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); -+ -+ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { -+ pr_debug("%s does not support host ipmi\n", dmistr); -+ return 0; -+ } -+ /* END RHEL-only */ -+#endif -+ - while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) - dmi_decode_ipmi((const struct dmi_header *) dev->device_data); - -diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c -index e96cb5c4f97a..d645460fe8a9 100644 ---- a/drivers/char/ipmi/ipmi_msghandler.c -+++ b/drivers/char/ipmi/ipmi_msghandler.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - - #define IPMI_DRIVER_VERSION "39.2" -@@ -5160,8 +5161,21 @@ static int __init ipmi_init_msghandler_mod(void) - { - int rv; - -- pr_info("version " IPMI_DRIVER_VERSION "\n"); -+#ifdef CONFIG_ARM64 -+ /* RHEL-only -+ * If this is ARM-based HPE m400, return now, because that platform -+ * reports the host-side ipmi address as intel port-io space, which -+ * does not exist in the ARM architecture. -+ */ -+ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); - -+ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { -+ pr_debug("%s does not support host ipmi\n", dmistr); -+ return -ENOSYS; -+ } -+ /* END RHEL-only */ -+#endif -+ pr_info("version " IPMI_DRIVER_VERSION "\n"); - mutex_lock(&ipmi_interfaces_mutex); - rv = ipmi_register_driver(); - mutex_unlock(&ipmi_interfaces_mutex); -diff --git a/drivers/char/random.c b/drivers/char/random.c -index 605969ed0f96..4d51f1c67675 100644 ---- a/drivers/char/random.c -+++ b/drivers/char/random.c -@@ -335,6 +335,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -349,6 +350,11 @@ - - /* #define ADD_INTERRUPT_BENCH */ - -+/* -+ * Hook for external RNG. -+ */ -+static const struct random_extrng __rcu *extrng; -+ - /* - * Configuration information - */ -@@ -481,6 +487,9 @@ static int ratelimit_disable __read_mostly; - module_param_named(ratelimit_disable, ratelimit_disable, int, 0644); - MODULE_PARM_DESC(ratelimit_disable, "Disable random ratelimit suppression"); - -+static const struct file_operations extrng_random_fops; -+static const struct file_operations extrng_urandom_fops; -+ - /********************************************************************** - * - * OS independent entropy store. Here are the functions which handle -@@ -1858,6 +1867,13 @@ random_poll(struct file *file, poll_table * wait) - return mask; - } - -+static __poll_t -+extrng_poll(struct file *file, poll_table * wait) -+{ -+ /* extrng pool is always full, always read, no writes */ -+ return EPOLLIN | EPOLLRDNORM; -+} -+ - static int - write_pool(struct entropy_store *r, const char __user *buffer, size_t count) - { -@@ -1961,7 +1977,58 @@ static int random_fasync(int fd, struct file *filp, int on) - return fasync_helper(fd, filp, on, &fasync); - } - -+static int random_open(struct inode *inode, struct file *filp) -+{ -+ const struct random_extrng *rng; -+ -+ rcu_read_lock(); -+ rng = rcu_dereference(extrng); -+ if (rng && !try_module_get(rng->owner)) -+ rng = NULL; -+ rcu_read_unlock(); -+ -+ if (!rng) -+ return 0; -+ -+ filp->f_op = &extrng_random_fops; -+ filp->private_data = rng->owner; -+ -+ return 0; -+} -+ -+static int urandom_open(struct inode *inode, struct file *filp) -+{ -+ const struct random_extrng *rng; -+ -+ rcu_read_lock(); -+ rng = rcu_dereference(extrng); -+ if (rng && !try_module_get(rng->owner)) -+ rng = NULL; -+ rcu_read_unlock(); -+ -+ if (!rng) -+ return 0; -+ -+ filp->f_op = &extrng_urandom_fops; -+ filp->private_data = rng->owner; -+ -+ return 0; -+} -+ -+static int extrng_release(struct inode *inode, struct file *filp) -+{ -+ module_put(filp->private_data); -+ return 0; -+} -+ -+static ssize_t -+extrng_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) -+{ -+ return rcu_dereference_raw(extrng)->extrng_read(buf, nbytes); -+} -+ - const struct file_operations random_fops = { -+ .open = random_open, - .read = random_read, - .write = random_write, - .poll = random_poll, -@@ -1972,6 +2039,7 @@ const struct file_operations random_fops = { - }; - - const struct file_operations urandom_fops = { -+ .open = urandom_open, - .read = urandom_read, - .write = random_write, - .unlocked_ioctl = random_ioctl, -@@ -1980,9 +2048,31 @@ const struct file_operations urandom_fops = { - .llseek = noop_llseek, - }; - -+static const struct file_operations extrng_random_fops = { -+ .open = random_open, -+ .read = extrng_read, -+ .write = random_write, -+ .poll = extrng_poll, -+ .unlocked_ioctl = random_ioctl, -+ .fasync = random_fasync, -+ .llseek = noop_llseek, -+ .release = extrng_release, -+}; -+ -+static const struct file_operations extrng_urandom_fops = { -+ .open = urandom_open, -+ .read = extrng_read, -+ .write = random_write, -+ .unlocked_ioctl = random_ioctl, -+ .fasync = random_fasync, -+ .llseek = noop_llseek, -+ .release = extrng_release, -+}; -+ - SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, - unsigned int, flags) - { -+ const struct random_extrng *rng; - int ret; - - if (flags & ~(GRND_NONBLOCK|GRND_RANDOM|GRND_INSECURE)) -@@ -1998,6 +2088,18 @@ SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, - if (count > INT_MAX) - count = INT_MAX; - -+ rcu_read_lock(); -+ rng = rcu_dereference(extrng); -+ if (rng && !try_module_get(rng->owner)) -+ rng = NULL; -+ rcu_read_unlock(); -+ -+ if (rng) { -+ ret = rng->extrng_read(buf, count); -+ module_put(rng->owner); -+ return ret; -+ } -+ - if (!(flags & GRND_INSECURE) && !crng_ready()) { - if (flags & GRND_NONBLOCK) - return -EAGAIN; -@@ -2303,3 +2405,16 @@ void add_bootloader_randomness(const void *buf, unsigned int size) - add_device_randomness(buf, size); - } - EXPORT_SYMBOL_GPL(add_bootloader_randomness); -+ -+void random_register_extrng(const struct random_extrng *rng) -+{ -+ rcu_assign_pointer(extrng, rng); -+} -+EXPORT_SYMBOL_GPL(random_register_extrng); -+ -+void random_unregister_extrng(void) -+{ -+ RCU_INIT_POINTER(extrng, NULL); -+ synchronize_rcu(); -+} -+EXPORT_SYMBOL_GPL(random_unregister_extrng); -diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile -index 467e94259679..9b6f5b8e5397 100644 ---- a/drivers/firmware/efi/Makefile -+++ b/drivers/firmware/efi/Makefile -@@ -28,6 +28,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_map.o - obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o - obj-$(CONFIG_EFI_TEST) += test/ - obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o -+obj-$(CONFIG_EFI) += secureboot.o - obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o - obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o - obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o -diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c -index 847f33ffc4ae..363037f8eaf8 100644 ---- a/drivers/firmware/efi/efi.c -+++ b/drivers/firmware/efi/efi.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - #include - -@@ -841,40 +842,101 @@ int efi_mem_type(unsigned long phys_addr) - } - #endif - -+struct efi_error_code { -+ efi_status_t status; -+ int errno; -+ const char *description; -+}; -+ -+static const struct efi_error_code efi_error_codes[] = { -+ { EFI_SUCCESS, 0, "Success"}, -+#if 0 -+ { EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"}, -+#endif -+ { EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"}, -+ { EFI_UNSUPPORTED, -ENOSYS, "Unsupported"}, -+ { EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"}, -+ { EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"}, -+ { EFI_NOT_READY, -EAGAIN, "Not Ready"}, -+ { EFI_DEVICE_ERROR, -EIO, "Device Error"}, -+ { EFI_WRITE_PROTECTED, -EROFS, "Write Protected"}, -+ { EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"}, -+#if 0 -+ { EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"}, -+ { EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"}, -+ { EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"}, -+ { EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"}, -+#endif -+ { EFI_NOT_FOUND, -ENOENT, "Not Found"}, -+#if 0 -+ { EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"}, -+ { EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"}, -+ { EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"}, -+ { EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"}, -+ { EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"}, -+ { EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"}, -+#endif -+ { EFI_ABORTED, -EINTR, "Aborted"}, -+#if 0 -+ { EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"}, -+ { EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"}, -+ { EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"}, -+ { EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"}, -+#endif -+ { EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"}, -+#if 0 -+ { EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"}, -+ { EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"}, -+ { EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"}, -+ { EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"}, -+ { EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"}, -+ -+ // warnings -+ { EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"}, -+ { EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"}, -+ { EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"}, -+ { EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"}, -+#endif -+}; -+ -+static int -+efi_status_cmp_bsearch(const void *key, const void *item) -+{ -+ u64 status = (u64)(uintptr_t)key; -+ struct efi_error_code *code = (struct efi_error_code *)item; -+ -+ if (status < code->status) -+ return -1; -+ if (status > code->status) -+ return 1; -+ return 0; -+} -+ - int efi_status_to_err(efi_status_t status) - { -- int err; -- -- switch (status) { -- case EFI_SUCCESS: -- err = 0; -- break; -- case EFI_INVALID_PARAMETER: -- err = -EINVAL; -- break; -- case EFI_OUT_OF_RESOURCES: -- err = -ENOSPC; -- break; -- case EFI_DEVICE_ERROR: -- err = -EIO; -- break; -- case EFI_WRITE_PROTECTED: -- err = -EROFS; -- break; -- case EFI_SECURITY_VIOLATION: -- err = -EACCES; -- break; -- case EFI_NOT_FOUND: -- err = -ENOENT; -- break; -- case EFI_ABORTED: -- err = -EINTR; -- break; -- default: -- err = -EINVAL; -- } -+ struct efi_error_code *found; -+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); - -- return err; -+ found = bsearch((void *)(uintptr_t)status, efi_error_codes, -+ sizeof(struct efi_error_code), num, -+ efi_status_cmp_bsearch); -+ if (!found) -+ return -EINVAL; -+ return found->errno; -+} -+ -+const char * -+efi_status_to_str(efi_status_t status) -+{ -+ struct efi_error_code *found; -+ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); -+ -+ found = bsearch((void *)(uintptr_t)status, efi_error_codes, -+ sizeof(struct efi_error_code), num, -+ efi_status_cmp_bsearch); -+ if (!found) -+ return "Unknown error code"; -+ return found->description; - } - - static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock); -diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c -new file mode 100644 -index 000000000000..de0a3714a5d4 ---- /dev/null -+++ b/drivers/firmware/efi/secureboot.c -@@ -0,0 +1,38 @@ -+/* Core kernel secure boot support. -+ * -+ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. -+ * Written by David Howells (dhowells@redhat.com) -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public Licence -+ * as published by the Free Software Foundation; either version -+ * 2 of the Licence, or (at your option) any later version. -+ */ -+ -+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -+ -+#include -+#include -+#include -+ -+/* -+ * Decide what to do when UEFI secure boot mode is enabled. -+ */ -+void __init efi_set_secure_boot(enum efi_secureboot_mode mode) -+{ -+ if (efi_enabled(EFI_BOOT)) { -+ switch (mode) { -+ case efi_secureboot_mode_disabled: -+ pr_info("Secure boot disabled\n"); -+ break; -+ case efi_secureboot_mode_enabled: -+ set_bit(EFI_SECURE_BOOT, &efi.flags); -+ pr_info("Secure boot enabled\n"); -+ break; -+ default: -+ pr_warn("Secure boot could not be determined (mode %u)\n", -+ mode); -+ break; -+ } -+ } -+} -diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c -index 311eee599ce9..2460c6bd46f8 100644 ---- a/drivers/hid/hid-rmi.c -+++ b/drivers/hid/hid-rmi.c -@@ -322,19 +322,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) - { - struct rmi_data *hdata = hid_get_drvdata(hdev); - struct rmi_device *rmi_dev = hdata->xport.rmi_dev; -- unsigned long flags; - - if (!(test_bit(RMI_STARTED, &hdata->flags))) - return 0; - -- local_irq_save(flags); -- - rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); - -- generic_handle_irq(hdata->rmi_irq); -- -- local_irq_restore(flags); -- - return 1; - } - -@@ -591,56 +584,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { - .reset = rmi_hid_reset, - }; - --static void rmi_irq_teardown(void *data) --{ -- struct rmi_data *hdata = data; -- struct irq_domain *domain = hdata->domain; -- -- if (!domain) -- return; -- -- irq_dispose_mapping(irq_find_mapping(domain, 0)); -- -- irq_domain_remove(domain); -- hdata->domain = NULL; -- hdata->rmi_irq = 0; --} -- --static int rmi_irq_map(struct irq_domain *h, unsigned int virq, -- irq_hw_number_t hw_irq_num) --{ -- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq); -- -- return 0; --} -- --static const struct irq_domain_ops rmi_irq_ops = { -- .map = rmi_irq_map, --}; -- --static int rmi_setup_irq_domain(struct hid_device *hdev) --{ -- struct rmi_data *hdata = hid_get_drvdata(hdev); -- int ret; -- -- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1, -- &rmi_irq_ops, hdata); -- if (!hdata->domain) -- return -ENOMEM; -- -- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata); -- if (ret) -- return ret; -- -- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0); -- if (hdata->rmi_irq <= 0) { -- hid_err(hdev, "Can't allocate an IRQ\n"); -- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO; -- } -- -- return 0; --} -- - static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) - { - struct rmi_data *data = NULL; -@@ -713,18 +656,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) - - mutex_init(&data->page_mutex); - -- ret = rmi_setup_irq_domain(hdev); -- if (ret) { -- hid_err(hdev, "failed to allocate IRQ domain\n"); -- return ret; -- } -- - if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) - rmi_hid_pdata.gpio_data.disable = true; - - data->xport.dev = hdev->dev.parent; - data->xport.pdata = rmi_hid_pdata; -- data->xport.pdata.irq = data->rmi_irq; - data->xport.proto_name = "hid"; - data->xport.ops = &hid_rmi_ops; - -diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c -index da27cd4a3c38..5404b4c407c5 100644 ---- a/drivers/hwtracing/coresight/coresight-etm4x-core.c -+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -2071,6 +2072,16 @@ static const struct amba_id etm4_ids[] = { - {}, - }; - -+static const struct dmi_system_id broken_coresight[] = { -+ { -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "HPE"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "Apollo 70"), -+ }, -+ }, -+ { } /* terminating entry */ -+}; -+ - MODULE_DEVICE_TABLE(amba, etm4_ids); - - static struct amba_driver etm4x_amba_driver = { -@@ -2104,6 +2115,11 @@ static int __init etm4x_init(void) - { - int ret; - -+ if (dmi_check_system(broken_coresight)) { -+ pr_info("ETM4 disabled due to firmware bug\n"); -+ return 0; -+ } -+ - ret = etm4_pm_setup(); - - /* etm4_pm_setup() does its own cleanup - exit on error */ -@@ -2130,6 +2146,9 @@ static int __init etm4x_init(void) - - static void __exit etm4x_exit(void) - { -+ if (dmi_check_system(broken_coresight)) -+ return; -+ - amba_driver_unregister(&etm4x_amba_driver); - platform_driver_unregister(&etm4_platform_driver); - etm4_pm_clear(); -diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c -index 258d5fe3d395..f7298e3dc8f3 100644 ---- a/drivers/input/rmi4/rmi_driver.c -+++ b/drivers/input/rmi4/rmi_driver.c -@@ -182,34 +182,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, - attn_data.data = fifo_data; - - kfifo_put(&drvdata->attn_fifo, attn_data); -+ -+ schedule_work(&drvdata->attn_work); - } - EXPORT_SYMBOL_GPL(rmi_set_attn_data); - --static irqreturn_t rmi_irq_fn(int irq, void *dev_id) -+static void attn_callback(struct work_struct *work) - { -- struct rmi_device *rmi_dev = dev_id; -- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev); -+ struct rmi_driver_data *drvdata = container_of(work, -+ struct rmi_driver_data, -+ attn_work); - struct rmi4_attn_data attn_data = {0}; - int ret, count; - - count = kfifo_get(&drvdata->attn_fifo, &attn_data); -- if (count) { -- *(drvdata->irq_status) = attn_data.irq_status; -- drvdata->attn_data = attn_data; -- } -+ if (!count) -+ return; - -- ret = rmi_process_interrupt_requests(rmi_dev); -+ *(drvdata->irq_status) = attn_data.irq_status; -+ drvdata->attn_data = attn_data; -+ -+ ret = rmi_process_interrupt_requests(drvdata->rmi_dev); - if (ret) -- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, -+ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, - "Failed to process interrupt request: %d\n", ret); - -- if (count) { -- kfree(attn_data.data); -- drvdata->attn_data.data = NULL; -- } -+ kfree(attn_data.data); -+ drvdata->attn_data.data = NULL; - - if (!kfifo_is_empty(&drvdata->attn_fifo)) -- return rmi_irq_fn(irq, dev_id); -+ schedule_work(&drvdata->attn_work); -+} -+ -+static irqreturn_t rmi_irq_fn(int irq, void *dev_id) -+{ -+ struct rmi_device *rmi_dev = dev_id; -+ int ret; -+ -+ ret = rmi_process_interrupt_requests(rmi_dev); -+ if (ret) -+ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, -+ "Failed to process interrupt request: %d\n", ret); - - return IRQ_HANDLED; - } -@@ -217,7 +230,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) - static int rmi_irq_init(struct rmi_device *rmi_dev) - { - struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); -- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); - int irq_flags = irq_get_trigger_type(pdata->irq); - int ret; - -@@ -235,8 +247,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) - return ret; - } - -- data->enabled = true; -- - return 0; - } - -@@ -886,23 +896,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) - if (data->enabled) - goto out; - -- enable_irq(irq); -- data->enabled = true; -- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { -- retval = disable_irq_wake(irq); -- if (retval) -- dev_warn(&rmi_dev->dev, -- "Failed to disable irq for wake: %d\n", -- retval); -- } -+ if (irq) { -+ enable_irq(irq); -+ data->enabled = true; -+ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { -+ retval = disable_irq_wake(irq); -+ if (retval) -+ dev_warn(&rmi_dev->dev, -+ "Failed to disable irq for wake: %d\n", -+ retval); -+ } - -- /* -- * Call rmi_process_interrupt_requests() after enabling irq, -- * otherwise we may lose interrupt on edge-triggered systems. -- */ -- irq_flags = irq_get_trigger_type(pdata->irq); -- if (irq_flags & IRQ_TYPE_EDGE_BOTH) -- rmi_process_interrupt_requests(rmi_dev); -+ /* -+ * Call rmi_process_interrupt_requests() after enabling irq, -+ * otherwise we may lose interrupt on edge-triggered systems. -+ */ -+ irq_flags = irq_get_trigger_type(pdata->irq); -+ if (irq_flags & IRQ_TYPE_EDGE_BOTH) -+ rmi_process_interrupt_requests(rmi_dev); -+ } else { -+ data->enabled = true; -+ } - - out: - mutex_unlock(&data->enabled_mutex); -@@ -922,20 +936,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) - goto out; - - data->enabled = false; -- disable_irq(irq); -- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { -- retval = enable_irq_wake(irq); -- if (retval) -- dev_warn(&rmi_dev->dev, -- "Failed to enable irq for wake: %d\n", -- retval); -- } -- -- /* make sure the fifo is clean */ -- while (!kfifo_is_empty(&data->attn_fifo)) { -- count = kfifo_get(&data->attn_fifo, &attn_data); -- if (count) -- kfree(attn_data.data); -+ if (irq) { -+ disable_irq(irq); -+ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { -+ retval = enable_irq_wake(irq); -+ if (retval) -+ dev_warn(&rmi_dev->dev, -+ "Failed to enable irq for wake: %d\n", -+ retval); -+ } -+ } else { -+ /* make sure the fifo is clean */ -+ while (!kfifo_is_empty(&data->attn_fifo)) { -+ count = kfifo_get(&data->attn_fifo, &attn_data); -+ if (count) -+ kfree(attn_data.data); -+ } - } - - out: -@@ -981,6 +997,8 @@ static int rmi_driver_remove(struct device *dev) - irq_domain_remove(data->irqdomain); - data->irqdomain = NULL; - -+ cancel_work_sync(&data->attn_work); -+ - rmi_f34_remove_sysfs(rmi_dev); - rmi_free_function_list(rmi_dev); - -@@ -1219,9 +1237,15 @@ static int rmi_driver_probe(struct device *dev) - } - } - -- retval = rmi_irq_init(rmi_dev); -- if (retval < 0) -- goto err_destroy_functions; -+ if (pdata->irq) { -+ retval = rmi_irq_init(rmi_dev); -+ if (retval < 0) -+ goto err_destroy_functions; -+ } -+ -+ data->enabled = true; -+ -+ INIT_WORK(&data->attn_work, attn_callback); - - if (data->f01_container->dev.driver) { - /* Driver already bound, so enable ATTN now. */ -diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 63f0af10c403..195be16dbd39 100644 ---- a/drivers/iommu/iommu.c -+++ b/drivers/iommu/iommu.c -@@ -7,6 +7,7 @@ - #define pr_fmt(fmt) "iommu: " fmt - - #include -+#include - #include - #include - #include -@@ -3039,6 +3040,27 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) - } - EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); - -+#ifdef CONFIG_ARM64 -+static int __init iommu_quirks(void) -+{ -+ const char *vendor, *name; -+ -+ vendor = dmi_get_system_info(DMI_SYS_VENDOR); -+ name = dmi_get_system_info(DMI_PRODUCT_NAME); -+ -+ if (vendor && -+ (strncmp(vendor, "GIGABYTE", 8) == 0 && name && -+ (strncmp(name, "R120", 4) == 0 || -+ strncmp(name, "R270", 4) == 0))) { -+ pr_warn("Gigabyte %s detected, force iommu passthrough mode", name); -+ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; -+ } -+ -+ return 0; -+} -+arch_initcall(iommu_quirks); -+#endif -+ - /* - * Changes the default domain of an iommu group that has *only* one device - * -diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c -index 85285ba8e817..b8109517c4ef 100644 ---- a/drivers/message/fusion/mptsas.c -+++ b/drivers/message/fusion/mptsas.c -@@ -5318,6 +5318,11 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) - ioc, MPI_SAS_OP_CLEAR_ALL_PERSISTENT); - } - -+#ifdef CONFIG_RHEL_DIFFERENCES -+ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK); -+ pr_warn("MPTSAS MODULE IS NOT SUPPORTED\n"); -+#endif -+ - error = scsi_add_host(sh, &ioc->pcidev->dev); - if (error) { - dprintk(ioc, printk(MYIOC_s_ERR_FMT -@@ -5381,6 +5386,10 @@ static void mptsas_remove(struct pci_dev *pdev) - } - - static struct pci_device_id mptsas_pci_table[] = { -+#ifdef CONFIG_RHEL_DIFFERENCES -+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068, -+ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID }, -+#else - { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064, - PCI_ANY_ID, PCI_ANY_ID }, - { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068, -@@ -5393,6 +5402,7 @@ static struct pci_device_id mptsas_pci_table[] = { - PCI_ANY_ID, PCI_ANY_ID }, - { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP, - PCI_ANY_ID, PCI_ANY_ID }, -+#endif - {0} /* Terminating entry */ - }; - MODULE_DEVICE_TABLE(pci, mptsas_pci_table); -diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c -index af0ce5611e4a..1c226920c12d 100644 ---- a/drivers/message/fusion/mptspi.c -+++ b/drivers/message/fusion/mptspi.c -@@ -1238,12 +1238,17 @@ static struct spi_function_template mptspi_transport_functions = { - */ - - static struct pci_device_id mptspi_pci_table[] = { -+#ifdef CONFIG_RHEL_DIFFERENCES -+ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, -+ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID }, -+#else - { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, - PCI_ANY_ID, PCI_ANY_ID }, - { PCI_VENDOR_ID_ATTO, MPI_MANUFACTPAGE_DEVID_53C1030, - PCI_ANY_ID, PCI_ANY_ID }, - { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1035, - PCI_ANY_ID, PCI_ANY_ID }, -+#endif - {0} /* Terminating entry */ - }; - MODULE_DEVICE_TABLE(pci, mptspi_pci_table); -@@ -1534,6 +1539,12 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) - 0, 0, 0, 0, 5); - - scsi_scan_host(sh); -+ -+#ifdef CONFIG_RHEL_DIFFERENCES -+ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK); -+ pr_warn("MPTSPI MODULE IS NOT SUPPORTED\n"); -+#endif -+ - return 0; - - out_mptspi_probe: -diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c -index dd7917cab2b1..f6b43adb2ced 100644 ---- a/drivers/net/team/team.c -+++ b/drivers/net/team/team.c -@@ -3045,6 +3045,8 @@ static int __init team_module_init(void) - if (err) - goto err_nl_init; - -+ mark_hardware_deprecated(DRV_NAME); -+ - return 0; - - err_nl_init: -diff --git a/drivers/net/wireguard/main.c b/drivers/net/wireguard/main.c -index 75dbe77b0b4b..029ff8576f8e 100644 ---- a/drivers/net/wireguard/main.c -+++ b/drivers/net/wireguard/main.c -@@ -12,6 +12,7 @@ - - #include - -+#include - #include - #include - #include -@@ -21,6 +22,11 @@ static int __init mod_init(void) - { - int ret; - -+#ifdef CONFIG_RHEL_DIFFERENCES -+ if (fips_enabled) -+ return -EOPNOTSUPP; -+#endif -+ - ret = wg_allowedips_slab_init(); - if (ret < 0) - goto err_allowedips; -@@ -48,6 +54,7 @@ static int __init mod_init(void) - pr_info("WireGuard " WIREGUARD_VERSION " loaded. See www.wireguard.com for information.\n"); - pr_info("Copyright (C) 2015-2019 Jason A. Donenfeld . All Rights Reserved.\n"); - -+ mark_tech_preview("WireGuard", THIS_MODULE); - return 0; - - err_netlink: -diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c -index dfd9dec0c1f6..de735680d279 100644 ---- a/drivers/nvme/host/core.c -+++ b/drivers/nvme/host/core.c -@@ -261,6 +261,9 @@ static void nvme_delete_ctrl_sync(struct nvme_ctrl *ctrl) - - static blk_status_t nvme_error_status(u16 status) - { -+ if (unlikely(status & NVME_SC_DNR)) -+ return BLK_STS_TARGET; -+ - switch (status & 0x7ff) { - case NVME_SC_SUCCESS: - return BLK_STS_OK; -@@ -320,6 +323,7 @@ enum nvme_disposition { - COMPLETE, - RETRY, - FAILOVER, -+ FAILUP, - }; - - static inline enum nvme_disposition nvme_decide_disposition(struct request *req) -@@ -327,15 +331,16 @@ static inline enum nvme_disposition nvme_decide_disposition(struct request *req) - if (likely(nvme_req(req)->status == 0)) - return COMPLETE; - -- if (blk_noretry_request(req) || -+ if ((req->cmd_flags & (REQ_FAILFAST_DEV | REQ_FAILFAST_DRIVER)) || - (nvme_req(req)->status & NVME_SC_DNR) || - nvme_req(req)->retries >= nvme_max_retries) - return COMPLETE; - -- if (req->cmd_flags & REQ_NVME_MPATH) { -+ if (req->cmd_flags & (REQ_NVME_MPATH | REQ_FAILFAST_TRANSPORT)) { - if (nvme_is_path_error(nvme_req(req)->status) || - blk_queue_dying(req->q)) -- return FAILOVER; -+ return (req->cmd_flags & REQ_NVME_MPATH) ? -+ FAILOVER : FAILUP; - } else { - if (blk_queue_dying(req->q)) - return COMPLETE; -@@ -357,6 +362,14 @@ static inline void nvme_end_req(struct request *req) - blk_mq_end_request(req, status); - } - -+static inline void nvme_failup_req(struct request *req) -+{ -+ nvme_update_ana(req); -+ -+ nvme_req(req)->status = NVME_SC_HOST_PATH_ERROR; -+ nvme_end_req(req); -+} -+ - void nvme_complete_rq(struct request *req) - { - trace_nvme_complete_rq(req); -@@ -375,6 +388,9 @@ void nvme_complete_rq(struct request *req) - case FAILOVER: - nvme_failover_req(req); - return; -+ case FAILUP: -+ nvme_failup_req(req); -+ return; - } - } - EXPORT_SYMBOL_GPL(nvme_complete_rq); -diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c -index 3f32c5e86bfc..3f95b8d5881f 100644 ---- a/drivers/nvme/host/multipath.c -+++ b/drivers/nvme/host/multipath.c -@@ -65,14 +65,10 @@ bool nvme_mpath_set_disk_name(struct nvme_ns *ns, char *disk_name, int *flags) - return true; - } - --void nvme_failover_req(struct request *req) -+void nvme_update_ana(struct request *req) - { - struct nvme_ns *ns = req->q->queuedata; - u16 status = nvme_req(req)->status & 0x7ff; -- unsigned long flags; -- struct bio *bio; -- -- nvme_mpath_clear_current_path(ns); - - /* - * If we got back an ANA error, we know the controller is alive but not -@@ -83,6 +79,16 @@ void nvme_failover_req(struct request *req) - set_bit(NVME_NS_ANA_PENDING, &ns->flags); - queue_work(nvme_wq, &ns->ctrl->ana_work); - } -+} -+ -+void nvme_failover_req(struct request *req) -+{ -+ struct nvme_ns *ns = req->q->queuedata; -+ unsigned long flags; -+ struct bio *bio; -+ -+ nvme_mpath_clear_current_path(ns); -+ nvme_update_ana(req); - - spin_lock_irqsave(&ns->head->requeue_lock, flags); - for (bio = req->bio; bio; bio = bio->bi_next) -@@ -796,8 +802,7 @@ int nvme_mpath_init_identify(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) - int error = 0; - - /* check if multipath is enabled and we have the capability */ -- if (!multipath || !ctrl->subsys || -- !(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)) -+ if (!ctrl->subsys || !(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)) - return 0; - - if (!ctrl->max_namespaces || -diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h -index 5cd1fa3b8464..2667c617ae92 100644 ---- a/drivers/nvme/host/nvme.h -+++ b/drivers/nvme/host/nvme.h -@@ -706,6 +706,7 @@ void nvme_mpath_wait_freeze(struct nvme_subsystem *subsys); - void nvme_mpath_start_freeze(struct nvme_subsystem *subsys); - bool nvme_mpath_set_disk_name(struct nvme_ns *ns, char *disk_name, int *flags); - void nvme_failover_req(struct request *req); -+void nvme_update_ana(struct request *req); - void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl); - int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl,struct nvme_ns_head *head); - void nvme_mpath_add_disk(struct nvme_ns *ns, struct nvme_id_ns *id); -@@ -743,6 +744,9 @@ static inline bool nvme_mpath_set_disk_name(struct nvme_ns *ns, char *disk_name, - static inline void nvme_failover_req(struct request *req) - { - } -+static inline void nvme_update_ana(struct request *req) -+{ -+} - static inline void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl) - { - } -diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c -index 3a72352aa5cf..47b11f3c7fce 100644 ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include "pci.h" - #include "pcie/portdrv.h" -@@ -281,6 +282,34 @@ static struct attribute *pci_drv_attrs[] = { - }; - ATTRIBUTE_GROUPS(pci_drv); - -+/** -+ * pci_hw_vendor_status - Tell if a PCI device is supported by the HW vendor -+ * @ids: array of PCI device id structures to search in -+ * @dev: the PCI device structure to match against -+ * -+ * Used by a driver to check whether this device is in its list of unsupported -+ * devices. Returns the matching pci_device_id structure or %NULL if there is -+ * no match. -+ * -+ * Reserved for Internal Red Hat use only. -+ */ -+const struct pci_device_id *pci_hw_vendor_status( -+ const struct pci_device_id *ids, -+ struct pci_dev *dev) -+{ -+ char devinfo[64]; -+ const struct pci_device_id *ret = pci_match_id(ids, dev); -+ -+ if (ret) { -+ snprintf(devinfo, sizeof(devinfo), "%s %s", -+ dev_driver_string(&dev->dev), dev_name(&dev->dev)); -+ mark_hardware_deprecated(devinfo); -+ } -+ -+ return ret; -+} -+EXPORT_SYMBOL(pci_hw_vendor_status); -+ - struct drv_dev_and_id { - struct pci_driver *drv; - struct pci_dev *dev; -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index ab3de1551b50..7bc8ebb58d35 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -4231,6 +4231,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, - quirk_bridge_cavm_thrx2_pcie_root); - -+/* -+ * PCI BAR 5 is not setup correctly for the on-board AHCI controller -+ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by -+ * using BAR 4's resources which are populated correctly and NOT -+ * actually used by the AHCI controller. -+ */ -+static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) -+{ -+ struct resource *r = &dev->resource[4]; -+ -+ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) -+ return; -+ -+ /* Set BAR5 resource to BAR4 */ -+ dev->resource[5] = *r; -+ -+ /* Update BAR5 in pci config space */ -+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); -+ -+ /* Clear BAR4's resource */ -+ memset(r, 0, sizeof(*r)); -+} -+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); -+ - /* - * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) - * class code. Fix it. -diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c -index 3168915adaa7..71b48e29b708 100644 ---- a/drivers/scsi/aacraid/linit.c -+++ b/drivers/scsi/aacraid/linit.c -@@ -78,6 +78,7 @@ char aac_driver_version[] = AAC_DRIVER_FULL_VERSION; - * Note: The last field is used to index into aac_drivers below. - */ - static const struct pci_device_id aac_pci_tbl[] = { -+#ifndef CONFIG_RHEL_DIFFERENCES - { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */ - { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */ - { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */ -@@ -145,6 +146,7 @@ static const struct pci_device_id aac_pci_tbl[] = { - { 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */ - { 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */ - { 0x9005, 0x0288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 61 }, /* Adaptec NEMER/ARK Catch All */ -+#endif - { 0x9005, 0x028b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 62 }, /* Adaptec PMC Series 6 (Tupelo) */ - { 0x9005, 0x028c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 63 }, /* Adaptec PMC Series 7 (Denali) */ - { 0x9005, 0x028d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 64 }, /* Adaptec PMC Series 8 */ -diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c -index e70f69f791db..dc54f0321fab 100644 ---- a/drivers/scsi/be2iscsi/be_main.c -+++ b/drivers/scsi/be2iscsi/be_main.c -@@ -369,11 +369,13 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc) - - /*------------------- PCI Driver operations and data ----------------- */ - static const struct pci_device_id beiscsi_pci_id_table[] = { -+#ifndef CONFIG_RHEL_DIFFERENCES - { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) }, - { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2) }, - { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) }, - { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) }, - { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID3) }, -+#endif - { PCI_DEVICE(ELX_VENDOR_ID, OC_SKH_ID1) }, - { 0 } - }; -diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c -index f135a10f582b..99b17b05cab1 100644 ---- a/drivers/scsi/hpsa.c -+++ b/drivers/scsi/hpsa.c -@@ -82,7 +82,9 @@ MODULE_DESCRIPTION("Driver for HP Smart Array Controller version " \ - HPSA_DRIVER_VERSION); - MODULE_VERSION(HPSA_DRIVER_VERSION); - MODULE_LICENSE("GPL"); -+#ifndef CONFIG_RHEL_DIFFERENCES - MODULE_ALIAS("cciss"); -+#endif - - static int hpsa_simple_mode; - module_param(hpsa_simple_mode, int, S_IRUGO|S_IWUSR); -@@ -144,10 +146,12 @@ static const struct pci_device_id hpsa_pci_device_id[] = { - {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x007D}, - {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x0088}, - {PCI_VENDOR_ID_HP, 0x333f, 0x103c, 0x333f}, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, - {PCI_VENDOR_ID_COMPAQ, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, -+#endif - {0,} - }; - -diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h -index d48414e295a0..ba0e384412c9 100644 ---- a/drivers/scsi/lpfc/lpfc_ids.h -+++ b/drivers/scsi/lpfc/lpfc_ids.h -@@ -24,6 +24,7 @@ - #include - - const struct pci_device_id lpfc_id_table[] = { -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_VIPER, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FIREFLY, -@@ -54,14 +55,19 @@ const struct pci_device_id lpfc_id_table[] = { - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, - PCI_ANY_ID, PCI_ANY_ID, }, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, - PCI_ANY_ID, PCI_ANY_ID, }, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HORNET, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP, -@@ -70,6 +76,7 @@ const struct pci_device_id lpfc_id_table[] = { - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, - PCI_ANY_ID, PCI_ANY_ID, }, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_TFLY, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP101, -@@ -80,6 +87,7 @@ const struct pci_device_id lpfc_id_table[] = { - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID, -@@ -92,6 +100,7 @@ const struct pci_device_id lpfc_id_table[] = { - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S, - PCI_ANY_ID, PCI_ANY_ID, }, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_VF, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_PF, -@@ -102,18 +111,23 @@ const struct pci_device_id lpfc_id_table[] = { - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_SERVERENGINE, PCI_DEVICE_ID_TOMCAT, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FALCON, - PCI_ANY_ID, PCI_ANY_ID, }, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BALIUS, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC, - PCI_ANY_ID, PCI_ANY_ID, }, -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC_VF, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE_VF, - PCI_ANY_ID, PCI_ANY_ID, }, -+#endif - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G6_FC, - PCI_ANY_ID, PCI_ANY_ID, }, - {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G7_FC, -diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c -index ec10b2497310..5066d52a1fdb 100644 ---- a/drivers/scsi/megaraid/megaraid_sas_base.c -+++ b/drivers/scsi/megaraid/megaraid_sas_base.c -@@ -149,6 +149,7 @@ megasas_set_ld_removed_by_fw(struct megasas_instance *instance); - */ - static struct pci_device_id megasas_pci_table[] = { - -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1064R)}, - /* xscale IOP */ - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078R)}, -@@ -157,16 +158,19 @@ static struct pci_device_id megasas_pci_table[] = { - /* ppc IOP */ - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078GEN2)}, - /* gen2*/ -+#endif - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0079GEN2)}, - /* gen2*/ - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0073SKINNY)}, - /* skinny*/ - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0071SKINNY)}, - /* skinny*/ -+#ifndef CONFIG_RHEL_DIFFERENCES - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_VERDE_ZCR)}, - /* xscale IOP, vega */ - {PCI_DEVICE(PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_PERC5)}, - /* xscale IOP */ -+#endif - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_FUSION)}, - /* Fusion */ - {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_PLASMA)}, -diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c -index 8e64a6f14542..f8a28b42e547 100644 ---- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c -+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c -@@ -12480,6 +12480,7 @@ bool scsih_ncq_prio_supp(struct scsi_device *sdev) - * The pci device ids are defined in mpi/mpi2_cnfg.h. - */ - static const struct pci_device_id mpt3sas_pci_table[] = { -+#ifndef CONFIG_RHEL_DIFFERENCES - /* Spitfire ~ 2004 */ - { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2004, - PCI_ANY_ID, PCI_ANY_ID }, -@@ -12498,6 +12499,7 @@ static const struct pci_device_id mpt3sas_pci_table[] = { - PCI_ANY_ID, PCI_ANY_ID }, - { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2116_2, - PCI_ANY_ID, PCI_ANY_ID }, -+#endif - /* Thunderbolt ~ 2208 */ - { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_1, - PCI_ANY_ID, PCI_ANY_ID }, -@@ -12522,9 +12524,11 @@ static const struct pci_device_id mpt3sas_pci_table[] = { - PCI_ANY_ID, PCI_ANY_ID }, - { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SWITCH_MPI_EP_1, - PCI_ANY_ID, PCI_ANY_ID }, -+#ifndef CONFIG_RHEL_DIFFERENCES - /* SSS6200 */ - { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SSS6200, - PCI_ANY_ID, PCI_ANY_ID }, -+#endif - /* Fury ~ 3004 and 3008 */ - { MPI2_MFGPAGE_VENDORID_LSI, MPI25_MFGPAGE_DEVID_SAS3004, - PCI_ANY_ID, PCI_ANY_ID }, -diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c -index cedd558f65eb..d2534cd5559f 100644 ---- a/drivers/scsi/qla2xxx/qla_os.c -+++ b/drivers/scsi/qla2xxx/qla_os.c -@@ -7811,6 +7811,7 @@ static const struct pci_error_handlers qla2xxx_err_handler = { - }; - - static struct pci_device_id qla2xxx_pci_tbl[] = { -+#ifndef CONFIG_RHEL_DIFFERENCES - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2100) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2200) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2300) }, -@@ -7823,13 +7824,18 @@ static struct pci_device_id qla2xxx_pci_tbl[] = { - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8432) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5422) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5432) }, -+#endif - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2532) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2031) }, -+#ifndef CONFIG_RHEL_DIFFERENCES - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8001) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) }, -+#endif - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) }, -+#ifndef CONFIG_RHEL_DIFFERENCES - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8044) }, -+#endif - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2071) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2271) }, - { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2261) }, -diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c -index 6ee7ea4c27e0..31814931620a 100644 ---- a/drivers/scsi/qla4xxx/ql4_os.c -+++ b/drivers/scsi/qla4xxx/ql4_os.c -@@ -9855,6 +9855,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = { - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - }, -+#ifndef CONFIG_RHEL_DIFFERENCES - { - .vendor = PCI_VENDOR_ID_QLOGIC, - .device = PCI_DEVICE_ID_QLOGIC_ISP8022, -@@ -9873,6 +9874,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = { - .subvendor = PCI_ANY_ID, - .subdevice = PCI_ANY_ID, - }, -+#endif - {0, 0}, - }; - MODULE_DEVICE_TABLE(pci, qla4xxx_pci_tbl); -diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 86658a81d284..5647f4756e97 100644 ---- a/drivers/usb/core/hub.c -+++ b/drivers/usb/core/hub.c -@@ -5657,6 +5657,13 @@ static void hub_event(struct work_struct *work) - (u16) hub->change_bits[0], - (u16) hub->event_bits[0]); - -+ /* Don't disconnect USB-SATA on TrimSlice */ -+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { -+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) && -+ (hub->event_bits[0] == 0x2)) -+ hub->event_bits[0] = 0; -+ } -+ - /* Lock the device, then check to see if we were - * disconnected while waiting for the lock to succeed. */ - usb_lock_device(hdev); -diff --git a/fs/ext4/super.c b/fs/ext4/super.c -index dfa09a277b56..2bde0a2d1683 100644 ---- a/fs/ext4/super.c -+++ b/fs/ext4/super.c -@@ -4439,6 +4439,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) - set_bit(EXT4_FLAGS_BDEV_IS_DAX, &sbi->s_ext4_flags); - - if (sbi->s_mount_opt & EXT4_MOUNT_DAX_ALWAYS) { -+ static bool printed = false; - if (ext4_has_feature_inline_data(sb)) { - ext4_msg(sb, KERN_ERR, "Cannot use DAX on a filesystem" - " that may contain inline data"); -@@ -4449,6 +4450,10 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) - "DAX unsupported by block device."); - goto failed_mount; - } -+ if (!printed) { -+ mark_tech_preview("ext4 direct access (dax)", NULL); -+ printed = true; -+ } - } - - if (ext4_has_feature_encrypt(sb) && es->s_encryption_level) { -diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c -index 2c9e26a44546..9820fa8c7c30 100644 ---- a/fs/xfs/xfs_super.c -+++ b/fs/xfs/xfs_super.c -@@ -1539,12 +1539,9 @@ xfs_fs_fill_super( - if (XFS_SB_VERSION_NUM(&mp->m_sb) == XFS_SB_VERSION_5) - sb->s_flags |= SB_I_VERSION; - -- if (xfs_sb_version_hasbigtime(&mp->m_sb)) -- xfs_warn(mp, -- "EXPERIMENTAL big timestamp feature in use. Use at your own risk!"); -- - if (mp->m_flags & XFS_MOUNT_DAX_ALWAYS) { - bool rtdev_is_dax = false, datadev_is_dax; -+ static bool printed = false; - - xfs_warn(mp, - "DAX enabled. Warning: EXPERIMENTAL, use at your own risk"); -@@ -1565,6 +1562,10 @@ xfs_fs_fill_super( - error = -EINVAL; - goto out_filestream_unmount; - } -+ if (!printed) { -+ mark_tech_preview("xfs direct access (dax)", NULL); -+ printed = true; -+ } - } - - if (mp->m_flags & XFS_MOUNT_DISCARD) { -@@ -1598,10 +1599,6 @@ xfs_fs_fill_super( - goto out_filestream_unmount; - } - -- if (xfs_sb_version_hasinobtcounts(&mp->m_sb)) -- xfs_warn(mp, -- "EXPERIMENTAL inode btree counters feature in use. Use at your own risk!"); -- - error = xfs_mountfs(mp); - if (error) - goto out_filestream_unmount; -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 6b5d36babfcc..fd4a5d66a9d0 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -43,6 +43,8 @@ - #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) - #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) - -+#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) -+ - typedef unsigned long efi_status_t; - typedef u8 efi_bool_t; - typedef u16 efi_char16_t; /* UNICODE character */ -@@ -782,6 +784,14 @@ extern int __init efi_setup_pcdp_console(char *); - #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ - #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ - #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ -+#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ -+ -+enum efi_secureboot_mode { -+ efi_secureboot_mode_unset, -+ efi_secureboot_mode_unknown, -+ efi_secureboot_mode_disabled, -+ efi_secureboot_mode_enabled, -+}; - - #ifdef CONFIG_EFI - /* -@@ -793,6 +803,8 @@ static inline bool efi_enabled(int feature) - } - extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); - -+extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); -+ - bool __pure __efi_soft_reserve_enabled(void); - - static inline bool __pure efi_soft_reserve_enabled(void) -@@ -813,6 +825,8 @@ static inline bool efi_enabled(int feature) - static inline void - efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} - -+static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} -+ - static inline bool efi_soft_reserve_enabled(void) - { - return false; -@@ -825,6 +839,7 @@ static inline bool efi_rt_services_supported(unsigned int mask) - #endif - - extern int efi_status_to_err(efi_status_t status); -+extern const char *efi_status_to_str(efi_status_t status); - - /* - * Variable Attributes -@@ -1077,13 +1092,6 @@ static inline bool efi_runtime_disabled(void) { return true; } - extern void efi_call_virt_check_flags(unsigned long flags, const char *call); - extern unsigned long efi_call_virt_save_flags(void); - --enum efi_secureboot_mode { -- efi_secureboot_mode_unset, -- efi_secureboot_mode_unknown, -- efi_secureboot_mode_disabled, -- efi_secureboot_mode_enabled, --}; -- - static inline - enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) - { -diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index 1b2f0a7e00d6..bfbf97662e1e 100644 ---- a/include/linux/kernel.h -+++ b/include/linux/kernel.h -@@ -530,4 +530,19 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } - /* OTHER_WRITABLE? Generally considered a bad idea. */ \ - BUILD_BUG_ON_ZERO((perms) & 2) + \ - (perms)) -+ -+struct module; -+ -+#ifdef CONFIG_RHEL_DIFFERENCES -+void mark_hardware_unsupported(const char *msg); -+void mark_hardware_deprecated(const char *msg); -+void mark_tech_preview(const char *msg, struct module *mod); -+void mark_driver_unsupported(const char *name); -+#else -+static inline void mark_hardware_unsupported(const char *msg) { } -+static inline void mark_hardware_deprecated(const char *msg) { } -+static inline void mark_tech_preview(const char *msg, struct module *mod) { } -+static inline void mark_driver_unsupported(const char *name) { } -+#endif -+ - #endif -diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h -index 2adeea44c0d5..517013ece679 100644 ---- a/include/linux/lsm_hook_defs.h -+++ b/include/linux/lsm_hook_defs.h -@@ -394,6 +394,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) - #endif /* CONFIG_BPF_SYSCALL */ - - LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) -+LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) -+ - - #ifdef CONFIG_PERF_EVENTS - LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) -diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h -index 5c4c5c0602cb..753b53038690 100644 ---- a/include/linux/lsm_hooks.h -+++ b/include/linux/lsm_hooks.h -@@ -1545,6 +1545,12 @@ - * - * @what: kernel feature being accessed - * -+ * @lock_kernel_down -+ * Put the kernel into lock-down mode. -+ * -+ * @where: Where the lock-down is originating from (e.g. command line option) -+ * @level: The lock-down level (can only increase) -+ * - * Security hooks for perf events - * - * @perf_event_open: -diff --git a/include/linux/module.h b/include/linux/module.h -index 8a298d820dbc..b71215412e59 100644 ---- a/include/linux/module.h -+++ b/include/linux/module.h -@@ -380,6 +380,7 @@ struct module { - struct module_attribute *modinfo_attrs; - const char *version; - const char *srcversion; -+ const char *rhelversion; - struct kobject *holders_dir; - - /* Exported symbols */ -diff --git a/include/linux/panic.h b/include/linux/panic.h -index f5844908a089..901d51012738 100644 ---- a/include/linux/panic.h -+++ b/include/linux/panic.h -@@ -74,7 +74,24 @@ static inline void set_arch_panic_timeout(int timeout, int arch_default_timeout) - #define TAINT_LIVEPATCH 15 - #define TAINT_AUX 16 - #define TAINT_RANDSTRUCT 17 --#define TAINT_FLAGS_COUNT 18 -+/* Start of Red Hat-specific taint flags */ -+#define TAINT_18 18 -+#define TAINT_19 19 -+#define TAINT_20 20 -+#define TAINT_21 21 -+#define TAINT_22 22 -+#define TAINT_23 23 -+#define TAINT_24 24 -+#define TAINT_25 25 -+#define TAINT_26 26 -+#define TAINT_SUPPORT_REMOVED 27 -+/* Bits 28 - 31 are reserved for Red Hat use only */ -+#define TAINT_RESERVED28 28 -+#define TAINT_RESERVED29 29 -+#define TAINT_RESERVED30 30 -+#define TAINT_UNPRIVILEGED_BPF 31 -+/* End of Red Hat-specific taint flags */ -+#define TAINT_FLAGS_COUNT 32 - #define TAINT_FLAGS_MAX ((1UL << TAINT_FLAGS_COUNT) - 1) - - struct taint_flag { -diff --git a/include/linux/pci.h b/include/linux/pci.h -index 540b377ca8f6..eb21f6dfb846 100644 ---- a/include/linux/pci.h -+++ b/include/linux/pci.h -@@ -1433,6 +1433,10 @@ int pci_add_dynid(struct pci_driver *drv, - unsigned long driver_data); - const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, - struct pci_dev *dev); -+/* Reserved for Internal Red Hat use only */ -+const struct pci_device_id *pci_hw_vendor_status( -+ const struct pci_device_id *ids, -+ struct pci_dev *dev); - int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, - int pass); - -diff --git a/include/linux/random.h b/include/linux/random.h -index f45b8be3e3c4..7ccdec68b789 100644 ---- a/include/linux/random.h -+++ b/include/linux/random.h -@@ -14,6 +14,11 @@ - - #include - -+struct random_extrng { -+ ssize_t (*extrng_read)(void __user *buf, size_t buflen); -+ struct module *owner; -+}; -+ - struct random_ready_callback { - struct list_head list; - void (*func)(struct random_ready_callback *rdy); -@@ -44,6 +49,8 @@ extern bool rng_is_initialized(void); - extern int add_random_ready_callback(struct random_ready_callback *rdy); - extern void del_random_ready_callback(struct random_ready_callback *rdy); - extern int __must_check get_random_bytes_arch(void *buf, int nbytes); -+void random_register_extrng(const struct random_extrng *rng); -+void random_unregister_extrng(void); - - #ifndef MODULE - extern const struct file_operations random_fops, urandom_fops; -diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h -new file mode 100644 -index 000000000000..ea9c136bf884 ---- /dev/null -+++ b/include/linux/rh_kabi.h -@@ -0,0 +1,297 @@ -+/* -+ * rh_kabi.h - Red Hat kABI abstraction header -+ * -+ * Copyright (c) 2014 Don Zickus -+ * Copyright (c) 2015-2018 Jiri Benc -+ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa -+ * Copyright (c) 2016-2018 Prarit Bhargava -+ * Copyright (c) 2017 Paolo Abeni, Larry Woodman -+ * -+ * This file is released under the GPLv2. -+ * See the file COPYING for more details. -+ * -+ * These kabi macros hide the changes from the kabi checker and from the -+ * process that computes the exported symbols' checksums. -+ * They have 2 variants: one (defined under __GENKSYMS__) used when -+ * generating the checksums, and the other used when building the kernel's -+ * binaries. -+ * -+ * The use of these macros does not guarantee that the usage and modification -+ * of code is correct. As with all Red Hat only changes, an engineer must -+ * explain why the use of the macro is valid in the patch containing the -+ * changes. -+ * -+ */ -+ -+#ifndef _LINUX_RH_KABI_H -+#define _LINUX_RH_KABI_H -+ -+#include -+#include -+ -+/* -+ * RH_KABI_CONST -+ * Adds a new const modifier to a function parameter preserving the old -+ * checksum. -+ * -+ * RH_KABI_DEPRECATE -+ * Mark the element as deprecated and make it unusable by modules while -+ * preserving kABI checksums. -+ * -+ * RH_KABI_DEPRECATE_FN -+ * Mark the function pointer as deprecated and make it unusable by modules -+ * while preserving kABI checksums. -+ * -+ * RH_KABI_EXTEND -+ * Simple macro for adding a new element to a struct. -+ * -+ * RH_KABI_EXTEND_WITH_SIZE -+ * Adds a new element (usually a struct) to a struct and reserves extra -+ * space for the new element. The provided 'size' is the total space to -+ * be added in longs (i.e. it's 8 * 'size' bytes), including the size of -+ * the added element. It is automatically checked that the new element -+ * does not overflow the reserved space, now nor in the future. However, -+ * no attempt is done to check the content of the added element (struct) -+ * for kABI conformance - kABI checking inside the added element is -+ * effectively switched off. -+ * For any struct being added by RH_KABI_EXTEND_WITH_SIZE, it is -+ * recommended its content to be documented as not covered by kABI -+ * guarantee. -+ * -+ * RH_KABI_FILL_HOLE -+ * Simple macro for filling a hole in a struct. -+ * -+ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify. -+ * -+ * RH_KABI_RENAME -+ * Simple macro for renaming an element without changing its type. This -+ * macro can be used in bitfields, for example. -+ * -+ * NOTE: does not include the final ';' -+ * -+ * RH_KABI_REPLACE -+ * Simple replacement of _orig with a union of _orig and _new. -+ * -+ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new' -+ * element while preserving size alignment with the '_orig' element. -+ * -+ * The #ifdef __GENKSYMS__ preserves the kABI agreement, while the anonymous -+ * union structure preserves the size alignment (assuming the '_new' element -+ * is not bigger than the '_orig' element). -+ * -+ * RH_KABI_REPLACE_UNSAFE -+ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs. -+ * -+ * RH_KABI_FORCE_CHANGE -+ * Force change of the symbol checksum. The argument of the macro is a -+ * version for cases we need to do this more than once. -+ * -+ * This macro does the opposite: it changes the symbol checksum without -+ * actually changing anything about the exported symbol. It is useful for -+ * symbols that are not whitelisted, we're changing them in an -+ * incompatible way and want to prevent 3rd party modules to silently -+ * corrupt memory. Instead, by changing the symbol checksum, such modules -+ * won't be loaded by the kernel. This macro should only be used as a -+ * last resort when all other KABI workarounds have failed. -+ * -+ * RH_KABI_EXCLUDE -+ * !!! WARNING: DANGEROUS, DO NOT USE unless you are aware of all the !!! -+ * !!! implications. This should be used ONLY EXCEPTIONALLY and only !!! -+ * !!! under specific circumstances. Very likely, this macro does not !!! -+ * !!! do what you expect it to do. Note that any usage of this macro !!! -+ * !!! MUST be paired with a RH_KABI_FORCE_CHANGE annotation of !!! -+ * !!! a suitable symbol (or an equivalent safeguard) and the commit !!! -+ * !!! log MUST explain why the chosen solution is appropriate. !!! -+ * -+ * Exclude the element from checksum generation. Any such element is -+ * considered not to be part of the kABI whitelist and may be changed at -+ * will. Note however that it's the responsibility of the developer -+ * changing the element to ensure 3rd party drivers using this element -+ * won't panic, for example by not allowing them to be loaded. That can -+ * be achieved by changing another, non-whitelisted symbol they use, -+ * either by nature of the change or by using RH_KABI_FORCE_CHANGE. -+ * -+ * Also note that any change to the element must preserve its size. Change -+ * of the size is not allowed and would constitute a silent kABI breakage. -+ * Beware that the RH_KABI_EXCLUDE macro does not do any size checks. -+ * -+ * NOTE -+ * Don't use ';' after these macros as it messes up the kABI checker by -+ * changing what the resulting token string looks like. Instead let this -+ * macro add the ';' so it can be properly hidden from the kABI checker -+ * (mainly for RH_KABI_EXTEND, but applied to all macros for uniformity). -+ * -+ */ -+#ifdef __GENKSYMS__ -+ -+# define RH_KABI_CONST -+# define RH_KABI_EXTEND(_new) -+# define RH_KABI_FILL_HOLE(_new) -+# define RH_KABI_FORCE_CHANGE(ver) __attribute__((rh_kabi_change ## ver)) -+# define RH_KABI_RENAME(_orig, _new) _orig -+ -+# define _RH_KABI_DEPRECATE(_type, _orig) _type _orig -+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args) -+# define _RH_KABI_REPLACE(_orig, _new) _orig -+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig -+# define _RH_KABI_EXCLUDE(_elem) -+ -+#else -+ -+# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging." -+ -+# define RH_KABI_CONST const -+# define RH_KABI_EXTEND(_new) _new; -+# define RH_KABI_FILL_HOLE(_new) _new; -+# define RH_KABI_FORCE_CHANGE(ver) -+# define RH_KABI_RENAME(_orig, _new) _new -+ -+ -+#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS) -+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \ -+ union { \ -+ _Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}), \ -+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_new) " is larger than " __stringify(_orig) RH_KABI_ALIGN_WARNING); \ -+ _Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \ -+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \ -+ } -+# define __RH_KABI_CHECK_SIZE(_item, _size) \ -+ _Static_assert(sizeof(struct{_item;}) <= _size, \ -+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_item) " is larger than the reserved size (" __stringify(_size) " bytes)" RH_KABI_ALIGN_WARNING) -+#else -+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) -+# define __RH_KABI_CHECK_SIZE(_item, _size) -+#endif -+ -+#define RH_KABI_UNIQUE_ID __PASTE(rh_kabi_hidden_, __LINE__) -+ -+# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig -+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ -+ _type (* rh_reserved_##_orig)(_args) -+# define _RH_KABI_REPLACE(_orig, _new) \ -+ union { \ -+ _new; \ -+ struct { \ -+ _orig; \ -+ } RH_KABI_UNIQUE_ID; \ -+ __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \ -+ } -+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new -+ -+# define _RH_KABI_EXCLUDE(_elem) _elem -+ -+#endif /* __GENKSYMS__ */ -+ -+/* semicolon added wrappers for the RH_KABI_REPLACE macros */ -+# define RH_KABI_DEPRECATE(_type, _orig) _RH_KABI_DEPRECATE(_type, _orig); -+# define RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ -+ _RH_KABI_DEPRECATE_FN(_type, _orig, _args); -+# define RH_KABI_REPLACE(_orig, _new) _RH_KABI_REPLACE(_orig, _new); -+# define RH_KABI_REPLACE_UNSAFE(_orig, _new) _RH_KABI_REPLACE_UNSAFE(_orig, _new); -+/* -+ * Macro for breaking up a random element into two smaller chunks using an -+ * anonymous struct inside an anonymous union. -+ */ -+# define RH_KABI_REPLACE2(orig, _new1, _new2) RH_KABI_REPLACE(orig, struct{ _new1; _new2;}) -+ -+# define RH_KABI_RESERVE(n) _RH_KABI_RESERVE(n); -+/* -+ * Simple wrappers to replace standard Red Hat reserved elements. -+ */ -+# define RH_KABI_USE(n, _new) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), _new) -+/* -+ * Macros for breaking up a reserved element into two smaller chunks using -+ * an anonymous struct inside an anonymous union. -+ */ -+# define RH_KABI_USE2(n, _new1, _new2) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), struct{ _new1; _new2; }) -+ -+/* -+ * We tried to standardize on Red Hat reserved names. These wrappers -+ * leverage those common names making it easier to read and find in the -+ * code. -+ */ -+# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n -+ -+#define RH_KABI_EXCLUDE(_elem) _RH_KABI_EXCLUDE(_elem); -+ -+/* -+ * Extending a struct while reserving extra space. -+ */ -+#define RH_KABI_EXTEND_WITH_SIZE(_new, _size) \ -+ RH_KABI_EXTEND(union { \ -+ _new; \ -+ unsigned long RH_KABI_UNIQUE_ID[_size]; \ -+ __RH_KABI_CHECK_SIZE(_new, 8 * (_size)); \ -+ }) -+ -+/* -+ * RHEL macros to extend structs. -+ * -+ * base struct: The struct being extended. For example, pci_dev. -+ * extended struct: The Red Hat struct being added to the base struct. -+ * For example, pci_dev_rh. -+ * -+ * These macros should be used to extend structs before KABI freeze. -+ * They can be used post-KABI freeze in the limited case of the base -+ * struct not being embedded in another struct. -+ * -+ * Extended structs cannot be shrunk in size as changes will break -+ * the size & offset comparison. -+ * -+ * Extended struct elements are not guaranteed for access by modules unless -+ * explicitly commented as such in the declaration of the extended struct or -+ * the element in the extended struct. -+ */ -+ -+/* -+ * RH_KABI_SIZE_AND_EXTEND|_PTR() extends a struct by embedding or adding -+ * a pointer in a base struct. The name of the new struct is the name -+ * of the base struct appended with _rh. -+ */ -+#define _RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \ -+ size_t _struct##_size_rh; \ -+ RH_KABI_EXCLUDE(struct _struct##_rh *_struct##_rh) -+#define RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \ -+ _RH_KABI_SIZE_AND_EXTEND_PTR(_struct) -+ -+#define _RH_KABI_SIZE_AND_EXTEND(_struct) \ -+ size_t _struct##_size_rh; \ -+ RH_KABI_EXCLUDE(struct _struct##_rh _struct##_rh) -+#define RH_KABI_SIZE_AND_EXTEND(_struct) \ -+ _RH_KABI_SIZE_AND_EXTEND(_struct) -+ -+/* -+ * RH_KABI_SET_SIZE calculates and sets the size of the extended struct and -+ * stores it in the size_rh field for structs that are dynamically allocated. -+ * This macro MUST be called when expanding a base struct with -+ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the allocation site -+ * regardless of being allocated in the kernel or a module. -+ * Note: since this macro is intended to be invoked outside of a struct, -+ * a semicolon is necessary at the end of the line where it is invoked. -+ */ -+#define RH_KABI_SET_SIZE(_name, _struct) ({ \ -+ _name->_struct##_size_rh = sizeof(struct _struct##_rh); \ -+}) -+ -+/* -+ * RH_KABI_INIT_SIZE calculates and sets the size of the extended struct and -+ * stores it in the size_rh field for structs that are statically allocated. -+ * This macro MUST be called when expanding a base struct with -+ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the declaration site -+ * regardless of being allocated in the kernel or a module. -+ */ -+#define RH_KABI_INIT_SIZE(_struct) \ -+ ._struct##_size_rh = sizeof(struct _struct##_rh), -+ -+/* -+ * RH_KABI_CHECK_EXT verifies allocated memory exists. This MUST be called to -+ * verify that memory in the _rh struct is valid, and can be called -+ * regardless if RH_KABI_SIZE_AND_EXTEND or RH_KABI_SIZE_AND_EXTEND_PTR is -+ * used. -+ */ -+#define RH_KABI_CHECK_EXT(_ptr, _struct, _field) ({ \ -+ size_t __off = offsetof(struct _struct##_rh, _field); \ -+ _ptr->_struct##_size_rh > __off ? true : false; \ -+}) -+ -+#endif /* _LINUX_RH_KABI_H */ -diff --git a/include/linux/rmi.h b/include/linux/rmi.h -index ab7eea01ab42..fff7c5f737fc 100644 ---- a/include/linux/rmi.h -+++ b/include/linux/rmi.h -@@ -364,6 +364,7 @@ struct rmi_driver_data { - - struct rmi4_attn_data attn_data; - DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); -+ struct work_struct attn_work; - }; - - int rmi_register_transport_device(struct rmi_transport_dev *xport); -diff --git a/include/linux/security.h b/include/linux/security.h -index 5b7288521300..f966f591c91e 100644 ---- a/include/linux/security.h -+++ b/include/linux/security.h -@@ -472,6 +472,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); - int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); - int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); - int security_locked_down(enum lockdown_reason what); -+int security_lock_kernel_down(const char *where, enum lockdown_reason level); - #else /* CONFIG_SECURITY */ - - static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) -@@ -1348,6 +1349,10 @@ static inline int security_locked_down(enum lockdown_reason what) - { - return 0; - } -+static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) -+{ -+ return 0; -+} - #endif /* CONFIG_SECURITY */ - - #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) -diff --git a/init/Kconfig b/init/Kconfig -index 55f9f7738ebb..564553afb251 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -1625,7 +1625,7 @@ config AIO - this option saves about 7k. - - config IO_URING -- bool "Enable IO uring support" if EXPERT -+ bool "Enable IO uring support" - select IO_WQ - default y - help -diff --git a/kernel/Makefile b/kernel/Makefile -index 4df609be42d0..4ef0c0f6a8f4 100644 ---- a/kernel/Makefile -+++ b/kernel/Makefile -@@ -12,6 +12,7 @@ obj-y = fork.o exec_domain.o panic.o \ - notifier.o ksysfs.o cred.o reboot.o \ - async.o range.o smpboot.o ucount.o regset.o - -+obj-$(CONFIG_RHEL_DIFFERENCES) += rh_taint.o - obj-$(CONFIG_USERMODE_DRIVER) += usermode_driver.o - obj-$(CONFIG_MODULES) += kmod.o - obj-$(CONFIG_MULTIUSER) += groups.o -diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c -index e343f158e556..b2c979f9b80e 100644 ---- a/kernel/bpf/syscall.c -+++ b/kernel/bpf/syscall.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -50,6 +51,23 @@ static DEFINE_SPINLOCK(map_idr_lock); - static DEFINE_IDR(link_idr); - static DEFINE_SPINLOCK(link_idr_lock); - -+static int __init unprivileged_bpf_setup(char *str) -+{ -+ unsigned long disabled; -+ if (!kstrtoul(str, 0, &disabled)) -+ sysctl_unprivileged_bpf_disabled = !!disabled; -+ -+ if (!sysctl_unprivileged_bpf_disabled) { -+ pr_warn("Unprivileged BPF has been enabled " -+ "(unprivileged_bpf_disabled=0 has been supplied " -+ "in boot parameters), tainting the kernel"); -+ add_taint(TAINT_UNPRIVILEGED_BPF, LOCKDEP_STILL_OK); -+ } -+ -+ return 1; -+} -+__setup("unprivileged_bpf_disabled=", unprivileged_bpf_setup); -+ - int sysctl_unprivileged_bpf_disabled __read_mostly = - IS_BUILTIN(CONFIG_BPF_UNPRIV_DEFAULT_OFF) ? 2 : 0; - -diff --git a/kernel/module.c b/kernel/module.c -index ed13917ea5f3..88643913f3e4 100644 ---- a/kernel/module.c -+++ b/kernel/module.c -@@ -743,6 +743,7 @@ static struct module_attribute modinfo_##field = { \ - - MODINFO_ATTR(version); - MODINFO_ATTR(srcversion); -+MODINFO_ATTR(rhelversion); - - static char last_unloaded_module[MODULE_NAME_LEN+1]; - -@@ -1206,6 +1207,7 @@ static struct module_attribute *modinfo_attrs[] = { - &module_uevent, - &modinfo_version, - &modinfo_srcversion, -+ &modinfo_rhelversion, - &modinfo_initstate, - &modinfo_coresize, - &modinfo_initsize, -diff --git a/kernel/module_signing.c b/kernel/module_signing.c -index 8723ae70ea1f..fb2d773498c2 100644 ---- a/kernel/module_signing.c -+++ b/kernel/module_signing.c -@@ -38,8 +38,15 @@ int mod_verify_sig(const void *mod, struct load_info *info) - modlen -= sig_len + sizeof(ms); - info->len = modlen; - -- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, -+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, - VERIFY_USE_SECONDARY_KEYRING, - VERIFYING_MODULE_SIGNATURE, - NULL, NULL); -+ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { -+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, -+ VERIFY_USE_PLATFORM_KEYRING, -+ VERIFYING_MODULE_SIGNATURE, -+ NULL, NULL); -+ } -+ return ret; - } -diff --git a/kernel/panic.c b/kernel/panic.c -index edad89660a2b..71a5a1cf6235 100644 ---- a/kernel/panic.c -+++ b/kernel/panic.c -@@ -387,6 +387,20 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = { - [ TAINT_LIVEPATCH ] = { 'K', ' ', true }, - [ TAINT_AUX ] = { 'X', ' ', true }, - [ TAINT_RANDSTRUCT ] = { 'T', ' ', true }, -+ [ TAINT_18 ] = { '?', '-', false }, -+ [ TAINT_19 ] = { '?', '-', false }, -+ [ TAINT_20 ] = { '?', '-', false }, -+ [ TAINT_21 ] = { '?', '-', false }, -+ [ TAINT_22 ] = { '?', '-', false }, -+ [ TAINT_23 ] = { '?', '-', false }, -+ [ TAINT_24 ] = { '?', '-', false }, -+ [ TAINT_25 ] = { '?', '-', false }, -+ [ TAINT_26 ] = { '?', '-', false }, -+ [ TAINT_SUPPORT_REMOVED ] = { 'h', ' ', false }, -+ [ TAINT_RESERVED28 ] = { '?', '-', false }, -+ [ TAINT_RESERVED29 ] = { '?', '-', false }, -+ [ TAINT_RESERVED30 ] = { '?', '-', false }, -+ [ TAINT_UNPRIVILEGED_BPF ] = { 'u', ' ', false }, - }; - - /** -diff --git a/kernel/rh_taint.c b/kernel/rh_taint.c -new file mode 100644 -index 000000000000..4050b6dead75 ---- /dev/null -+++ b/kernel/rh_taint.c -@@ -0,0 +1,93 @@ -+#include -+#include -+ -+/* -+ * The following functions are used by Red Hat to indicate to users that -+ * hardware and drivers are unsupported, or have limited support in RHEL major -+ * and minor releases. These functions output loud warning messages to the end -+ * user and should be USED WITH CAUTION. -+ * -+ * Any use of these functions _MUST_ be documented in the RHEL Release Notes, -+ * and have approval of management. -+ */ -+ -+/** -+ * mark_hardware_unsupported() - Mark hardware, class, or type as unsupported. -+ * @msg: Hardware name, class, or type -+ * -+ * Called to mark a device, class of devices, or types of devices as not having -+ * support in any RHEL minor release. This does not TAINT the kernel. Red Hat -+ * will not fix bugs against this hardware in this minor release. Red Hat may -+ * declare support in a future major or minor update release. This cannot be -+ * used to mark drivers unsupported. -+ */ -+void mark_hardware_unsupported(const char *msg) -+{ -+ /* Print one single message */ -+ pr_crit("Warning: %s - this hardware has not undergone testing by Red Hat and might not be certified. Please consult https://catalog.redhat.com for certified hardware.\n", msg); -+} -+EXPORT_SYMBOL(mark_hardware_unsupported); -+ -+/** -+ * mark_hardware_deprecated() - Mark hardware, class, or type as deprecated. -+ * @msg: Hardware name, class, or type -+ * -+ * Called to minimize the support status of a previously supported device in -+ * a minor release. This does not TAINT the kernel. Marking hardware -+ * deprecated is usually done in conjunction with the hardware vendor. Future -+ * RHEL major releases may not include this driver. Driver updates and fixes -+ * for this device will be limited to critical issues in future minor releases. -+ */ -+void mark_hardware_deprecated(const char *msg) -+{ -+ pr_crit("Warning: %s - this hardware is not recommended for new deployments. It continues to be supported in this RHEL release, but it is likely to be removed in the next major release. Driver updates and fixes for this device will be limited to critical issues. Please contact Red Hat Support or your device's hardware vendor for additional information.\n", msg); -+} -+EXPORT_SYMBOL(mark_hardware_deprecated); -+ -+/** -+ * mark_tech_preview() - Mark driver or kernel subsystem as 'Tech Preview' -+ * @msg: Driver or kernel subsystem name -+ * -+ * Called to minimize the support status of a new driver. This does TAINT the -+ * kernel. Calling this function indicates that the driver or subsystem has -+ * had limited testing and is not marked for full support within this RHEL -+ * minor release. The next RHEL minor release may contain full support for -+ * this driver. Red Hat does not guarantee that bugs reported against this -+ * driver or subsystem will be resolved. -+ */ -+void mark_tech_preview(const char *msg, struct module *mod) -+{ -+ const char *str = NULL; -+ -+ if (msg) -+ str = msg; -+#ifdef CONFIG_MODULES -+ else if (mod && mod->name) -+ str = mod->name; -+#endif -+ -+ pr_warn("TECH PREVIEW: %s may not be fully supported.\n" -+ "Please review provided documentation for limitations.\n", -+ (str ? str : "kernel")); -+ add_taint(TAINT_AUX, LOCKDEP_STILL_OK); -+#ifdef CONFIG_MODULES -+ if (mod) -+ mod->taints |= (1U << TAINT_AUX); -+#endif -+} -+EXPORT_SYMBOL(mark_tech_preview); -+ -+/** -+ * mark_driver_unsupported - drivers that we know we don't want to support -+ * @name: the name of the driver -+ * -+ * In some cases Red Hat has chosen to build a driver for internal QE -+ * use. Use this function to mark those drivers as unsupported for -+ * customers. -+ */ -+void mark_driver_unsupported(const char *name) -+{ -+ pr_crit("Warning: %s - This driver has not undergone sufficient testing by Red Hat for this release and therefore cannot be used in production systems.\n", -+ name ? name : "kernel"); -+} -+EXPORT_SYMBOL(mark_driver_unsupported); -diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 272f4a272f8c..3a5a6455b363 100644 ---- a/kernel/sysctl.c -+++ b/kernel/sysctl.c -@@ -243,6 +243,11 @@ static int bpf_unpriv_handler(struct ctl_table *table, int write, - if (write && !ret) { - if (locked_state && unpriv_enable != 1) - return -EPERM; -+ if (!unpriv_enable) { -+ pr_warn("Unprivileged BPF has been enabled, " -+ "tainting the kernel"); -+ add_taint(TAINT_UNPRIVILEGED_BPF, LOCKDEP_STILL_OK); -+ } - *(int *)table->data = unpriv_enable; - } - return ret; -diff --git a/mm/cma.c b/mm/cma.c -index 995e15480937..588f7e7885cf 100644 ---- a/mm/cma.c -+++ b/mm/cma.c -@@ -125,6 +125,12 @@ static void __init cma_activate_area(struct cma *cma) - spin_lock_init(&cma->mem_head_lock); - #endif - -+#ifdef CONFIG_RHEL_DIFFERENCES -+ /* s390x and ppc64 has been using CMA already in RHEL 8 as default. */ -+ if (!IS_ENABLED(CONFIG_S390) && !IS_ENABLED(CONFIG_PPC64)) -+ mark_tech_preview("CMA", NULL); -+#endif /* CONFIG_RHEL_DIFFERENCES */ -+ - return; - - not_in_zone: -@@ -437,6 +443,10 @@ struct page *cma_alloc(struct cma *cma, unsigned long count, - if (!cma || !cma->count || !cma->bitmap) - goto out; - -+#ifdef CONFIG_RHEL_DIFFERENCES -+ pr_info_once("Initial CMA usage detected\n"); -+#endif /* CONFIG_RHEL_DIFFERENCES */ -+ - pr_debug("%s(cma %p, count %lu, align %d)\n", __func__, (void *)cma, - count, align); - -diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c -index 270a7df898e2..ac41f848b8a2 100644 ---- a/scripts/mod/modpost.c -+++ b/scripts/mod/modpost.c -@@ -20,6 +20,7 @@ - #include - #include "modpost.h" - #include "../../include/linux/license.h" -+#include "../../include/generated/uapi/linux/version.h" - - /* Are we using CONFIG_MODVERSIONS? */ - static int modversions = 0; -@@ -2342,6 +2343,12 @@ static void write_buf(struct buffer *b, const char *fname) - } - } - -+static void add_rhelversion(struct buffer *b, struct module *mod) -+{ -+ buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR, -+ RHEL_MINOR); -+} -+ - static void write_if_changed(struct buffer *b, const char *fname) - { - char *tmp; -@@ -2571,6 +2578,7 @@ int main(int argc, char **argv) - add_depends(&buf, mod); - add_moddevtable(&buf, mod); - add_srcversion(&buf, mod); -+ add_rhelversion(&buf, mod); - - sprintf(fname, "%s.mod.c", mod->name); - write_if_changed(&buf, fname); -diff --git a/scripts/tags.sh b/scripts/tags.sh -index db8ba411860a..2294fb0f17a9 100755 ---- a/scripts/tags.sh -+++ b/scripts/tags.sh -@@ -16,6 +16,8 @@ fi - ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )" - # tags and cscope files should also ignore MODVERSION *.mod.c files - ignore="$ignore ( -name *.mod.c ) -prune -o" -+# RHEL tags and cscope should also ignore redhat/rpm -+ignore="$ignore ( -path redhat/rpm ) -prune -o" - - # Use make KBUILD_ABS_SRCTREE=1 {tags|cscope} - # to force full paths for a non-O= build -diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c -index f290f78c3f30..d3e7ae04f5be 100644 ---- a/security/integrity/platform_certs/load_uefi.c -+++ b/security/integrity/platform_certs/load_uefi.c -@@ -46,7 +46,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, - return NULL; - - if (*status != EFI_BUFFER_TOO_SMALL) { -- pr_err("Couldn't get size: 0x%lx\n", *status); -+ pr_err("Couldn't get size: %s (0x%lx)\n", -+ efi_status_to_str(*status), *status); - return NULL; - } - -@@ -57,7 +58,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, - *status = efi.get_variable(name, guid, NULL, &lsize, db); - if (*status != EFI_SUCCESS) { - kfree(db); -- pr_err("Error reading db var: 0x%lx\n", *status); -+ pr_err("Error reading db var: %s (0x%lx)\n", -+ efi_status_to_str(*status), *status); - return NULL; - } - -diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig -index e84ddf484010..d0501353a4b9 100644 ---- a/security/lockdown/Kconfig -+++ b/security/lockdown/Kconfig -@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY - subsystem is fully initialised. If enabled, lockdown will - unconditionally be called before any other LSMs. - -+config LOCK_DOWN_IN_EFI_SECURE_BOOT -+ bool "Lock down the kernel in EFI Secure Boot mode" -+ default n -+ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY -+ help -+ UEFI Secure Boot provides a mechanism for ensuring that the firmware -+ will only load signed bootloaders and kernels. Secure boot mode may -+ be determined from EFI variables provided by the system firmware if -+ not indicated by the boot parameters. -+ -+ Enabling this option results in kernel lockdown being triggered if -+ EFI Secure Boot is set. -+ - choice - prompt "Kernel default lockdown mode" - default LOCK_DOWN_KERNEL_FORCE_NONE -diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c -index 87cbdc64d272..18555cf18da7 100644 ---- a/security/lockdown/lockdown.c -+++ b/security/lockdown/lockdown.c -@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) - - static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = { - LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), -+ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), - }; - - static int __init lockdown_lsm_init(void) -diff --git a/security/security.c b/security/security.c -index 9ffa9e9c5c55..36484cc9842d 100644 ---- a/security/security.c -+++ b/security/security.c -@@ -2599,6 +2599,12 @@ int security_locked_down(enum lockdown_reason what) - } - EXPORT_SYMBOL(security_locked_down); - -+int security_lock_kernel_down(const char *where, enum lockdown_reason level) -+{ -+ return call_int_hook(lock_kernel_down, 0, where, level); -+} -+EXPORT_SYMBOL(security_lock_kernel_down); -+ - #ifdef CONFIG_PERF_EVENTS - int security_perf_event_open(struct perf_event_attr *attr, int type) - { -diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile -index f405b20c1e6c..a8e298a22709 100644 ---- a/tools/testing/selftests/bpf/Makefile -+++ b/tools/testing/selftests/bpf/Makefile -@@ -424,7 +424,6 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ - $(TRUNNER_BPF_OBJS) \ - $(TRUNNER_BPF_SKELS) \ - $(TRUNNER_BPF_LSKELS) \ -- $(TRUNNER_BPF_SKELS_LINKED) \ - $$(BPFOBJ) | $(TRUNNER_OUTPUT) - $$(call msg,TEST-OBJ,$(TRUNNER_BINARY),$$@) - $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -c $(CURDIR)/$$< $$(LDLIBS) -o $$(@F) -diff --git a/tools/testing/selftests/bpf/prog_tests/linked_funcs.c b/tools/testing/selftests/bpf/prog_tests/linked_funcs.c -deleted file mode 100644 -index e9916f2817ec..000000000000 ---- a/tools/testing/selftests/bpf/prog_tests/linked_funcs.c -+++ /dev/null -@@ -1,42 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include --#include --#include "linked_funcs.skel.h" -- --void test_linked_funcs(void) --{ -- int err; -- struct linked_funcs *skel; -- -- skel = linked_funcs__open(); -- if (!ASSERT_OK_PTR(skel, "skel_open")) -- return; -- -- skel->rodata->my_tid = syscall(SYS_gettid); -- skel->bss->syscall_id = SYS_getpgid; -- -- err = linked_funcs__load(skel); -- if (!ASSERT_OK(err, "skel_load")) -- goto cleanup; -- -- err = linked_funcs__attach(skel); -- if (!ASSERT_OK(err, "skel_attach")) -- goto cleanup; -- -- /* trigger */ -- syscall(SYS_getpgid); -- -- ASSERT_EQ(skel->bss->output_val1, 2000 + 2000, "output_val1"); -- ASSERT_EQ(skel->bss->output_ctx1, SYS_getpgid, "output_ctx1"); -- ASSERT_EQ(skel->bss->output_weak1, 42, "output_weak1"); -- -- ASSERT_EQ(skel->bss->output_val2, 2 * 1000 + 2 * (2 * 1000), "output_val2"); -- ASSERT_EQ(skel->bss->output_ctx2, SYS_getpgid, "output_ctx2"); -- /* output_weak2 should never be updated */ -- ASSERT_EQ(skel->bss->output_weak2, 0, "output_weak2"); -- --cleanup: -- linked_funcs__destroy(skel); --} -diff --git a/tools/testing/selftests/bpf/prog_tests/linked_maps.c b/tools/testing/selftests/bpf/prog_tests/linked_maps.c -deleted file mode 100644 -index 85dcaaaf2775..000000000000 ---- a/tools/testing/selftests/bpf/prog_tests/linked_maps.c -+++ /dev/null -@@ -1,30 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include --#include --#include "linked_maps.skel.h" -- --void test_linked_maps(void) --{ -- int err; -- struct linked_maps *skel; -- -- skel = linked_maps__open_and_load(); -- if (!ASSERT_OK_PTR(skel, "skel_open")) -- return; -- -- err = linked_maps__attach(skel); -- if (!ASSERT_OK(err, "skel_attach")) -- goto cleanup; -- -- /* trigger */ -- syscall(SYS_getpgid); -- -- ASSERT_EQ(skel->bss->output_first1, 2000, "output_first1"); -- ASSERT_EQ(skel->bss->output_second1, 2, "output_second1"); -- ASSERT_EQ(skel->bss->output_weak1, 2, "output_weak1"); -- --cleanup: -- linked_maps__destroy(skel); --} -diff --git a/tools/testing/selftests/bpf/prog_tests/linked_vars.c b/tools/testing/selftests/bpf/prog_tests/linked_vars.c -deleted file mode 100644 -index 267166abe4c1..000000000000 ---- a/tools/testing/selftests/bpf/prog_tests/linked_vars.c -+++ /dev/null -@@ -1,43 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include --#include --#include "linked_vars.skel.h" -- --void test_linked_vars(void) --{ -- int err; -- struct linked_vars *skel; -- -- skel = linked_vars__open(); -- if (!ASSERT_OK_PTR(skel, "skel_open")) -- return; -- -- skel->bss->input_bss1 = 1000; -- skel->bss->input_bss2 = 2000; -- skel->bss->input_bss_weak = 3000; -- -- err = linked_vars__load(skel); -- if (!ASSERT_OK(err, "skel_load")) -- goto cleanup; -- -- err = linked_vars__attach(skel); -- if (!ASSERT_OK(err, "skel_attach")) -- goto cleanup; -- -- /* trigger */ -- syscall(SYS_getpgid); -- -- ASSERT_EQ(skel->bss->output_bss1, 1000 + 2000 + 3000, "output_bss1"); -- ASSERT_EQ(skel->bss->output_bss2, 1000 + 2000 + 3000, "output_bss2"); -- /* 10 comes from "winner" input_data_weak in first obj file */ -- ASSERT_EQ(skel->bss->output_data1, 1 + 2 + 10, "output_bss1"); -- ASSERT_EQ(skel->bss->output_data2, 1 + 2 + 10, "output_bss2"); -- /* 100 comes from "winner" input_rodata_weak in first obj file */ -- ASSERT_EQ(skel->bss->output_rodata1, 11 + 22 + 100, "output_weak1"); -- ASSERT_EQ(skel->bss->output_rodata2, 11 + 22 + 100, "output_weak2"); -- --cleanup: -- linked_vars__destroy(skel); --} -diff --git a/tools/testing/selftests/bpf/progs/bpf_cubic.c b/tools/testing/selftests/bpf/progs/bpf_cubic.c -deleted file mode 100644 -index f62df4d023f9..000000000000 ---- a/tools/testing/selftests/bpf/progs/bpf_cubic.c -+++ /dev/null -@@ -1,545 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0-only -- --/* WARNING: This implemenation is not necessarily the same -- * as the tcp_cubic.c. The purpose is mainly for testing -- * the kernel BPF logic. -- * -- * Highlights: -- * 1. CONFIG_HZ .kconfig map is used. -- * 2. In bictcp_update(), calculation is changed to use usec -- * resolution (i.e. USEC_PER_JIFFY) instead of using jiffies. -- * Thus, usecs_to_jiffies() is not used in the bpf_cubic.c. -- * 3. In bitctcp_update() [under tcp_friendliness], the original -- * "while (ca->ack_cnt > delta)" loop is changed to the equivalent -- * "ca->ack_cnt / delta" operation. -- */ -- --#include --#include --#include --#include "bpf_tcp_helpers.h" -- --char _license[] SEC("license") = "GPL"; -- --#define clamp(val, lo, hi) min((typeof(val))max(val, lo), hi) -- --#define BICTCP_BETA_SCALE 1024 /* Scale factor beta calculation -- * max_cwnd = snd_cwnd * beta -- */ --#define BICTCP_HZ 10 /* BIC HZ 2^10 = 1024 */ -- --/* Two methods of hybrid slow start */ --#define HYSTART_ACK_TRAIN 0x1 --#define HYSTART_DELAY 0x2 -- --/* Number of delay samples for detecting the increase of delay */ --#define HYSTART_MIN_SAMPLES 8 --#define HYSTART_DELAY_MIN (4000U) /* 4ms */ --#define HYSTART_DELAY_MAX (16000U) /* 16 ms */ --#define HYSTART_DELAY_THRESH(x) clamp(x, HYSTART_DELAY_MIN, HYSTART_DELAY_MAX) -- --static int fast_convergence = 1; --static const int beta = 717; /* = 717/1024 (BICTCP_BETA_SCALE) */ --static int initial_ssthresh; --static const int bic_scale = 41; --static int tcp_friendliness = 1; -- --static int hystart = 1; --static int hystart_detect = HYSTART_ACK_TRAIN | HYSTART_DELAY; --static int hystart_low_window = 16; --static int hystart_ack_delta_us = 2000; -- --static const __u32 cube_rtt_scale = (bic_scale * 10); /* 1024*c/rtt */ --static const __u32 beta_scale = 8*(BICTCP_BETA_SCALE+beta) / 3 -- / (BICTCP_BETA_SCALE - beta); --/* calculate the "K" for (wmax-cwnd) = c/rtt * K^3 -- * so K = cubic_root( (wmax-cwnd)*rtt/c ) -- * the unit of K is bictcp_HZ=2^10, not HZ -- * -- * c = bic_scale >> 10 -- * rtt = 100ms -- * -- * the following code has been designed and tested for -- * cwnd < 1 million packets -- * RTT < 100 seconds -- * HZ < 1,000,00 (corresponding to 10 nano-second) -- */ -- --/* 1/c * 2^2*bictcp_HZ * srtt, 2^40 */ --static const __u64 cube_factor = (__u64)(1ull << (10+3*BICTCP_HZ)) -- / (bic_scale * 10); -- --/* BIC TCP Parameters */ --struct bictcp { -- __u32 cnt; /* increase cwnd by 1 after ACKs */ -- __u32 last_max_cwnd; /* last maximum snd_cwnd */ -- __u32 last_cwnd; /* the last snd_cwnd */ -- __u32 last_time; /* time when updated last_cwnd */ -- __u32 bic_origin_point;/* origin point of bic function */ -- __u32 bic_K; /* time to origin point -- from the beginning of the current epoch */ -- __u32 delay_min; /* min delay (usec) */ -- __u32 epoch_start; /* beginning of an epoch */ -- __u32 ack_cnt; /* number of acks */ -- __u32 tcp_cwnd; /* estimated tcp cwnd */ -- __u16 unused; -- __u8 sample_cnt; /* number of samples to decide curr_rtt */ -- __u8 found; /* the exit point is found? */ -- __u32 round_start; /* beginning of each round */ -- __u32 end_seq; /* end_seq of the round */ -- __u32 last_ack; /* last time when the ACK spacing is close */ -- __u32 curr_rtt; /* the minimum rtt of current round */ --}; -- --static inline void bictcp_reset(struct bictcp *ca) --{ -- ca->cnt = 0; -- ca->last_max_cwnd = 0; -- ca->last_cwnd = 0; -- ca->last_time = 0; -- ca->bic_origin_point = 0; -- ca->bic_K = 0; -- ca->delay_min = 0; -- ca->epoch_start = 0; -- ca->ack_cnt = 0; -- ca->tcp_cwnd = 0; -- ca->found = 0; --} -- --extern unsigned long CONFIG_HZ __kconfig; --#define HZ CONFIG_HZ --#define USEC_PER_MSEC 1000UL --#define USEC_PER_SEC 1000000UL --#define USEC_PER_JIFFY (USEC_PER_SEC / HZ) -- --static __always_inline __u64 div64_u64(__u64 dividend, __u64 divisor) --{ -- return dividend / divisor; --} -- --#define div64_ul div64_u64 -- --#define BITS_PER_U64 (sizeof(__u64) * 8) --static __always_inline int fls64(__u64 x) --{ -- int num = BITS_PER_U64 - 1; -- -- if (x == 0) -- return 0; -- -- if (!(x & (~0ull << (BITS_PER_U64-32)))) { -- num -= 32; -- x <<= 32; -- } -- if (!(x & (~0ull << (BITS_PER_U64-16)))) { -- num -= 16; -- x <<= 16; -- } -- if (!(x & (~0ull << (BITS_PER_U64-8)))) { -- num -= 8; -- x <<= 8; -- } -- if (!(x & (~0ull << (BITS_PER_U64-4)))) { -- num -= 4; -- x <<= 4; -- } -- if (!(x & (~0ull << (BITS_PER_U64-2)))) { -- num -= 2; -- x <<= 2; -- } -- if (!(x & (~0ull << (BITS_PER_U64-1)))) -- num -= 1; -- -- return num + 1; --} -- --static __always_inline __u32 bictcp_clock_us(const struct sock *sk) --{ -- return tcp_sk(sk)->tcp_mstamp; --} -- --static __always_inline void bictcp_hystart_reset(struct sock *sk) --{ -- struct tcp_sock *tp = tcp_sk(sk); -- struct bictcp *ca = inet_csk_ca(sk); -- -- ca->round_start = ca->last_ack = bictcp_clock_us(sk); -- ca->end_seq = tp->snd_nxt; -- ca->curr_rtt = ~0U; -- ca->sample_cnt = 0; --} -- --/* "struct_ops/" prefix is not a requirement -- * It will be recognized as BPF_PROG_TYPE_STRUCT_OPS -- * as long as it is used in one of the func ptr -- * under SEC(".struct_ops"). -- */ --SEC("struct_ops/bpf_cubic_init") --void BPF_PROG(bpf_cubic_init, struct sock *sk) --{ -- struct bictcp *ca = inet_csk_ca(sk); -- -- bictcp_reset(ca); -- -- if (hystart) -- bictcp_hystart_reset(sk); -- -- if (!hystart && initial_ssthresh) -- tcp_sk(sk)->snd_ssthresh = initial_ssthresh; --} -- --/* No prefix in SEC will also work. -- * The remaining tcp-cubic functions have an easier way. -- */ --SEC("no-sec-prefix-bictcp_cwnd_event") --void BPF_PROG(bpf_cubic_cwnd_event, struct sock *sk, enum tcp_ca_event event) --{ -- if (event == CA_EVENT_TX_START) { -- struct bictcp *ca = inet_csk_ca(sk); -- __u32 now = tcp_jiffies32; -- __s32 delta; -- -- delta = now - tcp_sk(sk)->lsndtime; -- -- /* We were application limited (idle) for a while. -- * Shift epoch_start to keep cwnd growth to cubic curve. -- */ -- if (ca->epoch_start && delta > 0) { -- ca->epoch_start += delta; -- if (after(ca->epoch_start, now)) -- ca->epoch_start = now; -- } -- return; -- } --} -- --/* -- * cbrt(x) MSB values for x MSB values in [0..63]. -- * Precomputed then refined by hand - Willy Tarreau -- * -- * For x in [0..63], -- * v = cbrt(x << 18) - 1 -- * cbrt(x) = (v[x] + 10) >> 6 -- */ --static const __u8 v[] = { -- /* 0x00 */ 0, 54, 54, 54, 118, 118, 118, 118, -- /* 0x08 */ 123, 129, 134, 138, 143, 147, 151, 156, -- /* 0x10 */ 157, 161, 164, 168, 170, 173, 176, 179, -- /* 0x18 */ 181, 185, 187, 190, 192, 194, 197, 199, -- /* 0x20 */ 200, 202, 204, 206, 209, 211, 213, 215, -- /* 0x28 */ 217, 219, 221, 222, 224, 225, 227, 229, -- /* 0x30 */ 231, 232, 234, 236, 237, 239, 240, 242, -- /* 0x38 */ 244, 245, 246, 248, 250, 251, 252, 254, --}; -- --/* calculate the cubic root of x using a table lookup followed by one -- * Newton-Raphson iteration. -- * Avg err ~= 0.195% -- */ --static __always_inline __u32 cubic_root(__u64 a) --{ -- __u32 x, b, shift; -- -- if (a < 64) { -- /* a in [0..63] */ -- return ((__u32)v[(__u32)a] + 35) >> 6; -- } -- -- b = fls64(a); -- b = ((b * 84) >> 8) - 1; -- shift = (a >> (b * 3)); -- -- /* it is needed for verifier's bound check on v */ -- if (shift >= 64) -- return 0; -- -- x = ((__u32)(((__u32)v[shift] + 10) << b)) >> 6; -- -- /* -- * Newton-Raphson iteration -- * 2 -- * x = ( 2 * x + a / x ) / 3 -- * k+1 k k -- */ -- x = (2 * x + (__u32)div64_u64(a, (__u64)x * (__u64)(x - 1))); -- x = ((x * 341) >> 10); -- return x; --} -- --/* -- * Compute congestion window to use. -- */ --static __always_inline void bictcp_update(struct bictcp *ca, __u32 cwnd, -- __u32 acked) --{ -- __u32 delta, bic_target, max_cnt; -- __u64 offs, t; -- -- ca->ack_cnt += acked; /* count the number of ACKed packets */ -- -- if (ca->last_cwnd == cwnd && -- (__s32)(tcp_jiffies32 - ca->last_time) <= HZ / 32) -- return; -- -- /* The CUBIC function can update ca->cnt at most once per jiffy. -- * On all cwnd reduction events, ca->epoch_start is set to 0, -- * which will force a recalculation of ca->cnt. -- */ -- if (ca->epoch_start && tcp_jiffies32 == ca->last_time) -- goto tcp_friendliness; -- -- ca->last_cwnd = cwnd; -- ca->last_time = tcp_jiffies32; -- -- if (ca->epoch_start == 0) { -- ca->epoch_start = tcp_jiffies32; /* record beginning */ -- ca->ack_cnt = acked; /* start counting */ -- ca->tcp_cwnd = cwnd; /* syn with cubic */ -- -- if (ca->last_max_cwnd <= cwnd) { -- ca->bic_K = 0; -- ca->bic_origin_point = cwnd; -- } else { -- /* Compute new K based on -- * (wmax-cwnd) * (srtt>>3 / HZ) / c * 2^(3*bictcp_HZ) -- */ -- ca->bic_K = cubic_root(cube_factor -- * (ca->last_max_cwnd - cwnd)); -- ca->bic_origin_point = ca->last_max_cwnd; -- } -- } -- -- /* cubic function - calc*/ -- /* calculate c * time^3 / rtt, -- * while considering overflow in calculation of time^3 -- * (so time^3 is done by using 64 bit) -- * and without the support of division of 64bit numbers -- * (so all divisions are done by using 32 bit) -- * also NOTE the unit of those veriables -- * time = (t - K) / 2^bictcp_HZ -- * c = bic_scale >> 10 -- * rtt = (srtt >> 3) / HZ -- * !!! The following code does not have overflow problems, -- * if the cwnd < 1 million packets !!! -- */ -- -- t = (__s32)(tcp_jiffies32 - ca->epoch_start) * USEC_PER_JIFFY; -- t += ca->delay_min; -- /* change the unit from usec to bictcp_HZ */ -- t <<= BICTCP_HZ; -- t /= USEC_PER_SEC; -- -- if (t < ca->bic_K) /* t - K */ -- offs = ca->bic_K - t; -- else -- offs = t - ca->bic_K; -- -- /* c/rtt * (t-K)^3 */ -- delta = (cube_rtt_scale * offs * offs * offs) >> (10+3*BICTCP_HZ); -- if (t < ca->bic_K) /* below origin*/ -- bic_target = ca->bic_origin_point - delta; -- else /* above origin*/ -- bic_target = ca->bic_origin_point + delta; -- -- /* cubic function - calc bictcp_cnt*/ -- if (bic_target > cwnd) { -- ca->cnt = cwnd / (bic_target - cwnd); -- } else { -- ca->cnt = 100 * cwnd; /* very small increment*/ -- } -- -- /* -- * The initial growth of cubic function may be too conservative -- * when the available bandwidth is still unknown. -- */ -- if (ca->last_max_cwnd == 0 && ca->cnt > 20) -- ca->cnt = 20; /* increase cwnd 5% per RTT */ -- --tcp_friendliness: -- /* TCP Friendly */ -- if (tcp_friendliness) { -- __u32 scale = beta_scale; -- __u32 n; -- -- /* update tcp cwnd */ -- delta = (cwnd * scale) >> 3; -- if (ca->ack_cnt > delta && delta) { -- n = ca->ack_cnt / delta; -- ca->ack_cnt -= n * delta; -- ca->tcp_cwnd += n; -- } -- -- if (ca->tcp_cwnd > cwnd) { /* if bic is slower than tcp */ -- delta = ca->tcp_cwnd - cwnd; -- max_cnt = cwnd / delta; -- if (ca->cnt > max_cnt) -- ca->cnt = max_cnt; -- } -- } -- -- /* The maximum rate of cwnd increase CUBIC allows is 1 packet per -- * 2 packets ACKed, meaning cwnd grows at 1.5x per RTT. -- */ -- ca->cnt = max(ca->cnt, 2U); --} -- --/* Or simply use the BPF_STRUCT_OPS to avoid the SEC boiler plate. */ --void BPF_STRUCT_OPS(bpf_cubic_cong_avoid, struct sock *sk, __u32 ack, __u32 acked) --{ -- struct tcp_sock *tp = tcp_sk(sk); -- struct bictcp *ca = inet_csk_ca(sk); -- -- if (!tcp_is_cwnd_limited(sk)) -- return; -- -- if (tcp_in_slow_start(tp)) { -- if (hystart && after(ack, ca->end_seq)) -- bictcp_hystart_reset(sk); -- acked = tcp_slow_start(tp, acked); -- if (!acked) -- return; -- } -- bictcp_update(ca, tp->snd_cwnd, acked); -- tcp_cong_avoid_ai(tp, ca->cnt, acked); --} -- --__u32 BPF_STRUCT_OPS(bpf_cubic_recalc_ssthresh, struct sock *sk) --{ -- const struct tcp_sock *tp = tcp_sk(sk); -- struct bictcp *ca = inet_csk_ca(sk); -- -- ca->epoch_start = 0; /* end of epoch */ -- -- /* Wmax and fast convergence */ -- if (tp->snd_cwnd < ca->last_max_cwnd && fast_convergence) -- ca->last_max_cwnd = (tp->snd_cwnd * (BICTCP_BETA_SCALE + beta)) -- / (2 * BICTCP_BETA_SCALE); -- else -- ca->last_max_cwnd = tp->snd_cwnd; -- -- return max((tp->snd_cwnd * beta) / BICTCP_BETA_SCALE, 2U); --} -- --void BPF_STRUCT_OPS(bpf_cubic_state, struct sock *sk, __u8 new_state) --{ -- if (new_state == TCP_CA_Loss) { -- bictcp_reset(inet_csk_ca(sk)); -- bictcp_hystart_reset(sk); -- } --} -- --#define GSO_MAX_SIZE 65536 -- --/* Account for TSO/GRO delays. -- * Otherwise short RTT flows could get too small ssthresh, since during -- * slow start we begin with small TSO packets and ca->delay_min would -- * not account for long aggregation delay when TSO packets get bigger. -- * Ideally even with a very small RTT we would like to have at least one -- * TSO packet being sent and received by GRO, and another one in qdisc layer. -- * We apply another 100% factor because @rate is doubled at this point. -- * We cap the cushion to 1ms. -- */ --static __always_inline __u32 hystart_ack_delay(struct sock *sk) --{ -- unsigned long rate; -- -- rate = sk->sk_pacing_rate; -- if (!rate) -- return 0; -- return min((__u64)USEC_PER_MSEC, -- div64_ul((__u64)GSO_MAX_SIZE * 4 * USEC_PER_SEC, rate)); --} -- --static __always_inline void hystart_update(struct sock *sk, __u32 delay) --{ -- struct tcp_sock *tp = tcp_sk(sk); -- struct bictcp *ca = inet_csk_ca(sk); -- __u32 threshold; -- -- if (hystart_detect & HYSTART_ACK_TRAIN) { -- __u32 now = bictcp_clock_us(sk); -- -- /* first detection parameter - ack-train detection */ -- if ((__s32)(now - ca->last_ack) <= hystart_ack_delta_us) { -- ca->last_ack = now; -- -- threshold = ca->delay_min + hystart_ack_delay(sk); -- -- /* Hystart ack train triggers if we get ack past -- * ca->delay_min/2. -- * Pacing might have delayed packets up to RTT/2 -- * during slow start. -- */ -- if (sk->sk_pacing_status == SK_PACING_NONE) -- threshold >>= 1; -- -- if ((__s32)(now - ca->round_start) > threshold) { -- ca->found = 1; -- tp->snd_ssthresh = tp->snd_cwnd; -- } -- } -- } -- -- if (hystart_detect & HYSTART_DELAY) { -- /* obtain the minimum delay of more than sampling packets */ -- if (ca->curr_rtt > delay) -- ca->curr_rtt = delay; -- if (ca->sample_cnt < HYSTART_MIN_SAMPLES) { -- ca->sample_cnt++; -- } else { -- if (ca->curr_rtt > ca->delay_min + -- HYSTART_DELAY_THRESH(ca->delay_min >> 3)) { -- ca->found = 1; -- tp->snd_ssthresh = tp->snd_cwnd; -- } -- } -- } --} -- --void BPF_STRUCT_OPS(bpf_cubic_acked, struct sock *sk, -- const struct ack_sample *sample) --{ -- const struct tcp_sock *tp = tcp_sk(sk); -- struct bictcp *ca = inet_csk_ca(sk); -- __u32 delay; -- -- /* Some calls are for duplicates without timetamps */ -- if (sample->rtt_us < 0) -- return; -- -- /* Discard delay samples right after fast recovery */ -- if (ca->epoch_start && (__s32)(tcp_jiffies32 - ca->epoch_start) < HZ) -- return; -- -- delay = sample->rtt_us; -- if (delay == 0) -- delay = 1; -- -- /* first time call or link delay decreases */ -- if (ca->delay_min == 0 || ca->delay_min > delay) -- ca->delay_min = delay; -- -- /* hystart triggers when cwnd is larger than some threshold */ -- if (!ca->found && tcp_in_slow_start(tp) && hystart && -- tp->snd_cwnd >= hystart_low_window) -- hystart_update(sk, delay); --} -- --extern __u32 tcp_reno_undo_cwnd(struct sock *sk) __ksym; -- --__u32 BPF_STRUCT_OPS(bpf_cubic_undo_cwnd, struct sock *sk) --{ -- return tcp_reno_undo_cwnd(sk); --} -- --SEC(".struct_ops") --struct tcp_congestion_ops cubic = { -- .init = (void *)bpf_cubic_init, -- .ssthresh = (void *)bpf_cubic_recalc_ssthresh, -- .cong_avoid = (void *)bpf_cubic_cong_avoid, -- .set_state = (void *)bpf_cubic_state, -- .undo_cwnd = (void *)bpf_cubic_undo_cwnd, -- .cwnd_event = (void *)bpf_cubic_cwnd_event, -- .pkts_acked = (void *)bpf_cubic_acked, -- .name = "bpf_cubic", --}; -diff --git a/tools/testing/selftests/bpf/progs/bpf_dctcp.c b/tools/testing/selftests/bpf/progs/bpf_dctcp.c -deleted file mode 100644 -index fd42247da8b4..000000000000 ---- a/tools/testing/selftests/bpf/progs/bpf_dctcp.c -+++ /dev/null -@@ -1,224 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2019 Facebook */ -- --/* WARNING: This implemenation is not necessarily the same -- * as the tcp_dctcp.c. The purpose is mainly for testing -- * the kernel BPF logic. -- */ -- --#include --#include --#include --#include --#include --#include --#include --#include "bpf_tcp_helpers.h" -- --char _license[] SEC("license") = "GPL"; -- --int stg_result = 0; -- --struct { -- __uint(type, BPF_MAP_TYPE_SK_STORAGE); -- __uint(map_flags, BPF_F_NO_PREALLOC); -- __type(key, int); -- __type(value, int); --} sk_stg_map SEC(".maps"); -- --#define DCTCP_MAX_ALPHA 1024U -- --struct dctcp { -- __u32 old_delivered; -- __u32 old_delivered_ce; -- __u32 prior_rcv_nxt; -- __u32 dctcp_alpha; -- __u32 next_seq; -- __u32 ce_state; -- __u32 loss_cwnd; --}; -- --static unsigned int dctcp_shift_g = 4; /* g = 1/2^4 */ --static unsigned int dctcp_alpha_on_init = DCTCP_MAX_ALPHA; -- --static __always_inline void dctcp_reset(const struct tcp_sock *tp, -- struct dctcp *ca) --{ -- ca->next_seq = tp->snd_nxt; -- -- ca->old_delivered = tp->delivered; -- ca->old_delivered_ce = tp->delivered_ce; --} -- --SEC("struct_ops/dctcp_init") --void BPF_PROG(dctcp_init, struct sock *sk) --{ -- const struct tcp_sock *tp = tcp_sk(sk); -- struct dctcp *ca = inet_csk_ca(sk); -- int *stg; -- -- ca->prior_rcv_nxt = tp->rcv_nxt; -- ca->dctcp_alpha = min(dctcp_alpha_on_init, DCTCP_MAX_ALPHA); -- ca->loss_cwnd = 0; -- ca->ce_state = 0; -- -- stg = bpf_sk_storage_get(&sk_stg_map, (void *)tp, NULL, 0); -- if (stg) { -- stg_result = *stg; -- bpf_sk_storage_delete(&sk_stg_map, (void *)tp); -- } -- dctcp_reset(tp, ca); --} -- --SEC("struct_ops/dctcp_ssthresh") --__u32 BPF_PROG(dctcp_ssthresh, struct sock *sk) --{ -- struct dctcp *ca = inet_csk_ca(sk); -- struct tcp_sock *tp = tcp_sk(sk); -- -- ca->loss_cwnd = tp->snd_cwnd; -- return max(tp->snd_cwnd - ((tp->snd_cwnd * ca->dctcp_alpha) >> 11U), 2U); --} -- --SEC("struct_ops/dctcp_update_alpha") --void BPF_PROG(dctcp_update_alpha, struct sock *sk, __u32 flags) --{ -- const struct tcp_sock *tp = tcp_sk(sk); -- struct dctcp *ca = inet_csk_ca(sk); -- -- /* Expired RTT */ -- if (!before(tp->snd_una, ca->next_seq)) { -- __u32 delivered_ce = tp->delivered_ce - ca->old_delivered_ce; -- __u32 alpha = ca->dctcp_alpha; -- -- /* alpha = (1 - g) * alpha + g * F */ -- -- alpha -= min_not_zero(alpha, alpha >> dctcp_shift_g); -- if (delivered_ce) { -- __u32 delivered = tp->delivered - ca->old_delivered; -- -- /* If dctcp_shift_g == 1, a 32bit value would overflow -- * after 8 M packets. -- */ -- delivered_ce <<= (10 - dctcp_shift_g); -- delivered_ce /= max(1U, delivered); -- -- alpha = min(alpha + delivered_ce, DCTCP_MAX_ALPHA); -- } -- ca->dctcp_alpha = alpha; -- dctcp_reset(tp, ca); -- } --} -- --static __always_inline void dctcp_react_to_loss(struct sock *sk) --{ -- struct dctcp *ca = inet_csk_ca(sk); -- struct tcp_sock *tp = tcp_sk(sk); -- -- ca->loss_cwnd = tp->snd_cwnd; -- tp->snd_ssthresh = max(tp->snd_cwnd >> 1U, 2U); --} -- --SEC("struct_ops/dctcp_state") --void BPF_PROG(dctcp_state, struct sock *sk, __u8 new_state) --{ -- if (new_state == TCP_CA_Recovery && -- new_state != BPF_CORE_READ_BITFIELD(inet_csk(sk), icsk_ca_state)) -- dctcp_react_to_loss(sk); -- /* We handle RTO in dctcp_cwnd_event to ensure that we perform only -- * one loss-adjustment per RTT. -- */ --} -- --static __always_inline void dctcp_ece_ack_cwr(struct sock *sk, __u32 ce_state) --{ -- struct tcp_sock *tp = tcp_sk(sk); -- -- if (ce_state == 1) -- tp->ecn_flags |= TCP_ECN_DEMAND_CWR; -- else -- tp->ecn_flags &= ~TCP_ECN_DEMAND_CWR; --} -- --/* Minimal DCTP CE state machine: -- * -- * S: 0 <- last pkt was non-CE -- * 1 <- last pkt was CE -- */ --static __always_inline --void dctcp_ece_ack_update(struct sock *sk, enum tcp_ca_event evt, -- __u32 *prior_rcv_nxt, __u32 *ce_state) --{ -- __u32 new_ce_state = (evt == CA_EVENT_ECN_IS_CE) ? 1 : 0; -- -- if (*ce_state != new_ce_state) { -- /* CE state has changed, force an immediate ACK to -- * reflect the new CE state. If an ACK was delayed, -- * send that first to reflect the prior CE state. -- */ -- if (inet_csk(sk)->icsk_ack.pending & ICSK_ACK_TIMER) { -- dctcp_ece_ack_cwr(sk, *ce_state); -- bpf_tcp_send_ack(sk, *prior_rcv_nxt); -- } -- inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_NOW; -- } -- *prior_rcv_nxt = tcp_sk(sk)->rcv_nxt; -- *ce_state = new_ce_state; -- dctcp_ece_ack_cwr(sk, new_ce_state); --} -- --SEC("struct_ops/dctcp_cwnd_event") --void BPF_PROG(dctcp_cwnd_event, struct sock *sk, enum tcp_ca_event ev) --{ -- struct dctcp *ca = inet_csk_ca(sk); -- -- switch (ev) { -- case CA_EVENT_ECN_IS_CE: -- case CA_EVENT_ECN_NO_CE: -- dctcp_ece_ack_update(sk, ev, &ca->prior_rcv_nxt, &ca->ce_state); -- break; -- case CA_EVENT_LOSS: -- dctcp_react_to_loss(sk); -- break; -- default: -- /* Don't care for the rest. */ -- break; -- } --} -- --SEC("struct_ops/dctcp_cwnd_undo") --__u32 BPF_PROG(dctcp_cwnd_undo, struct sock *sk) --{ -- const struct dctcp *ca = inet_csk_ca(sk); -- -- return max(tcp_sk(sk)->snd_cwnd, ca->loss_cwnd); --} -- --extern void tcp_reno_cong_avoid(struct sock *sk, __u32 ack, __u32 acked) __ksym; -- --SEC("struct_ops/dctcp_reno_cong_avoid") --void BPF_PROG(dctcp_cong_avoid, struct sock *sk, __u32 ack, __u32 acked) --{ -- tcp_reno_cong_avoid(sk, ack, acked); --} -- --SEC(".struct_ops") --struct tcp_congestion_ops dctcp_nouse = { -- .init = (void *)dctcp_init, -- .set_state = (void *)dctcp_state, -- .flags = TCP_CONG_NEEDS_ECN, -- .name = "bpf_dctcp_nouse", --}; -- --SEC(".struct_ops") --struct tcp_congestion_ops dctcp = { -- .init = (void *)dctcp_init, -- .in_ack_event = (void *)dctcp_update_alpha, -- .cwnd_event = (void *)dctcp_cwnd_event, -- .ssthresh = (void *)dctcp_ssthresh, -- .cong_avoid = (void *)dctcp_cong_avoid, -- .undo_cwnd = (void *)dctcp_cwnd_undo, -- .set_state = (void *)dctcp_state, -- .flags = TCP_CONG_NEEDS_ECN, -- .name = "bpf_dctcp", --}; -diff --git a/tools/testing/selftests/bpf/progs/kfunc_call_test.c b/tools/testing/selftests/bpf/progs/kfunc_call_test.c -deleted file mode 100644 -index 470f8723e463..000000000000 ---- a/tools/testing/selftests/bpf/progs/kfunc_call_test.c -+++ /dev/null -@@ -1,47 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ --#include --#include --#include "bpf_tcp_helpers.h" -- --extern int bpf_kfunc_call_test2(struct sock *sk, __u32 a, __u32 b) __ksym; --extern __u64 bpf_kfunc_call_test1(struct sock *sk, __u32 a, __u64 b, -- __u32 c, __u64 d) __ksym; -- --SEC("classifier") --int kfunc_call_test2(struct __sk_buff *skb) --{ -- struct bpf_sock *sk = skb->sk; -- -- if (!sk) -- return -1; -- -- sk = bpf_sk_fullsock(sk); -- if (!sk) -- return -1; -- -- return bpf_kfunc_call_test2((struct sock *)sk, 1, 2); --} -- --SEC("classifier") --int kfunc_call_test1(struct __sk_buff *skb) --{ -- struct bpf_sock *sk = skb->sk; -- __u64 a = 1ULL << 32; -- __u32 ret; -- -- if (!sk) -- return -1; -- -- sk = bpf_sk_fullsock(sk); -- if (!sk) -- return -1; -- -- a = bpf_kfunc_call_test1((struct sock *)sk, 1, a | 2, 3, a | 4); -- ret = a >> 32; /* ret should be 2 */ -- ret += (__u32)a; /* ret should be 12 */ -- -- return ret; --} -- --char _license[] SEC("license") = "GPL"; -diff --git a/tools/testing/selftests/bpf/progs/kfunc_call_test_subprog.c b/tools/testing/selftests/bpf/progs/kfunc_call_test_subprog.c -deleted file mode 100644 -index b2dcb7d9cb03..000000000000 ---- a/tools/testing/selftests/bpf/progs/kfunc_call_test_subprog.c -+++ /dev/null -@@ -1,42 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ --#include --#include --#include "bpf_tcp_helpers.h" -- --extern const int bpf_prog_active __ksym; --extern __u64 bpf_kfunc_call_test1(struct sock *sk, __u32 a, __u64 b, -- __u32 c, __u64 d) __ksym; --extern struct sock *bpf_kfunc_call_test3(struct sock *sk) __ksym; --int active_res = -1; --int sk_state = -1; -- --int __noinline f1(struct __sk_buff *skb) --{ -- struct bpf_sock *sk = skb->sk; -- int *active; -- -- if (!sk) -- return -1; -- -- sk = bpf_sk_fullsock(sk); -- if (!sk) -- return -1; -- -- active = (int *)bpf_per_cpu_ptr(&bpf_prog_active, -- bpf_get_smp_processor_id()); -- if (active) -- active_res = *active; -- -- sk_state = bpf_kfunc_call_test3((struct sock *)sk)->__sk_common.skc_state; -- -- return (__u32)bpf_kfunc_call_test1((struct sock *)sk, 1, 2, 3, 4); --} -- --SEC("classifier") --int kfunc_call_test1(struct __sk_buff *skb) --{ -- return f1(skb); --} -- --char _license[] SEC("license") = "GPL"; -diff --git a/tools/testing/selftests/bpf/progs/linked_funcs1.c b/tools/testing/selftests/bpf/progs/linked_funcs1.c -deleted file mode 100644 -index b964ec1390c2..000000000000 ---- a/tools/testing/selftests/bpf/progs/linked_funcs1.c -+++ /dev/null -@@ -1,73 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include "vmlinux.h" --#include --#include -- --/* weak and shared between two files */ --const volatile int my_tid __weak; --long syscall_id __weak; -- --int output_val1; --int output_ctx1; --int output_weak1; -- --/* same "subprog" name in all files, but it's ok because they all are static */ --static __noinline int subprog(int x) --{ -- /* but different formula */ -- return x * 1; --} -- --/* Global functions can't be void */ --int set_output_val1(int x) --{ -- output_val1 = x + subprog(x); -- return x; --} -- --/* This function can't be verified as global, as it assumes raw_tp/sys_enter -- * context and accesses syscall id (second argument). So we mark it as -- * __hidden, so that libbpf will mark it as static in the final object file, -- * right before verifying it in the kernel. -- * -- * But we don't mark it as __hidden here, rather at extern site. __hidden is -- * "contaminating" visibility, so it will get propagated from either extern or -- * actual definition (including from the losing __weak definition). -- */ --void set_output_ctx1(__u64 *ctx) --{ -- output_ctx1 = ctx[1]; /* long id, same as in BPF_PROG below */ --} -- --/* this weak instance should win because it's the first one */ --__weak int set_output_weak(int x) --{ -- output_weak1 = x; -- return x; --} -- --extern int set_output_val2(int x); -- --/* here we'll force set_output_ctx2() to be __hidden in the final obj file */ --__hidden extern void set_output_ctx2(__u64 *ctx); -- --SEC("raw_tp/sys_enter") --int BPF_PROG(handler1, struct pt_regs *regs, long id) --{ -- if (my_tid != (u32)bpf_get_current_pid_tgid() || id != syscall_id) -- return 0; -- -- set_output_val2(1000); -- set_output_ctx2(ctx); /* ctx definition is hidden in BPF_PROG macro */ -- -- /* keep input value the same across both files to avoid dependency on -- * handler call order; differentiate by output_weak1 vs output_weak2. -- */ -- set_output_weak(42); -- -- return 0; --} -- --char LICENSE[] SEC("license") = "GPL"; -diff --git a/tools/testing/selftests/bpf/progs/linked_funcs2.c b/tools/testing/selftests/bpf/progs/linked_funcs2.c -deleted file mode 100644 -index 575e958e60b7..000000000000 ---- a/tools/testing/selftests/bpf/progs/linked_funcs2.c -+++ /dev/null -@@ -1,73 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include "vmlinux.h" --#include --#include -- --/* weak and shared between both files */ --const volatile int my_tid __weak; --long syscall_id __weak; -- --int output_val2; --int output_ctx2; --int output_weak2; /* should stay zero */ -- --/* same "subprog" name in all files, but it's ok because they all are static */ --static __noinline int subprog(int x) --{ -- /* but different formula */ -- return x * 2; --} -- --/* Global functions can't be void */ --int set_output_val2(int x) --{ -- output_val2 = 2 * x + 2 * subprog(x); -- return 2 * x; --} -- --/* This function can't be verified as global, as it assumes raw_tp/sys_enter -- * context and accesses syscall id (second argument). So we mark it as -- * __hidden, so that libbpf will mark it as static in the final object file, -- * right before verifying it in the kernel. -- * -- * But we don't mark it as __hidden here, rather at extern site. __hidden is -- * "contaminating" visibility, so it will get propagated from either extern or -- * actual definition (including from the losing __weak definition). -- */ --void set_output_ctx2(__u64 *ctx) --{ -- output_ctx2 = ctx[1]; /* long id, same as in BPF_PROG below */ --} -- --/* this weak instance should lose, because it will be processed second */ --__weak int set_output_weak(int x) --{ -- output_weak2 = x; -- return 2 * x; --} -- --extern int set_output_val1(int x); -- --/* here we'll force set_output_ctx1() to be __hidden in the final obj file */ --__hidden extern void set_output_ctx1(__u64 *ctx); -- --SEC("raw_tp/sys_enter") --int BPF_PROG(handler2, struct pt_regs *regs, long id) --{ -- if (my_tid != (u32)bpf_get_current_pid_tgid() || id != syscall_id) -- return 0; -- -- set_output_val1(2000); -- set_output_ctx1(ctx); /* ctx definition is hidden in BPF_PROG macro */ -- -- /* keep input value the same across both files to avoid dependency on -- * handler call order; differentiate by output_weak1 vs output_weak2. -- */ -- set_output_weak(42); -- -- return 0; --} -- --char LICENSE[] SEC("license") = "GPL"; -diff --git a/tools/testing/selftests/bpf/progs/linked_maps2.c b/tools/testing/selftests/bpf/progs/linked_maps2.c -deleted file mode 100644 -index 0693687474ed..000000000000 ---- a/tools/testing/selftests/bpf/progs/linked_maps2.c -+++ /dev/null -@@ -1,76 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include "vmlinux.h" --#include --#include -- --/* modifiers and typedefs are ignored when comparing key/value types */ --typedef struct my_key { long x; } key_type; --typedef struct my_value { long x; } value_type; -- --extern struct { -- __uint(max_entries, 16); -- __type(key, key_type); -- __type(value, value_type); -- __uint(type, BPF_MAP_TYPE_HASH); --} map1 SEC(".maps"); -- --struct { -- __uint(type, BPF_MAP_TYPE_ARRAY); -- __type(key, int); -- __type(value, int); -- __uint(max_entries, 8); --} map2 SEC(".maps"); -- --/* this definition will lose, but it has to exactly match the winner */ --struct { -- __uint(type, BPF_MAP_TYPE_ARRAY); -- __type(key, int); -- __type(value, int); -- __uint(max_entries, 16); --} map_weak __weak SEC(".maps"); -- --int output_first2; --int output_second2; --int output_weak2; -- --SEC("raw_tp/sys_enter") --int BPF_PROG(handler_enter2) --{ -- /* update values with key = 2 */ -- int key = 2, val = 2; -- key_type key_struct = { .x = 2 }; -- value_type val_struct = { .x = 2000 }; -- -- bpf_map_update_elem(&map1, &key_struct, &val_struct, 0); -- bpf_map_update_elem(&map2, &key, &val, 0); -- bpf_map_update_elem(&map_weak, &key, &val, 0); -- -- return 0; --} -- --SEC("raw_tp/sys_exit") --int BPF_PROG(handler_exit2) --{ -- /* lookup values with key = 1, set in another file */ -- int key = 1, *val; -- key_type key_struct = { .x = 1 }; -- value_type *value_struct; -- -- value_struct = bpf_map_lookup_elem(&map1, &key_struct); -- if (value_struct) -- output_first2 = value_struct->x; -- -- val = bpf_map_lookup_elem(&map2, &key); -- if (val) -- output_second2 = *val; -- -- val = bpf_map_lookup_elem(&map_weak, &key); -- if (val) -- output_weak2 = *val; -- -- return 0; --} -- --char LICENSE[] SEC("license") = "GPL"; -diff --git a/tools/testing/selftests/bpf/progs/linked_vars1.c b/tools/testing/selftests/bpf/progs/linked_vars1.c -deleted file mode 100644 -index ef9e9d0bb0ca..000000000000 ---- a/tools/testing/selftests/bpf/progs/linked_vars1.c -+++ /dev/null -@@ -1,54 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include "vmlinux.h" --#include --#include -- --extern int LINUX_KERNEL_VERSION __kconfig; --/* this weak extern will be strict due to the other file's strong extern */ --extern bool CONFIG_BPF_SYSCALL __kconfig __weak; --extern const void bpf_link_fops __ksym __weak; -- --int input_bss1; --int input_data1 = 1; --const volatile int input_rodata1 = 11; -- --int input_bss_weak __weak; --/* these two definitions should win */ --int input_data_weak __weak = 10; --const volatile int input_rodata_weak __weak = 100; -- --extern int input_bss2; --extern int input_data2; --extern const int input_rodata2; -- --int output_bss1; --int output_data1; --int output_rodata1; -- --long output_sink1; -- --static __noinline int get_bss_res(void) --{ -- /* just make sure all the relocations work against .text as well */ -- return input_bss1 + input_bss2 + input_bss_weak; --} -- --SEC("raw_tp/sys_enter") --int BPF_PROG(handler1) --{ -- output_bss1 = get_bss_res(); -- output_data1 = input_data1 + input_data2 + input_data_weak; -- output_rodata1 = input_rodata1 + input_rodata2 + input_rodata_weak; -- -- /* make sure we actually use above special externs, otherwise compiler -- * will optimize them out -- */ -- output_sink1 = LINUX_KERNEL_VERSION -- + CONFIG_BPF_SYSCALL -- + (long)&bpf_link_fops; -- return 0; --} -- --char LICENSE[] SEC("license") = "GPL"; -diff --git a/tools/testing/selftests/bpf/progs/linked_vars2.c b/tools/testing/selftests/bpf/progs/linked_vars2.c -deleted file mode 100644 -index e4f5bd388a3c..000000000000 ---- a/tools/testing/selftests/bpf/progs/linked_vars2.c -+++ /dev/null -@@ -1,55 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* Copyright (c) 2021 Facebook */ -- --#include "vmlinux.h" --#include --#include -- --extern int LINUX_KERNEL_VERSION __kconfig; --/* when an extern is defined as both strong and weak, resulting symbol will be strong */ --extern bool CONFIG_BPF_SYSCALL __kconfig; --extern const void __start_BTF __ksym; -- --int input_bss2; --int input_data2 = 2; --const volatile int input_rodata2 = 22; -- --int input_bss_weak __weak; --/* these two weak variables should lose */ --int input_data_weak __weak = 20; --const volatile int input_rodata_weak __weak = 200; -- --extern int input_bss1; --extern int input_data1; --extern const int input_rodata1; -- --int output_bss2; --int output_data2; --int output_rodata2; -- --int output_sink2; -- --static __noinline int get_data_res(void) --{ -- /* just make sure all the relocations work against .text as well */ -- return input_data1 + input_data2 + input_data_weak; --} -- --SEC("raw_tp/sys_enter") --int BPF_PROG(handler2) --{ -- output_bss2 = input_bss1 + input_bss2 + input_bss_weak; -- output_data2 = get_data_res(); -- output_rodata2 = input_rodata1 + input_rodata2 + input_rodata_weak; -- -- /* make sure we actually use above special externs, otherwise compiler -- * will optimize them out -- */ -- output_sink2 = LINUX_KERNEL_VERSION -- + CONFIG_BPF_SYSCALL -- + (long)&__start_BTF; -- -- return 0; --} -- --char LICENSE[] SEC("license") = "GPL"; diff --git a/patch-5.15-redhat.patch b/patch-5.15-redhat.patch new file mode 100644 index 000000000..9b4bce306 --- /dev/null +++ b/patch-5.15-redhat.patch @@ -0,0 +1,4456 @@ + Documentation/admin-guide/kernel-parameters.txt | 9 + + Kconfig | 2 + + Kconfig.redhat | 17 + + Makefile | 12 +- + arch/arm/Kconfig | 4 +- + arch/arm64/Kconfig | 3 +- + .../boot/dts/rockchip/rk3399-pinebook-pro.dts | 6 +- + arch/arm64/kernel/acpi.c | 4 + + arch/s390/include/asm/ipl.h | 1 + + arch/s390/kernel/ipl.c | 5 + + arch/s390/kernel/setup.c | 4 + + arch/x86/kernel/cpu/common.c | 1 + + arch/x86/kernel/setup.c | 69 ++- + crypto/rng.c | 73 ++- + drivers/acpi/apei/hest.c | 8 + + drivers/acpi/irq.c | 17 +- + drivers/acpi/scan.c | 9 + + drivers/ata/libahci.c | 18 + + drivers/char/ipmi/ipmi_dmi.c | 15 + + drivers/char/ipmi/ipmi_msghandler.c | 16 +- + drivers/char/random.c | 115 +++++ + drivers/firmware/efi/Makefile | 1 + + drivers/firmware/efi/efi.c | 124 +++-- + drivers/firmware/efi/secureboot.c | 38 ++ + drivers/hid/hid-rmi.c | 64 --- + drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + + drivers/input/rmi4/rmi_driver.c | 124 +++-- + drivers/iommu/iommu.c | 22 + + drivers/message/fusion/mptsas.c | 10 + + drivers/message/fusion/mptspi.c | 11 + + drivers/net/team/team.c | 2 + + drivers/net/wireguard/main.c | 7 + + drivers/nvme/host/core.c | 22 +- + drivers/nvme/host/multipath.c | 19 +- + drivers/nvme/host/nvme.h | 4 + + drivers/pci/pci-driver.c | 29 ++ + drivers/pci/quirks.c | 24 + + drivers/scsi/aacraid/linit.c | 2 + + drivers/scsi/be2iscsi/be_main.c | 2 + + drivers/scsi/hpsa.c | 4 + + drivers/scsi/lpfc/lpfc_ids.h | 14 + + drivers/scsi/megaraid/megaraid_sas_base.c | 4 + + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 + + drivers/scsi/qla2xxx/qla_os.c | 6 + + drivers/scsi/qla4xxx/ql4_os.c | 2 + + drivers/usb/core/hub.c | 7 + + fs/ext4/super.c | 5 + + fs/xfs/xfs_super.c | 13 +- + include/linux/efi.h | 22 +- + include/linux/kernel.h | 15 + + include/linux/lsm_hook_defs.h | 2 + + include/linux/lsm_hooks.h | 6 + + include/linux/module.h | 1 + + include/linux/panic.h | 19 +- + include/linux/pci.h | 4 + + include/linux/random.h | 7 + + include/linux/rh_kabi.h | 297 +++++++++++ + include/linux/rmi.h | 1 + + include/linux/security.h | 5 + + init/Kconfig | 2 +- + kernel/Makefile | 1 + + kernel/bpf/syscall.c | 18 + + kernel/module.c | 2 + + kernel/module_signing.c | 9 +- + kernel/panic.c | 14 + + kernel/rh_taint.c | 93 ++++ + kernel/sysctl.c | 5 + + mm/cma.c | 10 + + scripts/mod/modpost.c | 8 + + scripts/tags.sh | 2 + + security/integrity/platform_certs/load_uefi.c | 6 +- + security/lockdown/Kconfig | 13 + + security/lockdown/lockdown.c | 1 + + security/security.c | 6 + + tools/testing/selftests/bpf/Makefile | 1 - + .../selftests/bpf/prog_tests/linked_funcs.c | 42 -- + .../testing/selftests/bpf/prog_tests/linked_maps.c | 30 -- + .../testing/selftests/bpf/prog_tests/linked_vars.c | 43 -- + tools/testing/selftests/bpf/progs/bpf_cubic.c | 545 --------------------- + tools/testing/selftests/bpf/progs/bpf_dctcp.c | 224 --------- + .../testing/selftests/bpf/progs/kfunc_call_test.c | 47 -- + .../selftests/bpf/progs/kfunc_call_test_subprog.c | 42 -- + tools/testing/selftests/bpf/progs/linked_funcs1.c | 73 --- + tools/testing/selftests/bpf/progs/linked_funcs2.c | 73 --- + tools/testing/selftests/bpf/progs/linked_maps2.c | 76 --- + tools/testing/selftests/bpf/progs/linked_vars1.c | 54 -- + tools/testing/selftests/bpf/progs/linked_vars2.c | 55 --- + 87 files changed, 1359 insertions(+), 1506 deletions(-) + +diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt +index 56bd70ee82fa..46ade8b9da8c 100644 +--- a/Documentation/admin-guide/kernel-parameters.txt ++++ b/Documentation/admin-guide/kernel-parameters.txt +@@ -5871,6 +5871,15 @@ + unknown_nmi_panic + [X86] Cause panic on unknown NMI. + ++ unprivileged_bpf_disabled= ++ Format: { "0" | "1" | "2" } ++ Sets the initial value of ++ kernel.unprivileged_bpf_disabled sysctl knob. ++ 0 - unprivileged bpf() syscall access is enabled. ++ 1 - unprivileged bpf() syscall access is disabled permanently. ++ 2 - unprivileged bpf() syscall access is disabled. ++ Default value is 2. ++ + usbcore.authorized_default= + [USB] Default USB device authorization: + (default -1 = authorized except for wireless USB, +diff --git a/Kconfig b/Kconfig +index 745bc773f567..f57ff40109d7 100644 +--- a/Kconfig ++++ b/Kconfig +@@ -30,3 +30,5 @@ source "lib/Kconfig" + source "lib/Kconfig.debug" + + source "Documentation/Kconfig" ++ ++source "Kconfig.redhat" +diff --git a/Kconfig.redhat b/Kconfig.redhat +new file mode 100644 +index 000000000000..effb81d04bfd +--- /dev/null ++++ b/Kconfig.redhat +@@ -0,0 +1,17 @@ ++# SPDX-License-Identifier: GPL-2.0-only ++# ++# Red Hat specific options ++# ++ ++menu "Red Hat options" ++ ++config RHEL_DIFFERENCES ++ bool "Remove support for deprecated features" ++ help ++ Red Hat may choose to deprecate certain features in its kernels. ++ Enable this option to remove support for hardware that is no ++ longer supported. ++ ++ Unless you want a restricted kernel, say N here. ++ ++endmenu +diff --git a/Makefile b/Makefile +index 61741e9d9c6e..093ecf99677f 100644 +--- a/Makefile ++++ b/Makefile +@@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ + PHONY := __all + __all: + ++# Set RHEL variables ++# Use this spot to avoid future merge conflicts ++include Makefile.rhelver ++ + # We are using a recursive build, so we need to do a little thinking + # to get the ordering right. + # +@@ -1256,7 +1260,13 @@ define filechk_version.h + ((c) > 255 ? 255 : (c)))'; \ + echo \#define LINUX_VERSION_MAJOR $(VERSION); \ + echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \ +- echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL) ++ echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL); \ ++ echo '#define RHEL_MAJOR $(RHEL_MAJOR)'; \ ++ echo '#define RHEL_MINOR $(RHEL_MINOR)'; \ ++ echo '#define RHEL_RELEASE_VERSION(a,b) (((a) << 8) + (b))'; \ ++ echo '#define RHEL_RELEASE_CODE \ ++ $(shell expr $(RHEL_MAJOR) \* 256 + $(RHEL_MINOR))'; \ ++ echo '#define RHEL_RELEASE "$(RHEL_RELEASE)"' + endef + + $(version_h): PATCHLEVEL := $(if $(PATCHLEVEL), $(PATCHLEVEL), 0) +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 2fb7012c3246..47718b4f2f75 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -1474,9 +1474,9 @@ config HIGHMEM + If unsure, say n. + + config HIGHPTE +- bool "Allocate 2nd-level pagetables from highmem" if EXPERT ++ bool "Allocate 2nd-level pagetables from highmem" + depends on HIGHMEM +- default y ++ default n + help + The VM uses one page of physical memory for each page table. + For systems with a lot of processes, this can use a lot of +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index 62c3c1d2190f..9ef6bb1d5b0c 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -915,7 +915,7 @@ endchoice + + config ARM64_FORCE_52BIT + bool "Force 52-bit virtual addresses for userspace" +- depends on ARM64_VA_BITS_52 && EXPERT ++ depends on ARM64_VA_BITS_52 + help + For systems with 52-bit userspace VAs enabled, the kernel will attempt + to maintain compatibility with older software by providing 48-bit VAs +@@ -1156,6 +1156,7 @@ config XEN + config FORCE_MAX_ZONEORDER + int + default "14" if ARM64_64K_PAGES ++ default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES) + default "12" if ARM64_16K_PAGES + default "11" + help +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +index 2b5f001ff4a6..dae8c252bc2b 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts +@@ -385,10 +385,6 @@ mains_charger: dc-charger { + }; + }; + +-&cdn_dp { +- status = "okay"; +-}; +- + &cpu_b0 { + cpu-supply = <&vdd_cpu_b>; + }; +@@ -711,7 +707,7 @@ fusb0: fusb30x@22 { + + connector { + compatible = "usb-c-connector"; +- data-role = "host"; ++ data-role = "dual"; + label = "USB-C"; + op-sink-microwatt = <1000000>; + power-role = "dual"; +diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c +index f3851724fe35..ef69eeab6f2a 100644 +--- a/arch/arm64/kernel/acpi.c ++++ b/arch/arm64/kernel/acpi.c +@@ -40,7 +40,11 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */ + EXPORT_SYMBOL(acpi_pci_disabled); + + static bool param_acpi_off __initdata; ++#ifdef CONFIG_RHEL_DIFFERENCES ++static bool param_acpi_on __initdata = true; ++#else + static bool param_acpi_on __initdata; ++#endif + static bool param_acpi_force __initdata; + + static int __init parse_acpi(char *arg) +diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h +index 3f8ee257f9aa..3ab92feb6241 100644 +--- a/arch/s390/include/asm/ipl.h ++++ b/arch/s390/include/asm/ipl.h +@@ -128,6 +128,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, + unsigned char flags, unsigned short cert); + int ipl_report_add_certificate(struct ipl_report *report, void *key, + unsigned long addr, unsigned long len); ++bool ipl_get_secureboot(void); + + /* + * DIAG 308 support +diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c +index e2cc35775b99..96fc8134f056 100644 +--- a/arch/s390/kernel/ipl.c ++++ b/arch/s390/kernel/ipl.c +@@ -2215,3 +2215,8 @@ int ipl_report_free(struct ipl_report *report) + } + + #endif ++ ++bool ipl_get_secureboot(void) ++{ ++ return !!ipl_secure_flag; ++} +diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c +index fe14beb338e5..62abbfd5c2d9 100644 +--- a/arch/s390/kernel/setup.c ++++ b/arch/s390/kernel/setup.c +@@ -49,6 +49,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -974,6 +975,9 @@ void __init setup_arch(char **cmdline_p) + + log_component_list(); + ++ if (ipl_get_secureboot()) ++ security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); ++ + /* Have one command line that is parsed and saved in /proc/cmdline */ + /* boot_command_line has been already set up in early.c */ + *cmdline_p = boot_command_line; +diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c +index 0f8885949e8c..a79e57a77076 100644 +--- a/arch/x86/kernel/cpu/common.c ++++ b/arch/x86/kernel/cpu/common.c +@@ -1310,6 +1310,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c) + cpu_detect(c); + get_cpu_vendor(c); + get_cpu_cap(c); ++ get_model_name(c); /* RHEL: get model name for unsupported check */ + get_cpu_address_sizes(c); + setup_force_cpu_cap(X86_FEATURE_CPUID); + cpu_parse_early_param(); +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index bff3a784aec5..1a9c345f914d 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -49,6 +50,7 @@ + #include + #include + #include ++#include + + /* + * max_low_pfn_mapped: highest directly mapped pfn < 4 GB +@@ -732,6 +734,50 @@ static void __init early_reserve_memory(void) + trim_snb_memory(); + } + ++#ifdef CONFIG_RHEL_DIFFERENCES ++ ++static void rh_check_supported(void) ++{ ++ bool guest; ++ ++ guest = (x86_hyper_type != X86_HYPER_NATIVE || boot_cpu_has(X86_FEATURE_HYPERVISOR)); ++ ++ /* RHEL supports single cpu on guests only */ ++ if (((boot_cpu_data.x86_max_cores * smp_num_siblings) == 1) && ++ !guest && is_kdump_kernel()) { ++ pr_crit("Detected single cpu native boot.\n"); ++ pr_crit("Important: In this kernel, single threaded, single CPU 64-bit physical systems are unsupported."); ++ } ++ ++ /* ++ * If the RHEL kernel does not support this hardware, the kernel will ++ * attempt to boot, but no support is provided for this hardware ++ */ ++ switch (boot_cpu_data.x86_vendor) { ++ case X86_VENDOR_AMD: ++ case X86_VENDOR_INTEL: ++ break; ++ default: ++ pr_crit("Detected processor %s %s\n", ++ boot_cpu_data.x86_vendor_id, ++ boot_cpu_data.x86_model_id); ++ mark_hardware_unsupported("Processor"); ++ break; ++ } ++ ++ /* ++ * Due to the complexity of x86 lapic & ioapic enumeration, and PCI IRQ ++ * routing, ACPI is required for x86. acpi=off is a valid debug kernel ++ * parameter, so just print out a loud warning in case something ++ * goes wrong (which is most of the time). ++ */ ++ if (acpi_disabled && !guest) ++ pr_crit("ACPI has been disabled or is not available on this hardware. This may result in a single cpu boot, incorrect PCI IRQ routing, or boot failure.\n"); ++} ++#else ++#define rh_check_supported() ++#endif ++ + /* + * Dump out kernel offset information on panic. + */ +@@ -936,6 +982,13 @@ void __init setup_arch(char **cmdline_p) + if (efi_enabled(EFI_BOOT)) + efi_init(); + ++ efi_set_secure_boot(boot_params.secure_boot); ++ ++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT ++ if (efi_enabled(EFI_SECURE_BOOT)) ++ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_INTEGRITY_MAX); ++#endif ++ + dmi_setup(); + + /* +@@ -1101,19 +1154,7 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + +- if (efi_enabled(EFI_BOOT)) { +- switch (boot_params.secure_boot) { +- case efi_secureboot_mode_disabled: +- pr_info("Secure boot disabled\n"); +- break; +- case efi_secureboot_mode_enabled: +- pr_info("Secure boot enabled\n"); +- break; +- default: +- pr_info("Secure boot could not be determined\n"); +- break; +- } +- } ++ efi_set_secure_boot(boot_params.secure_boot); + + reserve_initrd(); + +@@ -1226,6 +1267,8 @@ void __init setup_arch(char **cmdline_p) + efi_apply_memmap_quirks(); + #endif + ++ rh_check_supported(); ++ + unwind_init(); + } + +diff --git a/crypto/rng.c b/crypto/rng.c +index fea082b25fe4..50a9d040bed1 100644 +--- a/crypto/rng.c ++++ b/crypto/rng.c +@@ -11,14 +11,17 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include + #include ++#include ++#include + #include + #include + #include +-#include + #include + + #include "internal.h" +@@ -224,5 +227,73 @@ void crypto_unregister_rngs(struct rng_alg *algs, int count) + } + EXPORT_SYMBOL_GPL(crypto_unregister_rngs); + ++static ssize_t crypto_devrandom_read(void __user *buf, size_t buflen) ++{ ++ u8 tmp[256]; ++ ssize_t ret; ++ ++ if (!buflen) ++ return 0; ++ ++ ret = crypto_get_default_rng(); ++ if (ret) ++ return ret; ++ ++ for (;;) { ++ int err; ++ int i; ++ ++ i = min_t(int, buflen, sizeof(tmp)); ++ err = crypto_rng_get_bytes(crypto_default_rng, tmp, i); ++ if (err) { ++ ret = err; ++ break; ++ } ++ ++ if (copy_to_user(buf, tmp, i)) { ++ ret = -EFAULT; ++ break; ++ } ++ ++ buflen -= i; ++ buf += i; ++ ret += i; ++ ++ if (!buflen) ++ break; ++ ++ if (need_resched()) { ++ if (signal_pending(current)) ++ break; ++ schedule(); ++ } ++ } ++ ++ crypto_put_default_rng(); ++ memzero_explicit(tmp, sizeof(tmp)); ++ ++ return ret; ++} ++ ++static const struct random_extrng crypto_devrandom_rng = { ++ .extrng_read = crypto_devrandom_read, ++ .owner = THIS_MODULE, ++}; ++ ++static int __init crypto_rng_init(void) ++{ ++ if (fips_enabled) ++ random_register_extrng(&crypto_devrandom_rng); ++ return 0; ++} ++ ++static void __exit crypto_rng_exit(void) ++{ ++ random_unregister_extrng(); ++} ++ ++late_initcall(crypto_rng_init); ++module_exit(crypto_rng_exit); ++ + MODULE_LICENSE("GPL"); + MODULE_DESCRIPTION("Random Number Generator"); +diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c +index 277f00b288d1..adbce15c273d 100644 +--- a/drivers/acpi/apei/hest.c ++++ b/drivers/acpi/apei/hest.c +@@ -94,6 +94,14 @@ int apei_hest_parse(apei_hest_func_t func, void *data) + if (hest_disable || !hest_tab) + return -EINVAL; + ++#ifdef CONFIG_ARM64 ++ /* Ignore broken firmware */ ++ if (!strncmp(hest_tab->header.oem_id, "HPE ", 6) && ++ !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) && ++ MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM) ++ return -EINVAL; ++#endif ++ + hest_hdr = (struct acpi_hest_header *)(hest_tab + 1); + for (i = 0; i < hest_tab->error_source_count; i++) { + len = hest_esrc_len(hest_hdr); +diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c +index c68e694fca26..146cba5ae5bc 100644 +--- a/drivers/acpi/irq.c ++++ b/drivers/acpi/irq.c +@@ -130,6 +130,7 @@ struct acpi_irq_parse_one_ctx { + unsigned int index; + unsigned long *res_flags; + struct irq_fwspec *fwspec; ++ bool skip_producer_check; + }; + + /** +@@ -201,7 +202,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, + return AE_CTRL_TERMINATE; + case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: + eirq = &ares->data.extended_irq; +- if (eirq->producer_consumer == ACPI_PRODUCER) ++ if (!ctx->skip_producer_check && ++ eirq->producer_consumer == ACPI_PRODUCER) + return AE_OK; + if (ctx->index >= eirq->interrupt_count) { + ctx->index -= eirq->interrupt_count; +@@ -236,8 +238,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares, + static int acpi_irq_parse_one(acpi_handle handle, unsigned int index, + struct irq_fwspec *fwspec, unsigned long *flags) + { +- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec }; ++ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false }; + ++ /* ++ * Firmware on arm64-based HPE m400 platform incorrectly marks ++ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER. ++ * Don't do the producer/consumer check for that device. ++ */ ++ if (IS_ENABLED(CONFIG_ARM64)) { ++ struct acpi_device *adev = acpi_bus_get_acpi_device(handle); ++ ++ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08")) ++ ctx.skip_producer_check = true; ++ } + acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx); + return ctx.rc; + } +diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c +index b24513ec3fae..8308569f66e0 100644 +--- a/drivers/acpi/scan.c ++++ b/drivers/acpi/scan.c +@@ -1721,6 +1721,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) + if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids)) + return false; + ++ /* ++ * Firmware on some arm64 X-Gene platforms will make the UART ++ * device appear as both a UART and a slave of that UART. Just ++ * bail out here for X-Gene UARTs. ++ */ ++ if (IS_ENABLED(CONFIG_ARM64) && ++ !strcmp(acpi_device_hid(device), "APMC0D08")) ++ return false; ++ + INIT_LIST_HEAD(&resource_list); + acpi_dev_get_resources(device, &resource_list, + acpi_check_serial_bus_slave, +diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c +index 5b3fa2cbe722..ad46d87e17e2 100644 +--- a/drivers/ata/libahci.c ++++ b/drivers/ata/libahci.c +@@ -672,6 +672,24 @@ int ahci_stop_engine(struct ata_port *ap) + tmp &= ~PORT_CMD_START; + writel(tmp, port_mmio + PORT_CMD); + ++#ifdef CONFIG_ARM64 ++ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ ++ if (dev_is_pci(ap->host->dev) && ++ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && ++ to_pci_dev(ap->host->dev)->device == 0x9027 && ++ midr_is_cpu_model_range(read_cpuid_id(), ++ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), ++ MIDR_CPU_VAR_REV(0, 0), ++ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { ++ tmp = readl(hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); ++ udelay(100); ++ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); ++ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); ++ } ++#endif ++ + /* wait for engine to stop. This could be as long as 500 msec */ + tmp = ata_wait_register(ap, port_mmio + PORT_CMD, + PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); +diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c +index bbf7029e224b..cf7faa970dd6 100644 +--- a/drivers/char/ipmi/ipmi_dmi.c ++++ b/drivers/char/ipmi/ipmi_dmi.c +@@ -215,6 +215,21 @@ static int __init scan_for_dmi_ipmi(void) + { + const struct dmi_device *dev = NULL; + ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return 0; ++ } ++ /* END RHEL-only */ ++#endif ++ + while ((dev = dmi_find_device(DMI_DEV_TYPE_IPMI, NULL, dev))) + dmi_decode_ipmi((const struct dmi_header *) dev->device_data); + +diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c +index e96cb5c4f97a..d645460fe8a9 100644 +--- a/drivers/char/ipmi/ipmi_msghandler.c ++++ b/drivers/char/ipmi/ipmi_msghandler.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + + #define IPMI_DRIVER_VERSION "39.2" +@@ -5160,8 +5161,21 @@ static int __init ipmi_init_msghandler_mod(void) + { + int rv; + +- pr_info("version " IPMI_DRIVER_VERSION "\n"); ++#ifdef CONFIG_ARM64 ++ /* RHEL-only ++ * If this is ARM-based HPE m400, return now, because that platform ++ * reports the host-side ipmi address as intel port-io space, which ++ * does not exist in the ARM architecture. ++ */ ++ const char *dmistr = dmi_get_system_info(DMI_PRODUCT_NAME); + ++ if (dmistr && (strcmp("ProLiant m400 Server", dmistr) == 0)) { ++ pr_debug("%s does not support host ipmi\n", dmistr); ++ return -ENOSYS; ++ } ++ /* END RHEL-only */ ++#endif ++ pr_info("version " IPMI_DRIVER_VERSION "\n"); + mutex_lock(&ipmi_interfaces_mutex); + rv = ipmi_register_driver(); + mutex_unlock(&ipmi_interfaces_mutex); +diff --git a/drivers/char/random.c b/drivers/char/random.c +index 605969ed0f96..4d51f1c67675 100644 +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -335,6 +335,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -349,6 +350,11 @@ + + /* #define ADD_INTERRUPT_BENCH */ + ++/* ++ * Hook for external RNG. ++ */ ++static const struct random_extrng __rcu *extrng; ++ + /* + * Configuration information + */ +@@ -481,6 +487,9 @@ static int ratelimit_disable __read_mostly; + module_param_named(ratelimit_disable, ratelimit_disable, int, 0644); + MODULE_PARM_DESC(ratelimit_disable, "Disable random ratelimit suppression"); + ++static const struct file_operations extrng_random_fops; ++static const struct file_operations extrng_urandom_fops; ++ + /********************************************************************** + * + * OS independent entropy store. Here are the functions which handle +@@ -1858,6 +1867,13 @@ random_poll(struct file *file, poll_table * wait) + return mask; + } + ++static __poll_t ++extrng_poll(struct file *file, poll_table * wait) ++{ ++ /* extrng pool is always full, always read, no writes */ ++ return EPOLLIN | EPOLLRDNORM; ++} ++ + static int + write_pool(struct entropy_store *r, const char __user *buffer, size_t count) + { +@@ -1961,7 +1977,58 @@ static int random_fasync(int fd, struct file *filp, int on) + return fasync_helper(fd, filp, on, &fasync); + } + ++static int random_open(struct inode *inode, struct file *filp) ++{ ++ const struct random_extrng *rng; ++ ++ rcu_read_lock(); ++ rng = rcu_dereference(extrng); ++ if (rng && !try_module_get(rng->owner)) ++ rng = NULL; ++ rcu_read_unlock(); ++ ++ if (!rng) ++ return 0; ++ ++ filp->f_op = &extrng_random_fops; ++ filp->private_data = rng->owner; ++ ++ return 0; ++} ++ ++static int urandom_open(struct inode *inode, struct file *filp) ++{ ++ const struct random_extrng *rng; ++ ++ rcu_read_lock(); ++ rng = rcu_dereference(extrng); ++ if (rng && !try_module_get(rng->owner)) ++ rng = NULL; ++ rcu_read_unlock(); ++ ++ if (!rng) ++ return 0; ++ ++ filp->f_op = &extrng_urandom_fops; ++ filp->private_data = rng->owner; ++ ++ return 0; ++} ++ ++static int extrng_release(struct inode *inode, struct file *filp) ++{ ++ module_put(filp->private_data); ++ return 0; ++} ++ ++static ssize_t ++extrng_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) ++{ ++ return rcu_dereference_raw(extrng)->extrng_read(buf, nbytes); ++} ++ + const struct file_operations random_fops = { ++ .open = random_open, + .read = random_read, + .write = random_write, + .poll = random_poll, +@@ -1972,6 +2039,7 @@ const struct file_operations random_fops = { + }; + + const struct file_operations urandom_fops = { ++ .open = urandom_open, + .read = urandom_read, + .write = random_write, + .unlocked_ioctl = random_ioctl, +@@ -1980,9 +2048,31 @@ const struct file_operations urandom_fops = { + .llseek = noop_llseek, + }; + ++static const struct file_operations extrng_random_fops = { ++ .open = random_open, ++ .read = extrng_read, ++ .write = random_write, ++ .poll = extrng_poll, ++ .unlocked_ioctl = random_ioctl, ++ .fasync = random_fasync, ++ .llseek = noop_llseek, ++ .release = extrng_release, ++}; ++ ++static const struct file_operations extrng_urandom_fops = { ++ .open = urandom_open, ++ .read = extrng_read, ++ .write = random_write, ++ .unlocked_ioctl = random_ioctl, ++ .fasync = random_fasync, ++ .llseek = noop_llseek, ++ .release = extrng_release, ++}; ++ + SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, + unsigned int, flags) + { ++ const struct random_extrng *rng; + int ret; + + if (flags & ~(GRND_NONBLOCK|GRND_RANDOM|GRND_INSECURE)) +@@ -1998,6 +2088,18 @@ SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, + if (count > INT_MAX) + count = INT_MAX; + ++ rcu_read_lock(); ++ rng = rcu_dereference(extrng); ++ if (rng && !try_module_get(rng->owner)) ++ rng = NULL; ++ rcu_read_unlock(); ++ ++ if (rng) { ++ ret = rng->extrng_read(buf, count); ++ module_put(rng->owner); ++ return ret; ++ } ++ + if (!(flags & GRND_INSECURE) && !crng_ready()) { + if (flags & GRND_NONBLOCK) + return -EAGAIN; +@@ -2303,3 +2405,16 @@ void add_bootloader_randomness(const void *buf, unsigned int size) + add_device_randomness(buf, size); + } + EXPORT_SYMBOL_GPL(add_bootloader_randomness); ++ ++void random_register_extrng(const struct random_extrng *rng) ++{ ++ rcu_assign_pointer(extrng, rng); ++} ++EXPORT_SYMBOL_GPL(random_register_extrng); ++ ++void random_unregister_extrng(void) ++{ ++ RCU_INIT_POINTER(extrng, NULL); ++ synchronize_rcu(); ++} ++EXPORT_SYMBOL_GPL(random_unregister_extrng); +diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile +index 467e94259679..9b6f5b8e5397 100644 +--- a/drivers/firmware/efi/Makefile ++++ b/drivers/firmware/efi/Makefile +@@ -28,6 +28,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_map.o + obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o + obj-$(CONFIG_EFI_TEST) += test/ + obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o ++obj-$(CONFIG_EFI) += secureboot.o + obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o + obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o + obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index 847f33ffc4ae..363037f8eaf8 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + +@@ -841,40 +842,101 @@ int efi_mem_type(unsigned long phys_addr) + } + #endif + ++struct efi_error_code { ++ efi_status_t status; ++ int errno; ++ const char *description; ++}; ++ ++static const struct efi_error_code efi_error_codes[] = { ++ { EFI_SUCCESS, 0, "Success"}, ++#if 0 ++ { EFI_LOAD_ERROR, -EPICK_AN_ERRNO, "Load Error"}, ++#endif ++ { EFI_INVALID_PARAMETER, -EINVAL, "Invalid Parameter"}, ++ { EFI_UNSUPPORTED, -ENOSYS, "Unsupported"}, ++ { EFI_BAD_BUFFER_SIZE, -ENOSPC, "Bad Buffer Size"}, ++ { EFI_BUFFER_TOO_SMALL, -ENOSPC, "Buffer Too Small"}, ++ { EFI_NOT_READY, -EAGAIN, "Not Ready"}, ++ { EFI_DEVICE_ERROR, -EIO, "Device Error"}, ++ { EFI_WRITE_PROTECTED, -EROFS, "Write Protected"}, ++ { EFI_OUT_OF_RESOURCES, -ENOMEM, "Out of Resources"}, ++#if 0 ++ { EFI_VOLUME_CORRUPTED, -EPICK_AN_ERRNO, "Volume Corrupt"}, ++ { EFI_VOLUME_FULL, -EPICK_AN_ERRNO, "Volume Full"}, ++ { EFI_NO_MEDIA, -EPICK_AN_ERRNO, "No Media"}, ++ { EFI_MEDIA_CHANGED, -EPICK_AN_ERRNO, "Media changed"}, ++#endif ++ { EFI_NOT_FOUND, -ENOENT, "Not Found"}, ++#if 0 ++ { EFI_ACCESS_DENIED, -EPICK_AN_ERRNO, "Access Denied"}, ++ { EFI_NO_RESPONSE, -EPICK_AN_ERRNO, "No Response"}, ++ { EFI_NO_MAPPING, -EPICK_AN_ERRNO, "No mapping"}, ++ { EFI_TIMEOUT, -EPICK_AN_ERRNO, "Time out"}, ++ { EFI_NOT_STARTED, -EPICK_AN_ERRNO, "Not started"}, ++ { EFI_ALREADY_STARTED, -EPICK_AN_ERRNO, "Already started"}, ++#endif ++ { EFI_ABORTED, -EINTR, "Aborted"}, ++#if 0 ++ { EFI_ICMP_ERROR, -EPICK_AN_ERRNO, "ICMP Error"}, ++ { EFI_TFTP_ERROR, -EPICK_AN_ERRNO, "TFTP Error"}, ++ { EFI_PROTOCOL_ERROR, -EPICK_AN_ERRNO, "Protocol Error"}, ++ { EFI_INCOMPATIBLE_VERSION, -EPICK_AN_ERRNO, "Incompatible Version"}, ++#endif ++ { EFI_SECURITY_VIOLATION, -EACCES, "Security Policy Violation"}, ++#if 0 ++ { EFI_CRC_ERROR, -EPICK_AN_ERRNO, "CRC Error"}, ++ { EFI_END_OF_MEDIA, -EPICK_AN_ERRNO, "End of Media"}, ++ { EFI_END_OF_FILE, -EPICK_AN_ERRNO, "End of File"}, ++ { EFI_INVALID_LANGUAGE, -EPICK_AN_ERRNO, "Invalid Languages"}, ++ { EFI_COMPROMISED_DATA, -EPICK_AN_ERRNO, "Compromised Data"}, ++ ++ // warnings ++ { EFI_WARN_UNKOWN_GLYPH, -EPICK_AN_ERRNO, "Warning Unknown Glyph"}, ++ { EFI_WARN_DELETE_FAILURE, -EPICK_AN_ERRNO, "Warning Delete Failure"}, ++ { EFI_WARN_WRITE_FAILURE, -EPICK_AN_ERRNO, "Warning Write Failure"}, ++ { EFI_WARN_BUFFER_TOO_SMALL, -EPICK_AN_ERRNO, "Warning Buffer Too Small"}, ++#endif ++}; ++ ++static int ++efi_status_cmp_bsearch(const void *key, const void *item) ++{ ++ u64 status = (u64)(uintptr_t)key; ++ struct efi_error_code *code = (struct efi_error_code *)item; ++ ++ if (status < code->status) ++ return -1; ++ if (status > code->status) ++ return 1; ++ return 0; ++} ++ + int efi_status_to_err(efi_status_t status) + { +- int err; +- +- switch (status) { +- case EFI_SUCCESS: +- err = 0; +- break; +- case EFI_INVALID_PARAMETER: +- err = -EINVAL; +- break; +- case EFI_OUT_OF_RESOURCES: +- err = -ENOSPC; +- break; +- case EFI_DEVICE_ERROR: +- err = -EIO; +- break; +- case EFI_WRITE_PROTECTED: +- err = -EROFS; +- break; +- case EFI_SECURITY_VIOLATION: +- err = -EACCES; +- break; +- case EFI_NOT_FOUND: +- err = -ENOENT; +- break; +- case EFI_ABORTED: +- err = -EINTR; +- break; +- default: +- err = -EINVAL; +- } ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); + +- return err; ++ found = bsearch((void *)(uintptr_t)status, efi_error_codes, ++ sizeof(struct efi_error_code), num, ++ efi_status_cmp_bsearch); ++ if (!found) ++ return -EINVAL; ++ return found->errno; ++} ++ ++const char * ++efi_status_to_str(efi_status_t status) ++{ ++ struct efi_error_code *found; ++ size_t num = sizeof(efi_error_codes) / sizeof(struct efi_error_code); ++ ++ found = bsearch((void *)(uintptr_t)status, efi_error_codes, ++ sizeof(struct efi_error_code), num, ++ efi_status_cmp_bsearch); ++ if (!found) ++ return "Unknown error code"; ++ return found->description; + } + + static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock); +diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c +new file mode 100644 +index 000000000000..de0a3714a5d4 +--- /dev/null ++++ b/drivers/firmware/efi/secureboot.c +@@ -0,0 +1,38 @@ ++/* Core kernel secure boot support. ++ * ++ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. ++ * Written by David Howells (dhowells@redhat.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public Licence ++ * as published by the Free Software Foundation; either version ++ * 2 of the Licence, or (at your option) any later version. ++ */ ++ ++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt ++ ++#include ++#include ++#include ++ ++/* ++ * Decide what to do when UEFI secure boot mode is enabled. ++ */ ++void __init efi_set_secure_boot(enum efi_secureboot_mode mode) ++{ ++ if (efi_enabled(EFI_BOOT)) { ++ switch (mode) { ++ case efi_secureboot_mode_disabled: ++ pr_info("Secure boot disabled\n"); ++ break; ++ case efi_secureboot_mode_enabled: ++ set_bit(EFI_SECURE_BOOT, &efi.flags); ++ pr_info("Secure boot enabled\n"); ++ break; ++ default: ++ pr_warn("Secure boot could not be determined (mode %u)\n", ++ mode); ++ break; ++ } ++ } ++} +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index 311eee599ce9..2460c6bd46f8 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -322,19 +322,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) + { + struct rmi_data *hdata = hid_get_drvdata(hdev); + struct rmi_device *rmi_dev = hdata->xport.rmi_dev; +- unsigned long flags; + + if (!(test_bit(RMI_STARTED, &hdata->flags))) + return 0; + +- local_irq_save(flags); +- + rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); + +- generic_handle_irq(hdata->rmi_irq); +- +- local_irq_restore(flags); +- + return 1; + } + +@@ -591,56 +584,6 @@ static const struct rmi_transport_ops hid_rmi_ops = { + .reset = rmi_hid_reset, + }; + +-static void rmi_irq_teardown(void *data) +-{ +- struct rmi_data *hdata = data; +- struct irq_domain *domain = hdata->domain; +- +- if (!domain) +- return; +- +- irq_dispose_mapping(irq_find_mapping(domain, 0)); +- +- irq_domain_remove(domain); +- hdata->domain = NULL; +- hdata->rmi_irq = 0; +-} +- +-static int rmi_irq_map(struct irq_domain *h, unsigned int virq, +- irq_hw_number_t hw_irq_num) +-{ +- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq); +- +- return 0; +-} +- +-static const struct irq_domain_ops rmi_irq_ops = { +- .map = rmi_irq_map, +-}; +- +-static int rmi_setup_irq_domain(struct hid_device *hdev) +-{ +- struct rmi_data *hdata = hid_get_drvdata(hdev); +- int ret; +- +- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1, +- &rmi_irq_ops, hdata); +- if (!hdata->domain) +- return -ENOMEM; +- +- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata); +- if (ret) +- return ret; +- +- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0); +- if (hdata->rmi_irq <= 0) { +- hid_err(hdev, "Can't allocate an IRQ\n"); +- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO; +- } +- +- return 0; +-} +- + static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + { + struct rmi_data *data = NULL; +@@ -713,18 +656,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) + + mutex_init(&data->page_mutex); + +- ret = rmi_setup_irq_domain(hdev); +- if (ret) { +- hid_err(hdev, "failed to allocate IRQ domain\n"); +- return ret; +- } +- + if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS) + rmi_hid_pdata.gpio_data.disable = true; + + data->xport.dev = hdev->dev.parent; + data->xport.pdata = rmi_hid_pdata; +- data->xport.pdata.irq = data->rmi_irq; + data->xport.proto_name = "hid"; + data->xport.ops = &hid_rmi_ops; + +diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c +index da27cd4a3c38..5404b4c407c5 100644 +--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c ++++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2071,6 +2072,16 @@ static const struct amba_id etm4_ids[] = { + {}, + }; + ++static const struct dmi_system_id broken_coresight[] = { ++ { ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "HPE"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Apollo 70"), ++ }, ++ }, ++ { } /* terminating entry */ ++}; ++ + MODULE_DEVICE_TABLE(amba, etm4_ids); + + static struct amba_driver etm4x_amba_driver = { +@@ -2104,6 +2115,11 @@ static int __init etm4x_init(void) + { + int ret; + ++ if (dmi_check_system(broken_coresight)) { ++ pr_info("ETM4 disabled due to firmware bug\n"); ++ return 0; ++ } ++ + ret = etm4_pm_setup(); + + /* etm4_pm_setup() does its own cleanup - exit on error */ +@@ -2130,6 +2146,9 @@ static int __init etm4x_init(void) + + static void __exit etm4x_exit(void) + { ++ if (dmi_check_system(broken_coresight)) ++ return; ++ + amba_driver_unregister(&etm4x_amba_driver); + platform_driver_unregister(&etm4_platform_driver); + etm4_pm_clear(); +diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c +index 258d5fe3d395..f7298e3dc8f3 100644 +--- a/drivers/input/rmi4/rmi_driver.c ++++ b/drivers/input/rmi4/rmi_driver.c +@@ -182,34 +182,47 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status, + attn_data.data = fifo_data; + + kfifo_put(&drvdata->attn_fifo, attn_data); ++ ++ schedule_work(&drvdata->attn_work); + } + EXPORT_SYMBOL_GPL(rmi_set_attn_data); + +-static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++static void attn_callback(struct work_struct *work) + { +- struct rmi_device *rmi_dev = dev_id; +- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev); ++ struct rmi_driver_data *drvdata = container_of(work, ++ struct rmi_driver_data, ++ attn_work); + struct rmi4_attn_data attn_data = {0}; + int ret, count; + + count = kfifo_get(&drvdata->attn_fifo, &attn_data); +- if (count) { +- *(drvdata->irq_status) = attn_data.irq_status; +- drvdata->attn_data = attn_data; +- } ++ if (!count) ++ return; + +- ret = rmi_process_interrupt_requests(rmi_dev); ++ *(drvdata->irq_status) = attn_data.irq_status; ++ drvdata->attn_data = attn_data; ++ ++ ret = rmi_process_interrupt_requests(drvdata->rmi_dev); + if (ret) +- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev, + "Failed to process interrupt request: %d\n", ret); + +- if (count) { +- kfree(attn_data.data); +- drvdata->attn_data.data = NULL; +- } ++ kfree(attn_data.data); ++ drvdata->attn_data.data = NULL; + + if (!kfifo_is_empty(&drvdata->attn_fifo)) +- return rmi_irq_fn(irq, dev_id); ++ schedule_work(&drvdata->attn_work); ++} ++ ++static irqreturn_t rmi_irq_fn(int irq, void *dev_id) ++{ ++ struct rmi_device *rmi_dev = dev_id; ++ int ret; ++ ++ ret = rmi_process_interrupt_requests(rmi_dev); ++ if (ret) ++ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev, ++ "Failed to process interrupt request: %d\n", ret); + + return IRQ_HANDLED; + } +@@ -217,7 +230,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id) + static int rmi_irq_init(struct rmi_device *rmi_dev) + { + struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev); +- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev); + int irq_flags = irq_get_trigger_type(pdata->irq); + int ret; + +@@ -235,8 +247,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev) + return ret; + } + +- data->enabled = true; +- + return 0; + } + +@@ -886,23 +896,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake) + if (data->enabled) + goto out; + +- enable_irq(irq); +- data->enabled = true; +- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = disable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to disable irq for wake: %d\n", +- retval); +- } ++ if (irq) { ++ enable_irq(irq); ++ data->enabled = true; ++ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = disable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to disable irq for wake: %d\n", ++ retval); ++ } + +- /* +- * Call rmi_process_interrupt_requests() after enabling irq, +- * otherwise we may lose interrupt on edge-triggered systems. +- */ +- irq_flags = irq_get_trigger_type(pdata->irq); +- if (irq_flags & IRQ_TYPE_EDGE_BOTH) +- rmi_process_interrupt_requests(rmi_dev); ++ /* ++ * Call rmi_process_interrupt_requests() after enabling irq, ++ * otherwise we may lose interrupt on edge-triggered systems. ++ */ ++ irq_flags = irq_get_trigger_type(pdata->irq); ++ if (irq_flags & IRQ_TYPE_EDGE_BOTH) ++ rmi_process_interrupt_requests(rmi_dev); ++ } else { ++ data->enabled = true; ++ } + + out: + mutex_unlock(&data->enabled_mutex); +@@ -922,20 +936,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake) + goto out; + + data->enabled = false; +- disable_irq(irq); +- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { +- retval = enable_irq_wake(irq); +- if (retval) +- dev_warn(&rmi_dev->dev, +- "Failed to enable irq for wake: %d\n", +- retval); +- } +- +- /* make sure the fifo is clean */ +- while (!kfifo_is_empty(&data->attn_fifo)) { +- count = kfifo_get(&data->attn_fifo, &attn_data); +- if (count) +- kfree(attn_data.data); ++ if (irq) { ++ disable_irq(irq); ++ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) { ++ retval = enable_irq_wake(irq); ++ if (retval) ++ dev_warn(&rmi_dev->dev, ++ "Failed to enable irq for wake: %d\n", ++ retval); ++ } ++ } else { ++ /* make sure the fifo is clean */ ++ while (!kfifo_is_empty(&data->attn_fifo)) { ++ count = kfifo_get(&data->attn_fifo, &attn_data); ++ if (count) ++ kfree(attn_data.data); ++ } + } + + out: +@@ -981,6 +997,8 @@ static int rmi_driver_remove(struct device *dev) + irq_domain_remove(data->irqdomain); + data->irqdomain = NULL; + ++ cancel_work_sync(&data->attn_work); ++ + rmi_f34_remove_sysfs(rmi_dev); + rmi_free_function_list(rmi_dev); + +@@ -1219,9 +1237,15 @@ static int rmi_driver_probe(struct device *dev) + } + } + +- retval = rmi_irq_init(rmi_dev); +- if (retval < 0) +- goto err_destroy_functions; ++ if (pdata->irq) { ++ retval = rmi_irq_init(rmi_dev); ++ if (retval < 0) ++ goto err_destroy_functions; ++ } ++ ++ data->enabled = true; ++ ++ INIT_WORK(&data->attn_work, attn_callback); + + if (data->f01_container->dev.driver) { + /* Driver already bound, so enable ATTN now. */ +diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c +index 63f0af10c403..195be16dbd39 100644 +--- a/drivers/iommu/iommu.c ++++ b/drivers/iommu/iommu.c +@@ -7,6 +7,7 @@ + #define pr_fmt(fmt) "iommu: " fmt + + #include ++#include + #include + #include + #include +@@ -3039,6 +3040,27 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) + } + EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); + ++#ifdef CONFIG_ARM64 ++static int __init iommu_quirks(void) ++{ ++ const char *vendor, *name; ++ ++ vendor = dmi_get_system_info(DMI_SYS_VENDOR); ++ name = dmi_get_system_info(DMI_PRODUCT_NAME); ++ ++ if (vendor && ++ (strncmp(vendor, "GIGABYTE", 8) == 0 && name && ++ (strncmp(name, "R120", 4) == 0 || ++ strncmp(name, "R270", 4) == 0))) { ++ pr_warn("Gigabyte %s detected, force iommu passthrough mode", name); ++ iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; ++ } ++ ++ return 0; ++} ++arch_initcall(iommu_quirks); ++#endif ++ + /* + * Changes the default domain of an iommu group that has *only* one device + * +diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c +index 85285ba8e817..b8109517c4ef 100644 +--- a/drivers/message/fusion/mptsas.c ++++ b/drivers/message/fusion/mptsas.c +@@ -5318,6 +5318,11 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) + ioc, MPI_SAS_OP_CLEAR_ALL_PERSISTENT); + } + ++#ifdef CONFIG_RHEL_DIFFERENCES ++ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK); ++ pr_warn("MPTSAS MODULE IS NOT SUPPORTED\n"); ++#endif ++ + error = scsi_add_host(sh, &ioc->pcidev->dev); + if (error) { + dprintk(ioc, printk(MYIOC_s_ERR_FMT +@@ -5381,6 +5386,10 @@ static void mptsas_remove(struct pci_dev *pdev) + } + + static struct pci_device_id mptsas_pci_table[] = { ++#ifdef CONFIG_RHEL_DIFFERENCES ++ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068, ++ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID }, ++#else + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1064, + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068, +@@ -5393,6 +5402,7 @@ static struct pci_device_id mptsas_pci_table[] = { + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_SAS1068_820XELP, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + {0} /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(pci, mptsas_pci_table); +diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c +index af0ce5611e4a..1c226920c12d 100644 +--- a/drivers/message/fusion/mptspi.c ++++ b/drivers/message/fusion/mptspi.c +@@ -1238,12 +1238,17 @@ static struct spi_function_template mptspi_transport_functions = { + */ + + static struct pci_device_id mptspi_pci_table[] = { ++#ifdef CONFIG_RHEL_DIFFERENCES ++ { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, ++ PCI_VENDOR_ID_VMWARE, PCI_ANY_ID }, ++#else + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1030, + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_ATTO, MPI_MANUFACTPAGE_DEVID_53C1030, + PCI_ANY_ID, PCI_ANY_ID }, + { PCI_VENDOR_ID_LSI_LOGIC, MPI_MANUFACTPAGE_DEVID_53C1035, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + {0} /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(pci, mptspi_pci_table); +@@ -1534,6 +1539,12 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) + 0, 0, 0, 0, 5); + + scsi_scan_host(sh); ++ ++#ifdef CONFIG_RHEL_DIFFERENCES ++ add_taint(TAINT_SUPPORT_REMOVED, LOCKDEP_STILL_OK); ++ pr_warn("MPTSPI MODULE IS NOT SUPPORTED\n"); ++#endif ++ + return 0; + + out_mptspi_probe: +diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c +index dd7917cab2b1..f6b43adb2ced 100644 +--- a/drivers/net/team/team.c ++++ b/drivers/net/team/team.c +@@ -3045,6 +3045,8 @@ static int __init team_module_init(void) + if (err) + goto err_nl_init; + ++ mark_hardware_deprecated(DRV_NAME); ++ + return 0; + + err_nl_init: +diff --git a/drivers/net/wireguard/main.c b/drivers/net/wireguard/main.c +index 75dbe77b0b4b..029ff8576f8e 100644 +--- a/drivers/net/wireguard/main.c ++++ b/drivers/net/wireguard/main.c +@@ -12,6 +12,7 @@ + + #include + ++#include + #include + #include + #include +@@ -21,6 +22,11 @@ static int __init mod_init(void) + { + int ret; + ++#ifdef CONFIG_RHEL_DIFFERENCES ++ if (fips_enabled) ++ return -EOPNOTSUPP; ++#endif ++ + ret = wg_allowedips_slab_init(); + if (ret < 0) + goto err_allowedips; +@@ -48,6 +54,7 @@ static int __init mod_init(void) + pr_info("WireGuard " WIREGUARD_VERSION " loaded. See www.wireguard.com for information.\n"); + pr_info("Copyright (C) 2015-2019 Jason A. Donenfeld . All Rights Reserved.\n"); + ++ mark_tech_preview("WireGuard", THIS_MODULE); + return 0; + + err_netlink: +diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c +index 8679a108f571..0875e3578088 100644 +--- a/drivers/nvme/host/core.c ++++ b/drivers/nvme/host/core.c +@@ -261,6 +261,9 @@ static void nvme_delete_ctrl_sync(struct nvme_ctrl *ctrl) + + static blk_status_t nvme_error_status(u16 status) + { ++ if (unlikely(status & NVME_SC_DNR)) ++ return BLK_STS_TARGET; ++ + switch (status & 0x7ff) { + case NVME_SC_SUCCESS: + return BLK_STS_OK; +@@ -320,6 +323,7 @@ enum nvme_disposition { + COMPLETE, + RETRY, + FAILOVER, ++ FAILUP, + }; + + static inline enum nvme_disposition nvme_decide_disposition(struct request *req) +@@ -327,15 +331,16 @@ static inline enum nvme_disposition nvme_decide_disposition(struct request *req) + if (likely(nvme_req(req)->status == 0)) + return COMPLETE; + +- if (blk_noretry_request(req) || ++ if ((req->cmd_flags & (REQ_FAILFAST_DEV | REQ_FAILFAST_DRIVER)) || + (nvme_req(req)->status & NVME_SC_DNR) || + nvme_req(req)->retries >= nvme_max_retries) + return COMPLETE; + +- if (req->cmd_flags & REQ_NVME_MPATH) { ++ if (req->cmd_flags & (REQ_NVME_MPATH | REQ_FAILFAST_TRANSPORT)) { + if (nvme_is_path_error(nvme_req(req)->status) || + blk_queue_dying(req->q)) +- return FAILOVER; ++ return (req->cmd_flags & REQ_NVME_MPATH) ? ++ FAILOVER : FAILUP; + } else { + if (blk_queue_dying(req->q)) + return COMPLETE; +@@ -357,6 +362,14 @@ static inline void nvme_end_req(struct request *req) + blk_mq_end_request(req, status); + } + ++static inline void nvme_failup_req(struct request *req) ++{ ++ nvme_update_ana(req); ++ ++ nvme_req(req)->status = NVME_SC_HOST_PATH_ERROR; ++ nvme_end_req(req); ++} ++ + void nvme_complete_rq(struct request *req) + { + trace_nvme_complete_rq(req); +@@ -375,6 +388,9 @@ void nvme_complete_rq(struct request *req) + case FAILOVER: + nvme_failover_req(req); + return; ++ case FAILUP: ++ nvme_failup_req(req); ++ return; + } + } + EXPORT_SYMBOL_GPL(nvme_complete_rq); +diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c +index 37ce3e8b1db2..00a3e40026cf 100644 +--- a/drivers/nvme/host/multipath.c ++++ b/drivers/nvme/host/multipath.c +@@ -65,14 +65,10 @@ bool nvme_mpath_set_disk_name(struct nvme_ns *ns, char *disk_name, int *flags) + return true; + } + +-void nvme_failover_req(struct request *req) ++void nvme_update_ana(struct request *req) + { + struct nvme_ns *ns = req->q->queuedata; + u16 status = nvme_req(req)->status & 0x7ff; +- unsigned long flags; +- struct bio *bio; +- +- nvme_mpath_clear_current_path(ns); + + /* + * If we got back an ANA error, we know the controller is alive but not +@@ -83,6 +79,16 @@ void nvme_failover_req(struct request *req) + set_bit(NVME_NS_ANA_PENDING, &ns->flags); + queue_work(nvme_wq, &ns->ctrl->ana_work); + } ++} ++ ++void nvme_failover_req(struct request *req) ++{ ++ struct nvme_ns *ns = req->q->queuedata; ++ unsigned long flags; ++ struct bio *bio; ++ ++ nvme_mpath_clear_current_path(ns); ++ nvme_update_ana(req); + + spin_lock_irqsave(&ns->head->requeue_lock, flags); + for (bio = req->bio; bio; bio = bio->bi_next) +@@ -796,8 +802,7 @@ int nvme_mpath_init_identify(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) + int error = 0; + + /* check if multipath is enabled and we have the capability */ +- if (!multipath || !ctrl->subsys || +- !(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)) ++ if (!ctrl->subsys || !(ctrl->subsys->cmic & NVME_CTRL_CMIC_ANA)) + return 0; + + if (!ctrl->max_namespaces || +diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h +index a2e1f298b217..87fb7efca59b 100644 +--- a/drivers/nvme/host/nvme.h ++++ b/drivers/nvme/host/nvme.h +@@ -739,6 +739,7 @@ void nvme_mpath_wait_freeze(struct nvme_subsystem *subsys); + void nvme_mpath_start_freeze(struct nvme_subsystem *subsys); + bool nvme_mpath_set_disk_name(struct nvme_ns *ns, char *disk_name, int *flags); + void nvme_failover_req(struct request *req); ++void nvme_update_ana(struct request *req); + void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl); + int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl,struct nvme_ns_head *head); + void nvme_mpath_add_disk(struct nvme_ns *ns, struct nvme_id_ns *id); +@@ -776,6 +777,9 @@ static inline bool nvme_mpath_set_disk_name(struct nvme_ns *ns, char *disk_name, + static inline void nvme_failover_req(struct request *req) + { + } ++static inline void nvme_update_ana(struct request *req) ++{ ++} + static inline void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl) + { + } +diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c +index 3a72352aa5cf..47b11f3c7fce 100644 +--- a/drivers/pci/pci-driver.c ++++ b/drivers/pci/pci-driver.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include "pci.h" + #include "pcie/portdrv.h" +@@ -281,6 +282,34 @@ static struct attribute *pci_drv_attrs[] = { + }; + ATTRIBUTE_GROUPS(pci_drv); + ++/** ++ * pci_hw_vendor_status - Tell if a PCI device is supported by the HW vendor ++ * @ids: array of PCI device id structures to search in ++ * @dev: the PCI device structure to match against ++ * ++ * Used by a driver to check whether this device is in its list of unsupported ++ * devices. Returns the matching pci_device_id structure or %NULL if there is ++ * no match. ++ * ++ * Reserved for Internal Red Hat use only. ++ */ ++const struct pci_device_id *pci_hw_vendor_status( ++ const struct pci_device_id *ids, ++ struct pci_dev *dev) ++{ ++ char devinfo[64]; ++ const struct pci_device_id *ret = pci_match_id(ids, dev); ++ ++ if (ret) { ++ snprintf(devinfo, sizeof(devinfo), "%s %s", ++ dev_driver_string(&dev->dev), dev_name(&dev->dev)); ++ mark_hardware_deprecated(devinfo); ++ } ++ ++ return ret; ++} ++EXPORT_SYMBOL(pci_hw_vendor_status); ++ + struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index ab3de1551b50..7bc8ebb58d35 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -4231,6 +4231,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, + quirk_bridge_cavm_thrx2_pcie_root); + ++/* ++ * PCI BAR 5 is not setup correctly for the on-board AHCI controller ++ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by ++ * using BAR 4's resources which are populated correctly and NOT ++ * actually used by the AHCI controller. ++ */ ++static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) ++{ ++ struct resource *r = &dev->resource[4]; ++ ++ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) ++ return; ++ ++ /* Set BAR5 resource to BAR4 */ ++ dev->resource[5] = *r; ++ ++ /* Update BAR5 in pci config space */ ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); ++ ++ /* Clear BAR4's resource */ ++ memset(r, 0, sizeof(*r)); ++} ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); ++ + /* + * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) + * class code. Fix it. +diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c +index 3168915adaa7..71b48e29b708 100644 +--- a/drivers/scsi/aacraid/linit.c ++++ b/drivers/scsi/aacraid/linit.c +@@ -78,6 +78,7 @@ char aac_driver_version[] = AAC_DRIVER_FULL_VERSION; + * Note: The last field is used to index into aac_drivers below. + */ + static const struct pci_device_id aac_pci_tbl[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */ + { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */ + { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */ +@@ -145,6 +146,7 @@ static const struct pci_device_id aac_pci_tbl[] = { + { 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */ + { 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */ + { 0x9005, 0x0288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 61 }, /* Adaptec NEMER/ARK Catch All */ ++#endif + { 0x9005, 0x028b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 62 }, /* Adaptec PMC Series 6 (Tupelo) */ + { 0x9005, 0x028c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 63 }, /* Adaptec PMC Series 7 (Denali) */ + { 0x9005, 0x028d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 64 }, /* Adaptec PMC Series 8 */ +diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c +index e70f69f791db..dc54f0321fab 100644 +--- a/drivers/scsi/be2iscsi/be_main.c ++++ b/drivers/scsi/be2iscsi/be_main.c +@@ -369,11 +369,13 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc) + + /*------------------- PCI Driver operations and data ----------------- */ + static const struct pci_device_id beiscsi_pci_id_table[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) }, + { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID2) }, + { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) }, + { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) }, + { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID3) }, ++#endif + { PCI_DEVICE(ELX_VENDOR_ID, OC_SKH_ID1) }, + { 0 } + }; +diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c +index f135a10f582b..99b17b05cab1 100644 +--- a/drivers/scsi/hpsa.c ++++ b/drivers/scsi/hpsa.c +@@ -82,7 +82,9 @@ MODULE_DESCRIPTION("Driver for HP Smart Array Controller version " \ + HPSA_DRIVER_VERSION); + MODULE_VERSION(HPSA_DRIVER_VERSION); + MODULE_LICENSE("GPL"); ++#ifndef CONFIG_RHEL_DIFFERENCES + MODULE_ALIAS("cciss"); ++#endif + + static int hpsa_simple_mode; + module_param(hpsa_simple_mode, int, S_IRUGO|S_IWUSR); +@@ -144,10 +146,12 @@ static const struct pci_device_id hpsa_pci_device_id[] = { + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x007D}, + {PCI_VENDOR_ID_HP_3PAR, 0x0075, 0x1590, 0x0088}, + {PCI_VENDOR_ID_HP, 0x333f, 0x103c, 0x333f}, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, + {PCI_VENDOR_ID_COMPAQ, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, ++#endif + {0,} + }; + +diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h +index d48414e295a0..ba0e384412c9 100644 +--- a/drivers/scsi/lpfc/lpfc_ids.h ++++ b/drivers/scsi/lpfc/lpfc_ids.h +@@ -24,6 +24,7 @@ + #include + + const struct pci_device_id lpfc_id_table[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_VIPER, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FIREFLY, +@@ -54,14 +55,19 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HORNET, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP, +@@ -70,6 +76,7 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_TFLY, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP101, +@@ -80,6 +87,7 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID, +@@ -92,6 +100,7 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_VF, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PROTEUS_PF, +@@ -102,18 +111,23 @@ const struct pci_device_id lpfc_id_table[] = { + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_SERVERENGINE, PCI_DEVICE_ID_TOMCAT, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_FALCON, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BALIUS, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC, + PCI_ANY_ID, PCI_ANY_ID, }, ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FC_VF, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE_VF, + PCI_ANY_ID, PCI_ANY_ID, }, ++#endif + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G6_FC, + PCI_ANY_ID, PCI_ANY_ID, }, + {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G7_FC, +diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c +index ec10b2497310..5066d52a1fdb 100644 +--- a/drivers/scsi/megaraid/megaraid_sas_base.c ++++ b/drivers/scsi/megaraid/megaraid_sas_base.c +@@ -149,6 +149,7 @@ megasas_set_ld_removed_by_fw(struct megasas_instance *instance); + */ + static struct pci_device_id megasas_pci_table[] = { + ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1064R)}, + /* xscale IOP */ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078R)}, +@@ -157,16 +158,19 @@ static struct pci_device_id megasas_pci_table[] = { + /* ppc IOP */ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS1078GEN2)}, + /* gen2*/ ++#endif + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0079GEN2)}, + /* gen2*/ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0073SKINNY)}, + /* skinny*/ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_SAS0071SKINNY)}, + /* skinny*/ ++#ifndef CONFIG_RHEL_DIFFERENCES + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_VERDE_ZCR)}, + /* xscale IOP, vega */ + {PCI_DEVICE(PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DELL_PERC5)}, + /* xscale IOP */ ++#endif + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_FUSION)}, + /* Fusion */ + {PCI_DEVICE(PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_LSI_PLASMA)}, +diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c +index 8e64a6f14542..f8a28b42e547 100644 +--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c ++++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c +@@ -12480,6 +12480,7 @@ bool scsih_ncq_prio_supp(struct scsi_device *sdev) + * The pci device ids are defined in mpi/mpi2_cnfg.h. + */ + static const struct pci_device_id mpt3sas_pci_table[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + /* Spitfire ~ 2004 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2004, + PCI_ANY_ID, PCI_ANY_ID }, +@@ -12498,6 +12499,7 @@ static const struct pci_device_id mpt3sas_pci_table[] = { + PCI_ANY_ID, PCI_ANY_ID }, + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2116_2, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + /* Thunderbolt ~ 2208 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_1, + PCI_ANY_ID, PCI_ANY_ID }, +@@ -12522,9 +12524,11 @@ static const struct pci_device_id mpt3sas_pci_table[] = { + PCI_ANY_ID, PCI_ANY_ID }, + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SWITCH_MPI_EP_1, + PCI_ANY_ID, PCI_ANY_ID }, ++#ifndef CONFIG_RHEL_DIFFERENCES + /* SSS6200 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SSS6200, + PCI_ANY_ID, PCI_ANY_ID }, ++#endif + /* Fury ~ 3004 and 3008 */ + { MPI2_MFGPAGE_VENDORID_LSI, MPI25_MFGPAGE_DEVID_SAS3004, + PCI_ANY_ID, PCI_ANY_ID }, +diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c +index cedd558f65eb..d2534cd5559f 100644 +--- a/drivers/scsi/qla2xxx/qla_os.c ++++ b/drivers/scsi/qla2xxx/qla_os.c +@@ -7811,6 +7811,7 @@ static const struct pci_error_handlers qla2xxx_err_handler = { + }; + + static struct pci_device_id qla2xxx_pci_tbl[] = { ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2100) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2200) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2300) }, +@@ -7823,13 +7824,18 @@ static struct pci_device_id qla2xxx_pci_tbl[] = { + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8432) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5422) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP5432) }, ++#endif + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2532) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2031) }, ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8001) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8021) }, ++#endif + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8031) }, ++#ifndef CONFIG_RHEL_DIFFERENCES + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISPF001) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP8044) }, ++#endif + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2071) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2271) }, + { PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2261) }, +diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c +index 6ee7ea4c27e0..31814931620a 100644 +--- a/drivers/scsi/qla4xxx/ql4_os.c ++++ b/drivers/scsi/qla4xxx/ql4_os.c +@@ -9855,6 +9855,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = { + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, ++#ifndef CONFIG_RHEL_DIFFERENCES + { + .vendor = PCI_VENDOR_ID_QLOGIC, + .device = PCI_DEVICE_ID_QLOGIC_ISP8022, +@@ -9873,6 +9874,7 @@ static struct pci_device_id qla4xxx_pci_tbl[] = { + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, ++#endif + {0, 0}, + }; + MODULE_DEVICE_TABLE(pci, qla4xxx_pci_tbl); +diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c +index 86658a81d284..5647f4756e97 100644 +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -5657,6 +5657,13 @@ static void hub_event(struct work_struct *work) + (u16) hub->change_bits[0], + (u16) hub->event_bits[0]); + ++ /* Don't disconnect USB-SATA on TrimSlice */ ++ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) { ++ if ((hdev->state == 7) && (hub->change_bits[0] == 0) && ++ (hub->event_bits[0] == 0x2)) ++ hub->event_bits[0] = 0; ++ } ++ + /* Lock the device, then check to see if we were + * disconnected while waiting for the lock to succeed. */ + usb_lock_device(hdev); +diff --git a/fs/ext4/super.c b/fs/ext4/super.c +index d6df62fc810c..5c7b1ac47ff4 100644 +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -4436,6 +4436,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) + set_bit(EXT4_FLAGS_BDEV_IS_DAX, &sbi->s_ext4_flags); + + if (sbi->s_mount_opt & EXT4_MOUNT_DAX_ALWAYS) { ++ static bool printed = false; + if (ext4_has_feature_inline_data(sb)) { + ext4_msg(sb, KERN_ERR, "Cannot use DAX on a filesystem" + " that may contain inline data"); +@@ -4446,6 +4447,10 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) + "DAX unsupported by block device."); + goto failed_mount; + } ++ if (!printed) { ++ mark_tech_preview("ext4 direct access (dax)", NULL); ++ printed = true; ++ } + } + + if (ext4_has_feature_encrypt(sb) && es->s_encryption_level) { +diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c +index 102cbd606633..c5bdd4fae954 100644 +--- a/fs/xfs/xfs_super.c ++++ b/fs/xfs/xfs_super.c +@@ -1537,12 +1537,9 @@ xfs_fs_fill_super( + if (XFS_SB_VERSION_NUM(&mp->m_sb) == XFS_SB_VERSION_5) + sb->s_flags |= SB_I_VERSION; + +- if (xfs_sb_version_hasbigtime(&mp->m_sb)) +- xfs_warn(mp, +- "EXPERIMENTAL big timestamp feature in use. Use at your own risk!"); +- + if (mp->m_flags & XFS_MOUNT_DAX_ALWAYS) { + bool rtdev_is_dax = false, datadev_is_dax; ++ static bool printed = false; + + xfs_warn(mp, + "DAX enabled. Warning: EXPERIMENTAL, use at your own risk"); +@@ -1563,6 +1560,10 @@ xfs_fs_fill_super( + error = -EINVAL; + goto out_filestream_unmount; + } ++ if (!printed) { ++ mark_tech_preview("xfs direct access (dax)", NULL); ++ printed = true; ++ } + } + + if (mp->m_flags & XFS_MOUNT_DISCARD) { +@@ -1596,10 +1597,6 @@ xfs_fs_fill_super( + goto out_filestream_unmount; + } + +- if (xfs_sb_version_hasinobtcounts(&mp->m_sb)) +- xfs_warn(mp, +- "EXPERIMENTAL inode btree counters feature in use. Use at your own risk!"); +- + error = xfs_mountfs(mp); + if (error) + goto out_filestream_unmount; +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 6b5d36babfcc..fd4a5d66a9d0 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -43,6 +43,8 @@ + #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) + #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) + ++#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) ++ + typedef unsigned long efi_status_t; + typedef u8 efi_bool_t; + typedef u16 efi_char16_t; /* UNICODE character */ +@@ -782,6 +784,14 @@ extern int __init efi_setup_pcdp_console(char *); + #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ + #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ + #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ ++#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ ++ ++enum efi_secureboot_mode { ++ efi_secureboot_mode_unset, ++ efi_secureboot_mode_unknown, ++ efi_secureboot_mode_disabled, ++ efi_secureboot_mode_enabled, ++}; + + #ifdef CONFIG_EFI + /* +@@ -793,6 +803,8 @@ static inline bool efi_enabled(int feature) + } + extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + ++extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); ++ + bool __pure __efi_soft_reserve_enabled(void); + + static inline bool __pure efi_soft_reserve_enabled(void) +@@ -813,6 +825,8 @@ static inline bool efi_enabled(int feature) + static inline void + efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} + ++static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} ++ + static inline bool efi_soft_reserve_enabled(void) + { + return false; +@@ -825,6 +839,7 @@ static inline bool efi_rt_services_supported(unsigned int mask) + #endif + + extern int efi_status_to_err(efi_status_t status); ++extern const char *efi_status_to_str(efi_status_t status); + + /* + * Variable Attributes +@@ -1077,13 +1092,6 @@ static inline bool efi_runtime_disabled(void) { return true; } + extern void efi_call_virt_check_flags(unsigned long flags, const char *call); + extern unsigned long efi_call_virt_save_flags(void); + +-enum efi_secureboot_mode { +- efi_secureboot_mode_unset, +- efi_secureboot_mode_unknown, +- efi_secureboot_mode_disabled, +- efi_secureboot_mode_enabled, +-}; +- + static inline + enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) + { +diff --git a/include/linux/kernel.h b/include/linux/kernel.h +index 1b2f0a7e00d6..bfbf97662e1e 100644 +--- a/include/linux/kernel.h ++++ b/include/linux/kernel.h +@@ -530,4 +530,19 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } + /* OTHER_WRITABLE? Generally considered a bad idea. */ \ + BUILD_BUG_ON_ZERO((perms) & 2) + \ + (perms)) ++ ++struct module; ++ ++#ifdef CONFIG_RHEL_DIFFERENCES ++void mark_hardware_unsupported(const char *msg); ++void mark_hardware_deprecated(const char *msg); ++void mark_tech_preview(const char *msg, struct module *mod); ++void mark_driver_unsupported(const char *name); ++#else ++static inline void mark_hardware_unsupported(const char *msg) { } ++static inline void mark_hardware_deprecated(const char *msg) { } ++static inline void mark_tech_preview(const char *msg, struct module *mod) { } ++static inline void mark_driver_unsupported(const char *name) { } ++#endif ++ + #endif +diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h +index 2adeea44c0d5..517013ece679 100644 +--- a/include/linux/lsm_hook_defs.h ++++ b/include/linux/lsm_hook_defs.h +@@ -394,6 +394,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) + #endif /* CONFIG_BPF_SYSCALL */ + + LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) ++LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) ++ + + #ifdef CONFIG_PERF_EVENTS + LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) +diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h +index 5c4c5c0602cb..753b53038690 100644 +--- a/include/linux/lsm_hooks.h ++++ b/include/linux/lsm_hooks.h +@@ -1545,6 +1545,12 @@ + * + * @what: kernel feature being accessed + * ++ * @lock_kernel_down ++ * Put the kernel into lock-down mode. ++ * ++ * @where: Where the lock-down is originating from (e.g. command line option) ++ * @level: The lock-down level (can only increase) ++ * + * Security hooks for perf events + * + * @perf_event_open: +diff --git a/include/linux/module.h b/include/linux/module.h +index 8a298d820dbc..b71215412e59 100644 +--- a/include/linux/module.h ++++ b/include/linux/module.h +@@ -380,6 +380,7 @@ struct module { + struct module_attribute *modinfo_attrs; + const char *version; + const char *srcversion; ++ const char *rhelversion; + struct kobject *holders_dir; + + /* Exported symbols */ +diff --git a/include/linux/panic.h b/include/linux/panic.h +index f5844908a089..901d51012738 100644 +--- a/include/linux/panic.h ++++ b/include/linux/panic.h +@@ -74,7 +74,24 @@ static inline void set_arch_panic_timeout(int timeout, int arch_default_timeout) + #define TAINT_LIVEPATCH 15 + #define TAINT_AUX 16 + #define TAINT_RANDSTRUCT 17 +-#define TAINT_FLAGS_COUNT 18 ++/* Start of Red Hat-specific taint flags */ ++#define TAINT_18 18 ++#define TAINT_19 19 ++#define TAINT_20 20 ++#define TAINT_21 21 ++#define TAINT_22 22 ++#define TAINT_23 23 ++#define TAINT_24 24 ++#define TAINT_25 25 ++#define TAINT_26 26 ++#define TAINT_SUPPORT_REMOVED 27 ++/* Bits 28 - 31 are reserved for Red Hat use only */ ++#define TAINT_RESERVED28 28 ++#define TAINT_RESERVED29 29 ++#define TAINT_RESERVED30 30 ++#define TAINT_UNPRIVILEGED_BPF 31 ++/* End of Red Hat-specific taint flags */ ++#define TAINT_FLAGS_COUNT 32 + #define TAINT_FLAGS_MAX ((1UL << TAINT_FLAGS_COUNT) - 1) + + struct taint_flag { +diff --git a/include/linux/pci.h b/include/linux/pci.h +index 540b377ca8f6..eb21f6dfb846 100644 +--- a/include/linux/pci.h ++++ b/include/linux/pci.h +@@ -1433,6 +1433,10 @@ int pci_add_dynid(struct pci_driver *drv, + unsigned long driver_data); + const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, + struct pci_dev *dev); ++/* Reserved for Internal Red Hat use only */ ++const struct pci_device_id *pci_hw_vendor_status( ++ const struct pci_device_id *ids, ++ struct pci_dev *dev); + int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, + int pass); + +diff --git a/include/linux/random.h b/include/linux/random.h +index f45b8be3e3c4..7ccdec68b789 100644 +--- a/include/linux/random.h ++++ b/include/linux/random.h +@@ -14,6 +14,11 @@ + + #include + ++struct random_extrng { ++ ssize_t (*extrng_read)(void __user *buf, size_t buflen); ++ struct module *owner; ++}; ++ + struct random_ready_callback { + struct list_head list; + void (*func)(struct random_ready_callback *rdy); +@@ -44,6 +49,8 @@ extern bool rng_is_initialized(void); + extern int add_random_ready_callback(struct random_ready_callback *rdy); + extern void del_random_ready_callback(struct random_ready_callback *rdy); + extern int __must_check get_random_bytes_arch(void *buf, int nbytes); ++void random_register_extrng(const struct random_extrng *rng); ++void random_unregister_extrng(void); + + #ifndef MODULE + extern const struct file_operations random_fops, urandom_fops; +diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h +new file mode 100644 +index 000000000000..ea9c136bf884 +--- /dev/null ++++ b/include/linux/rh_kabi.h +@@ -0,0 +1,297 @@ ++/* ++ * rh_kabi.h - Red Hat kABI abstraction header ++ * ++ * Copyright (c) 2014 Don Zickus ++ * Copyright (c) 2015-2018 Jiri Benc ++ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa ++ * Copyright (c) 2016-2018 Prarit Bhargava ++ * Copyright (c) 2017 Paolo Abeni, Larry Woodman ++ * ++ * This file is released under the GPLv2. ++ * See the file COPYING for more details. ++ * ++ * These kabi macros hide the changes from the kabi checker and from the ++ * process that computes the exported symbols' checksums. ++ * They have 2 variants: one (defined under __GENKSYMS__) used when ++ * generating the checksums, and the other used when building the kernel's ++ * binaries. ++ * ++ * The use of these macros does not guarantee that the usage and modification ++ * of code is correct. As with all Red Hat only changes, an engineer must ++ * explain why the use of the macro is valid in the patch containing the ++ * changes. ++ * ++ */ ++ ++#ifndef _LINUX_RH_KABI_H ++#define _LINUX_RH_KABI_H ++ ++#include ++#include ++ ++/* ++ * RH_KABI_CONST ++ * Adds a new const modifier to a function parameter preserving the old ++ * checksum. ++ * ++ * RH_KABI_DEPRECATE ++ * Mark the element as deprecated and make it unusable by modules while ++ * preserving kABI checksums. ++ * ++ * RH_KABI_DEPRECATE_FN ++ * Mark the function pointer as deprecated and make it unusable by modules ++ * while preserving kABI checksums. ++ * ++ * RH_KABI_EXTEND ++ * Simple macro for adding a new element to a struct. ++ * ++ * RH_KABI_EXTEND_WITH_SIZE ++ * Adds a new element (usually a struct) to a struct and reserves extra ++ * space for the new element. The provided 'size' is the total space to ++ * be added in longs (i.e. it's 8 * 'size' bytes), including the size of ++ * the added element. It is automatically checked that the new element ++ * does not overflow the reserved space, now nor in the future. However, ++ * no attempt is done to check the content of the added element (struct) ++ * for kABI conformance - kABI checking inside the added element is ++ * effectively switched off. ++ * For any struct being added by RH_KABI_EXTEND_WITH_SIZE, it is ++ * recommended its content to be documented as not covered by kABI ++ * guarantee. ++ * ++ * RH_KABI_FILL_HOLE ++ * Simple macro for filling a hole in a struct. ++ * ++ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify. ++ * ++ * RH_KABI_RENAME ++ * Simple macro for renaming an element without changing its type. This ++ * macro can be used in bitfields, for example. ++ * ++ * NOTE: does not include the final ';' ++ * ++ * RH_KABI_REPLACE ++ * Simple replacement of _orig with a union of _orig and _new. ++ * ++ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new' ++ * element while preserving size alignment with the '_orig' element. ++ * ++ * The #ifdef __GENKSYMS__ preserves the kABI agreement, while the anonymous ++ * union structure preserves the size alignment (assuming the '_new' element ++ * is not bigger than the '_orig' element). ++ * ++ * RH_KABI_REPLACE_UNSAFE ++ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs. ++ * ++ * RH_KABI_FORCE_CHANGE ++ * Force change of the symbol checksum. The argument of the macro is a ++ * version for cases we need to do this more than once. ++ * ++ * This macro does the opposite: it changes the symbol checksum without ++ * actually changing anything about the exported symbol. It is useful for ++ * symbols that are not whitelisted, we're changing them in an ++ * incompatible way and want to prevent 3rd party modules to silently ++ * corrupt memory. Instead, by changing the symbol checksum, such modules ++ * won't be loaded by the kernel. This macro should only be used as a ++ * last resort when all other KABI workarounds have failed. ++ * ++ * RH_KABI_EXCLUDE ++ * !!! WARNING: DANGEROUS, DO NOT USE unless you are aware of all the !!! ++ * !!! implications. This should be used ONLY EXCEPTIONALLY and only !!! ++ * !!! under specific circumstances. Very likely, this macro does not !!! ++ * !!! do what you expect it to do. Note that any usage of this macro !!! ++ * !!! MUST be paired with a RH_KABI_FORCE_CHANGE annotation of !!! ++ * !!! a suitable symbol (or an equivalent safeguard) and the commit !!! ++ * !!! log MUST explain why the chosen solution is appropriate. !!! ++ * ++ * Exclude the element from checksum generation. Any such element is ++ * considered not to be part of the kABI whitelist and may be changed at ++ * will. Note however that it's the responsibility of the developer ++ * changing the element to ensure 3rd party drivers using this element ++ * won't panic, for example by not allowing them to be loaded. That can ++ * be achieved by changing another, non-whitelisted symbol they use, ++ * either by nature of the change or by using RH_KABI_FORCE_CHANGE. ++ * ++ * Also note that any change to the element must preserve its size. Change ++ * of the size is not allowed and would constitute a silent kABI breakage. ++ * Beware that the RH_KABI_EXCLUDE macro does not do any size checks. ++ * ++ * NOTE ++ * Don't use ';' after these macros as it messes up the kABI checker by ++ * changing what the resulting token string looks like. Instead let this ++ * macro add the ';' so it can be properly hidden from the kABI checker ++ * (mainly for RH_KABI_EXTEND, but applied to all macros for uniformity). ++ * ++ */ ++#ifdef __GENKSYMS__ ++ ++# define RH_KABI_CONST ++# define RH_KABI_EXTEND(_new) ++# define RH_KABI_FILL_HOLE(_new) ++# define RH_KABI_FORCE_CHANGE(ver) __attribute__((rh_kabi_change ## ver)) ++# define RH_KABI_RENAME(_orig, _new) _orig ++ ++# define _RH_KABI_DEPRECATE(_type, _orig) _type _orig ++# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args) ++# define _RH_KABI_REPLACE(_orig, _new) _orig ++# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig ++# define _RH_KABI_EXCLUDE(_elem) ++ ++#else ++ ++# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging." ++ ++# define RH_KABI_CONST const ++# define RH_KABI_EXTEND(_new) _new; ++# define RH_KABI_FILL_HOLE(_new) _new; ++# define RH_KABI_FORCE_CHANGE(ver) ++# define RH_KABI_RENAME(_orig, _new) _new ++ ++ ++#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS) ++# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \ ++ union { \ ++ _Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}), \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_new) " is larger than " __stringify(_orig) RH_KABI_ALIGN_WARNING); \ ++ _Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \ ++ } ++# define __RH_KABI_CHECK_SIZE(_item, _size) \ ++ _Static_assert(sizeof(struct{_item;}) <= _size, \ ++ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_item) " is larger than the reserved size (" __stringify(_size) " bytes)" RH_KABI_ALIGN_WARNING) ++#else ++# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) ++# define __RH_KABI_CHECK_SIZE(_item, _size) ++#endif ++ ++#define RH_KABI_UNIQUE_ID __PASTE(rh_kabi_hidden_, __LINE__) ++ ++# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig ++# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ ++ _type (* rh_reserved_##_orig)(_args) ++# define _RH_KABI_REPLACE(_orig, _new) \ ++ union { \ ++ _new; \ ++ struct { \ ++ _orig; \ ++ } RH_KABI_UNIQUE_ID; \ ++ __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \ ++ } ++# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new ++ ++# define _RH_KABI_EXCLUDE(_elem) _elem ++ ++#endif /* __GENKSYMS__ */ ++ ++/* semicolon added wrappers for the RH_KABI_REPLACE macros */ ++# define RH_KABI_DEPRECATE(_type, _orig) _RH_KABI_DEPRECATE(_type, _orig); ++# define RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \ ++ _RH_KABI_DEPRECATE_FN(_type, _orig, _args); ++# define RH_KABI_REPLACE(_orig, _new) _RH_KABI_REPLACE(_orig, _new); ++# define RH_KABI_REPLACE_UNSAFE(_orig, _new) _RH_KABI_REPLACE_UNSAFE(_orig, _new); ++/* ++ * Macro for breaking up a random element into two smaller chunks using an ++ * anonymous struct inside an anonymous union. ++ */ ++# define RH_KABI_REPLACE2(orig, _new1, _new2) RH_KABI_REPLACE(orig, struct{ _new1; _new2;}) ++ ++# define RH_KABI_RESERVE(n) _RH_KABI_RESERVE(n); ++/* ++ * Simple wrappers to replace standard Red Hat reserved elements. ++ */ ++# define RH_KABI_USE(n, _new) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), _new) ++/* ++ * Macros for breaking up a reserved element into two smaller chunks using ++ * an anonymous struct inside an anonymous union. ++ */ ++# define RH_KABI_USE2(n, _new1, _new2) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), struct{ _new1; _new2; }) ++ ++/* ++ * We tried to standardize on Red Hat reserved names. These wrappers ++ * leverage those common names making it easier to read and find in the ++ * code. ++ */ ++# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n ++ ++#define RH_KABI_EXCLUDE(_elem) _RH_KABI_EXCLUDE(_elem); ++ ++/* ++ * Extending a struct while reserving extra space. ++ */ ++#define RH_KABI_EXTEND_WITH_SIZE(_new, _size) \ ++ RH_KABI_EXTEND(union { \ ++ _new; \ ++ unsigned long RH_KABI_UNIQUE_ID[_size]; \ ++ __RH_KABI_CHECK_SIZE(_new, 8 * (_size)); \ ++ }) ++ ++/* ++ * RHEL macros to extend structs. ++ * ++ * base struct: The struct being extended. For example, pci_dev. ++ * extended struct: The Red Hat struct being added to the base struct. ++ * For example, pci_dev_rh. ++ * ++ * These macros should be used to extend structs before KABI freeze. ++ * They can be used post-KABI freeze in the limited case of the base ++ * struct not being embedded in another struct. ++ * ++ * Extended structs cannot be shrunk in size as changes will break ++ * the size & offset comparison. ++ * ++ * Extended struct elements are not guaranteed for access by modules unless ++ * explicitly commented as such in the declaration of the extended struct or ++ * the element in the extended struct. ++ */ ++ ++/* ++ * RH_KABI_SIZE_AND_EXTEND|_PTR() extends a struct by embedding or adding ++ * a pointer in a base struct. The name of the new struct is the name ++ * of the base struct appended with _rh. ++ */ ++#define _RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \ ++ size_t _struct##_size_rh; \ ++ RH_KABI_EXCLUDE(struct _struct##_rh *_struct##_rh) ++#define RH_KABI_SIZE_AND_EXTEND_PTR(_struct) \ ++ _RH_KABI_SIZE_AND_EXTEND_PTR(_struct) ++ ++#define _RH_KABI_SIZE_AND_EXTEND(_struct) \ ++ size_t _struct##_size_rh; \ ++ RH_KABI_EXCLUDE(struct _struct##_rh _struct##_rh) ++#define RH_KABI_SIZE_AND_EXTEND(_struct) \ ++ _RH_KABI_SIZE_AND_EXTEND(_struct) ++ ++/* ++ * RH_KABI_SET_SIZE calculates and sets the size of the extended struct and ++ * stores it in the size_rh field for structs that are dynamically allocated. ++ * This macro MUST be called when expanding a base struct with ++ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the allocation site ++ * regardless of being allocated in the kernel or a module. ++ * Note: since this macro is intended to be invoked outside of a struct, ++ * a semicolon is necessary at the end of the line where it is invoked. ++ */ ++#define RH_KABI_SET_SIZE(_name, _struct) ({ \ ++ _name->_struct##_size_rh = sizeof(struct _struct##_rh); \ ++}) ++ ++/* ++ * RH_KABI_INIT_SIZE calculates and sets the size of the extended struct and ++ * stores it in the size_rh field for structs that are statically allocated. ++ * This macro MUST be called when expanding a base struct with ++ * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the declaration site ++ * regardless of being allocated in the kernel or a module. ++ */ ++#define RH_KABI_INIT_SIZE(_struct) \ ++ ._struct##_size_rh = sizeof(struct _struct##_rh), ++ ++/* ++ * RH_KABI_CHECK_EXT verifies allocated memory exists. This MUST be called to ++ * verify that memory in the _rh struct is valid, and can be called ++ * regardless if RH_KABI_SIZE_AND_EXTEND or RH_KABI_SIZE_AND_EXTEND_PTR is ++ * used. ++ */ ++#define RH_KABI_CHECK_EXT(_ptr, _struct, _field) ({ \ ++ size_t __off = offsetof(struct _struct##_rh, _field); \ ++ _ptr->_struct##_size_rh > __off ? true : false; \ ++}) ++ ++#endif /* _LINUX_RH_KABI_H */ +diff --git a/include/linux/rmi.h b/include/linux/rmi.h +index ab7eea01ab42..fff7c5f737fc 100644 +--- a/include/linux/rmi.h ++++ b/include/linux/rmi.h +@@ -364,6 +364,7 @@ struct rmi_driver_data { + + struct rmi4_attn_data attn_data; + DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16); ++ struct work_struct attn_work; + }; + + int rmi_register_transport_device(struct rmi_transport_dev *xport); +diff --git a/include/linux/security.h b/include/linux/security.h +index 5b7288521300..f966f591c91e 100644 +--- a/include/linux/security.h ++++ b/include/linux/security.h +@@ -472,6 +472,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); + int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); + int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); + int security_locked_down(enum lockdown_reason what); ++int security_lock_kernel_down(const char *where, enum lockdown_reason level); + #else /* CONFIG_SECURITY */ + + static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) +@@ -1348,6 +1349,10 @@ static inline int security_locked_down(enum lockdown_reason what) + { + return 0; + } ++static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return 0; ++} + #endif /* CONFIG_SECURITY */ + + #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) +diff --git a/init/Kconfig b/init/Kconfig +index 55f9f7738ebb..564553afb251 100644 +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -1625,7 +1625,7 @@ config AIO + this option saves about 7k. + + config IO_URING +- bool "Enable IO uring support" if EXPERT ++ bool "Enable IO uring support" + select IO_WQ + default y + help +diff --git a/kernel/Makefile b/kernel/Makefile +index 4df609be42d0..4ef0c0f6a8f4 100644 +--- a/kernel/Makefile ++++ b/kernel/Makefile +@@ -12,6 +12,7 @@ obj-y = fork.o exec_domain.o panic.o \ + notifier.o ksysfs.o cred.o reboot.o \ + async.o range.o smpboot.o ucount.o regset.o + ++obj-$(CONFIG_RHEL_DIFFERENCES) += rh_taint.o + obj-$(CONFIG_USERMODE_DRIVER) += usermode_driver.o + obj-$(CONFIG_MODULES) += kmod.o + obj-$(CONFIG_MULTIUSER) += groups.o +diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c +index e343f158e556..b2c979f9b80e 100644 +--- a/kernel/bpf/syscall.c ++++ b/kernel/bpf/syscall.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -50,6 +51,23 @@ static DEFINE_SPINLOCK(map_idr_lock); + static DEFINE_IDR(link_idr); + static DEFINE_SPINLOCK(link_idr_lock); + ++static int __init unprivileged_bpf_setup(char *str) ++{ ++ unsigned long disabled; ++ if (!kstrtoul(str, 0, &disabled)) ++ sysctl_unprivileged_bpf_disabled = !!disabled; ++ ++ if (!sysctl_unprivileged_bpf_disabled) { ++ pr_warn("Unprivileged BPF has been enabled " ++ "(unprivileged_bpf_disabled=0 has been supplied " ++ "in boot parameters), tainting the kernel"); ++ add_taint(TAINT_UNPRIVILEGED_BPF, LOCKDEP_STILL_OK); ++ } ++ ++ return 1; ++} ++__setup("unprivileged_bpf_disabled=", unprivileged_bpf_setup); ++ + int sysctl_unprivileged_bpf_disabled __read_mostly = + IS_BUILTIN(CONFIG_BPF_UNPRIV_DEFAULT_OFF) ? 2 : 0; + +diff --git a/kernel/module.c b/kernel/module.c +index ed13917ea5f3..88643913f3e4 100644 +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -743,6 +743,7 @@ static struct module_attribute modinfo_##field = { \ + + MODINFO_ATTR(version); + MODINFO_ATTR(srcversion); ++MODINFO_ATTR(rhelversion); + + static char last_unloaded_module[MODULE_NAME_LEN+1]; + +@@ -1206,6 +1207,7 @@ static struct module_attribute *modinfo_attrs[] = { + &module_uevent, + &modinfo_version, + &modinfo_srcversion, ++ &modinfo_rhelversion, + &modinfo_initstate, + &modinfo_coresize, + &modinfo_initsize, +diff --git a/kernel/module_signing.c b/kernel/module_signing.c +index 8723ae70ea1f..fb2d773498c2 100644 +--- a/kernel/module_signing.c ++++ b/kernel/module_signing.c +@@ -38,8 +38,15 @@ int mod_verify_sig(const void *mod, struct load_info *info) + modlen -= sig_len + sizeof(ms); + info->len = modlen; + +- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, ++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, + VERIFY_USE_SECONDARY_KEYRING, + VERIFYING_MODULE_SIGNATURE, + NULL, NULL); ++ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { ++ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, ++ VERIFY_USE_PLATFORM_KEYRING, ++ VERIFYING_MODULE_SIGNATURE, ++ NULL, NULL); ++ } ++ return ret; + } +diff --git a/kernel/panic.c b/kernel/panic.c +index edad89660a2b..71a5a1cf6235 100644 +--- a/kernel/panic.c ++++ b/kernel/panic.c +@@ -387,6 +387,20 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = { + [ TAINT_LIVEPATCH ] = { 'K', ' ', true }, + [ TAINT_AUX ] = { 'X', ' ', true }, + [ TAINT_RANDSTRUCT ] = { 'T', ' ', true }, ++ [ TAINT_18 ] = { '?', '-', false }, ++ [ TAINT_19 ] = { '?', '-', false }, ++ [ TAINT_20 ] = { '?', '-', false }, ++ [ TAINT_21 ] = { '?', '-', false }, ++ [ TAINT_22 ] = { '?', '-', false }, ++ [ TAINT_23 ] = { '?', '-', false }, ++ [ TAINT_24 ] = { '?', '-', false }, ++ [ TAINT_25 ] = { '?', '-', false }, ++ [ TAINT_26 ] = { '?', '-', false }, ++ [ TAINT_SUPPORT_REMOVED ] = { 'h', ' ', false }, ++ [ TAINT_RESERVED28 ] = { '?', '-', false }, ++ [ TAINT_RESERVED29 ] = { '?', '-', false }, ++ [ TAINT_RESERVED30 ] = { '?', '-', false }, ++ [ TAINT_UNPRIVILEGED_BPF ] = { 'u', ' ', false }, + }; + + /** +diff --git a/kernel/rh_taint.c b/kernel/rh_taint.c +new file mode 100644 +index 000000000000..4050b6dead75 +--- /dev/null ++++ b/kernel/rh_taint.c +@@ -0,0 +1,93 @@ ++#include ++#include ++ ++/* ++ * The following functions are used by Red Hat to indicate to users that ++ * hardware and drivers are unsupported, or have limited support in RHEL major ++ * and minor releases. These functions output loud warning messages to the end ++ * user and should be USED WITH CAUTION. ++ * ++ * Any use of these functions _MUST_ be documented in the RHEL Release Notes, ++ * and have approval of management. ++ */ ++ ++/** ++ * mark_hardware_unsupported() - Mark hardware, class, or type as unsupported. ++ * @msg: Hardware name, class, or type ++ * ++ * Called to mark a device, class of devices, or types of devices as not having ++ * support in any RHEL minor release. This does not TAINT the kernel. Red Hat ++ * will not fix bugs against this hardware in this minor release. Red Hat may ++ * declare support in a future major or minor update release. This cannot be ++ * used to mark drivers unsupported. ++ */ ++void mark_hardware_unsupported(const char *msg) ++{ ++ /* Print one single message */ ++ pr_crit("Warning: %s - this hardware has not undergone testing by Red Hat and might not be certified. Please consult https://catalog.redhat.com for certified hardware.\n", msg); ++} ++EXPORT_SYMBOL(mark_hardware_unsupported); ++ ++/** ++ * mark_hardware_deprecated() - Mark hardware, class, or type as deprecated. ++ * @msg: Hardware name, class, or type ++ * ++ * Called to minimize the support status of a previously supported device in ++ * a minor release. This does not TAINT the kernel. Marking hardware ++ * deprecated is usually done in conjunction with the hardware vendor. Future ++ * RHEL major releases may not include this driver. Driver updates and fixes ++ * for this device will be limited to critical issues in future minor releases. ++ */ ++void mark_hardware_deprecated(const char *msg) ++{ ++ pr_crit("Warning: %s - this hardware is not recommended for new deployments. It continues to be supported in this RHEL release, but it is likely to be removed in the next major release. Driver updates and fixes for this device will be limited to critical issues. Please contact Red Hat Support or your device's hardware vendor for additional information.\n", msg); ++} ++EXPORT_SYMBOL(mark_hardware_deprecated); ++ ++/** ++ * mark_tech_preview() - Mark driver or kernel subsystem as 'Tech Preview' ++ * @msg: Driver or kernel subsystem name ++ * ++ * Called to minimize the support status of a new driver. This does TAINT the ++ * kernel. Calling this function indicates that the driver or subsystem has ++ * had limited testing and is not marked for full support within this RHEL ++ * minor release. The next RHEL minor release may contain full support for ++ * this driver. Red Hat does not guarantee that bugs reported against this ++ * driver or subsystem will be resolved. ++ */ ++void mark_tech_preview(const char *msg, struct module *mod) ++{ ++ const char *str = NULL; ++ ++ if (msg) ++ str = msg; ++#ifdef CONFIG_MODULES ++ else if (mod && mod->name) ++ str = mod->name; ++#endif ++ ++ pr_warn("TECH PREVIEW: %s may not be fully supported.\n" ++ "Please review provided documentation for limitations.\n", ++ (str ? str : "kernel")); ++ add_taint(TAINT_AUX, LOCKDEP_STILL_OK); ++#ifdef CONFIG_MODULES ++ if (mod) ++ mod->taints |= (1U << TAINT_AUX); ++#endif ++} ++EXPORT_SYMBOL(mark_tech_preview); ++ ++/** ++ * mark_driver_unsupported - drivers that we know we don't want to support ++ * @name: the name of the driver ++ * ++ * In some cases Red Hat has chosen to build a driver for internal QE ++ * use. Use this function to mark those drivers as unsupported for ++ * customers. ++ */ ++void mark_driver_unsupported(const char *name) ++{ ++ pr_crit("Warning: %s - This driver has not undergone sufficient testing by Red Hat for this release and therefore cannot be used in production systems.\n", ++ name ? name : "kernel"); ++} ++EXPORT_SYMBOL(mark_driver_unsupported); +diff --git a/kernel/sysctl.c b/kernel/sysctl.c +index 272f4a272f8c..3a5a6455b363 100644 +--- a/kernel/sysctl.c ++++ b/kernel/sysctl.c +@@ -243,6 +243,11 @@ static int bpf_unpriv_handler(struct ctl_table *table, int write, + if (write && !ret) { + if (locked_state && unpriv_enable != 1) + return -EPERM; ++ if (!unpriv_enable) { ++ pr_warn("Unprivileged BPF has been enabled, " ++ "tainting the kernel"); ++ add_taint(TAINT_UNPRIVILEGED_BPF, LOCKDEP_STILL_OK); ++ } + *(int *)table->data = unpriv_enable; + } + return ret; +diff --git a/mm/cma.c b/mm/cma.c +index 995e15480937..588f7e7885cf 100644 +--- a/mm/cma.c ++++ b/mm/cma.c +@@ -125,6 +125,12 @@ static void __init cma_activate_area(struct cma *cma) + spin_lock_init(&cma->mem_head_lock); + #endif + ++#ifdef CONFIG_RHEL_DIFFERENCES ++ /* s390x and ppc64 has been using CMA already in RHEL 8 as default. */ ++ if (!IS_ENABLED(CONFIG_S390) && !IS_ENABLED(CONFIG_PPC64)) ++ mark_tech_preview("CMA", NULL); ++#endif /* CONFIG_RHEL_DIFFERENCES */ ++ + return; + + not_in_zone: +@@ -437,6 +443,10 @@ struct page *cma_alloc(struct cma *cma, unsigned long count, + if (!cma || !cma->count || !cma->bitmap) + goto out; + ++#ifdef CONFIG_RHEL_DIFFERENCES ++ pr_info_once("Initial CMA usage detected\n"); ++#endif /* CONFIG_RHEL_DIFFERENCES */ ++ + pr_debug("%s(cma %p, count %lu, align %d)\n", __func__, (void *)cma, + count, align); + +diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c +index 270a7df898e2..ac41f848b8a2 100644 +--- a/scripts/mod/modpost.c ++++ b/scripts/mod/modpost.c +@@ -20,6 +20,7 @@ + #include + #include "modpost.h" + #include "../../include/linux/license.h" ++#include "../../include/generated/uapi/linux/version.h" + + /* Are we using CONFIG_MODVERSIONS? */ + static int modversions = 0; +@@ -2342,6 +2343,12 @@ static void write_buf(struct buffer *b, const char *fname) + } + } + ++static void add_rhelversion(struct buffer *b, struct module *mod) ++{ ++ buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR, ++ RHEL_MINOR); ++} ++ + static void write_if_changed(struct buffer *b, const char *fname) + { + char *tmp; +@@ -2571,6 +2578,7 @@ int main(int argc, char **argv) + add_depends(&buf, mod); + add_moddevtable(&buf, mod); + add_srcversion(&buf, mod); ++ add_rhelversion(&buf, mod); + + sprintf(fname, "%s.mod.c", mod->name); + write_if_changed(&buf, fname); +diff --git a/scripts/tags.sh b/scripts/tags.sh +index db8ba411860a..2294fb0f17a9 100755 +--- a/scripts/tags.sh ++++ b/scripts/tags.sh +@@ -16,6 +16,8 @@ fi + ignore="$(echo "$RCS_FIND_IGNORE" | sed 's|\\||g' )" + # tags and cscope files should also ignore MODVERSION *.mod.c files + ignore="$ignore ( -name *.mod.c ) -prune -o" ++# RHEL tags and cscope should also ignore redhat/rpm ++ignore="$ignore ( -path redhat/rpm ) -prune -o" + + # Use make KBUILD_ABS_SRCTREE=1 {tags|cscope} + # to force full paths for a non-O= build +diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c +index f290f78c3f30..d3e7ae04f5be 100644 +--- a/security/integrity/platform_certs/load_uefi.c ++++ b/security/integrity/platform_certs/load_uefi.c +@@ -46,7 +46,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, + return NULL; + + if (*status != EFI_BUFFER_TOO_SMALL) { +- pr_err("Couldn't get size: 0x%lx\n", *status); ++ pr_err("Couldn't get size: %s (0x%lx)\n", ++ efi_status_to_str(*status), *status); + return NULL; + } + +@@ -57,7 +58,8 @@ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, + *status = efi.get_variable(name, guid, NULL, &lsize, db); + if (*status != EFI_SUCCESS) { + kfree(db); +- pr_err("Error reading db var: 0x%lx\n", *status); ++ pr_err("Error reading db var: %s (0x%lx)\n", ++ efi_status_to_str(*status), *status); + return NULL; + } + +diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig +index e84ddf484010..d0501353a4b9 100644 +--- a/security/lockdown/Kconfig ++++ b/security/lockdown/Kconfig +@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY + subsystem is fully initialised. If enabled, lockdown will + unconditionally be called before any other LSMs. + ++config LOCK_DOWN_IN_EFI_SECURE_BOOT ++ bool "Lock down the kernel in EFI Secure Boot mode" ++ default n ++ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY ++ help ++ UEFI Secure Boot provides a mechanism for ensuring that the firmware ++ will only load signed bootloaders and kernels. Secure boot mode may ++ be determined from EFI variables provided by the system firmware if ++ not indicated by the boot parameters. ++ ++ Enabling this option results in kernel lockdown being triggered if ++ EFI Secure Boot is set. ++ + choice + prompt "Kernel default lockdown mode" + default LOCK_DOWN_KERNEL_FORCE_NONE +diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c +index 87cbdc64d272..18555cf18da7 100644 +--- a/security/lockdown/lockdown.c ++++ b/security/lockdown/lockdown.c +@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what) + + static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = { + LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), ++ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), + }; + + static int __init lockdown_lsm_init(void) +diff --git a/security/security.c b/security/security.c +index 9ffa9e9c5c55..36484cc9842d 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -2599,6 +2599,12 @@ int security_locked_down(enum lockdown_reason what) + } + EXPORT_SYMBOL(security_locked_down); + ++int security_lock_kernel_down(const char *where, enum lockdown_reason level) ++{ ++ return call_int_hook(lock_kernel_down, 0, where, level); ++} ++EXPORT_SYMBOL(security_lock_kernel_down); ++ + #ifdef CONFIG_PERF_EVENTS + int security_perf_event_open(struct perf_event_attr *attr, int type) + { +diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile +index f405b20c1e6c..a8e298a22709 100644 +--- a/tools/testing/selftests/bpf/Makefile ++++ b/tools/testing/selftests/bpf/Makefile +@@ -424,7 +424,6 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ + $(TRUNNER_BPF_OBJS) \ + $(TRUNNER_BPF_SKELS) \ + $(TRUNNER_BPF_LSKELS) \ +- $(TRUNNER_BPF_SKELS_LINKED) \ + $$(BPFOBJ) | $(TRUNNER_OUTPUT) + $$(call msg,TEST-OBJ,$(TRUNNER_BINARY),$$@) + $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -c $(CURDIR)/$$< $$(LDLIBS) -o $$(@F) +diff --git a/tools/testing/selftests/bpf/prog_tests/linked_funcs.c b/tools/testing/selftests/bpf/prog_tests/linked_funcs.c +deleted file mode 100644 +index e9916f2817ec..000000000000 +--- a/tools/testing/selftests/bpf/prog_tests/linked_funcs.c ++++ /dev/null +@@ -1,42 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include +-#include +-#include "linked_funcs.skel.h" +- +-void test_linked_funcs(void) +-{ +- int err; +- struct linked_funcs *skel; +- +- skel = linked_funcs__open(); +- if (!ASSERT_OK_PTR(skel, "skel_open")) +- return; +- +- skel->rodata->my_tid = syscall(SYS_gettid); +- skel->bss->syscall_id = SYS_getpgid; +- +- err = linked_funcs__load(skel); +- if (!ASSERT_OK(err, "skel_load")) +- goto cleanup; +- +- err = linked_funcs__attach(skel); +- if (!ASSERT_OK(err, "skel_attach")) +- goto cleanup; +- +- /* trigger */ +- syscall(SYS_getpgid); +- +- ASSERT_EQ(skel->bss->output_val1, 2000 + 2000, "output_val1"); +- ASSERT_EQ(skel->bss->output_ctx1, SYS_getpgid, "output_ctx1"); +- ASSERT_EQ(skel->bss->output_weak1, 42, "output_weak1"); +- +- ASSERT_EQ(skel->bss->output_val2, 2 * 1000 + 2 * (2 * 1000), "output_val2"); +- ASSERT_EQ(skel->bss->output_ctx2, SYS_getpgid, "output_ctx2"); +- /* output_weak2 should never be updated */ +- ASSERT_EQ(skel->bss->output_weak2, 0, "output_weak2"); +- +-cleanup: +- linked_funcs__destroy(skel); +-} +diff --git a/tools/testing/selftests/bpf/prog_tests/linked_maps.c b/tools/testing/selftests/bpf/prog_tests/linked_maps.c +deleted file mode 100644 +index 85dcaaaf2775..000000000000 +--- a/tools/testing/selftests/bpf/prog_tests/linked_maps.c ++++ /dev/null +@@ -1,30 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include +-#include +-#include "linked_maps.skel.h" +- +-void test_linked_maps(void) +-{ +- int err; +- struct linked_maps *skel; +- +- skel = linked_maps__open_and_load(); +- if (!ASSERT_OK_PTR(skel, "skel_open")) +- return; +- +- err = linked_maps__attach(skel); +- if (!ASSERT_OK(err, "skel_attach")) +- goto cleanup; +- +- /* trigger */ +- syscall(SYS_getpgid); +- +- ASSERT_EQ(skel->bss->output_first1, 2000, "output_first1"); +- ASSERT_EQ(skel->bss->output_second1, 2, "output_second1"); +- ASSERT_EQ(skel->bss->output_weak1, 2, "output_weak1"); +- +-cleanup: +- linked_maps__destroy(skel); +-} +diff --git a/tools/testing/selftests/bpf/prog_tests/linked_vars.c b/tools/testing/selftests/bpf/prog_tests/linked_vars.c +deleted file mode 100644 +index 267166abe4c1..000000000000 +--- a/tools/testing/selftests/bpf/prog_tests/linked_vars.c ++++ /dev/null +@@ -1,43 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include +-#include +-#include "linked_vars.skel.h" +- +-void test_linked_vars(void) +-{ +- int err; +- struct linked_vars *skel; +- +- skel = linked_vars__open(); +- if (!ASSERT_OK_PTR(skel, "skel_open")) +- return; +- +- skel->bss->input_bss1 = 1000; +- skel->bss->input_bss2 = 2000; +- skel->bss->input_bss_weak = 3000; +- +- err = linked_vars__load(skel); +- if (!ASSERT_OK(err, "skel_load")) +- goto cleanup; +- +- err = linked_vars__attach(skel); +- if (!ASSERT_OK(err, "skel_attach")) +- goto cleanup; +- +- /* trigger */ +- syscall(SYS_getpgid); +- +- ASSERT_EQ(skel->bss->output_bss1, 1000 + 2000 + 3000, "output_bss1"); +- ASSERT_EQ(skel->bss->output_bss2, 1000 + 2000 + 3000, "output_bss2"); +- /* 10 comes from "winner" input_data_weak in first obj file */ +- ASSERT_EQ(skel->bss->output_data1, 1 + 2 + 10, "output_bss1"); +- ASSERT_EQ(skel->bss->output_data2, 1 + 2 + 10, "output_bss2"); +- /* 100 comes from "winner" input_rodata_weak in first obj file */ +- ASSERT_EQ(skel->bss->output_rodata1, 11 + 22 + 100, "output_weak1"); +- ASSERT_EQ(skel->bss->output_rodata2, 11 + 22 + 100, "output_weak2"); +- +-cleanup: +- linked_vars__destroy(skel); +-} +diff --git a/tools/testing/selftests/bpf/progs/bpf_cubic.c b/tools/testing/selftests/bpf/progs/bpf_cubic.c +deleted file mode 100644 +index f62df4d023f9..000000000000 +--- a/tools/testing/selftests/bpf/progs/bpf_cubic.c ++++ /dev/null +@@ -1,545 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0-only +- +-/* WARNING: This implemenation is not necessarily the same +- * as the tcp_cubic.c. The purpose is mainly for testing +- * the kernel BPF logic. +- * +- * Highlights: +- * 1. CONFIG_HZ .kconfig map is used. +- * 2. In bictcp_update(), calculation is changed to use usec +- * resolution (i.e. USEC_PER_JIFFY) instead of using jiffies. +- * Thus, usecs_to_jiffies() is not used in the bpf_cubic.c. +- * 3. In bitctcp_update() [under tcp_friendliness], the original +- * "while (ca->ack_cnt > delta)" loop is changed to the equivalent +- * "ca->ack_cnt / delta" operation. +- */ +- +-#include +-#include +-#include +-#include "bpf_tcp_helpers.h" +- +-char _license[] SEC("license") = "GPL"; +- +-#define clamp(val, lo, hi) min((typeof(val))max(val, lo), hi) +- +-#define BICTCP_BETA_SCALE 1024 /* Scale factor beta calculation +- * max_cwnd = snd_cwnd * beta +- */ +-#define BICTCP_HZ 10 /* BIC HZ 2^10 = 1024 */ +- +-/* Two methods of hybrid slow start */ +-#define HYSTART_ACK_TRAIN 0x1 +-#define HYSTART_DELAY 0x2 +- +-/* Number of delay samples for detecting the increase of delay */ +-#define HYSTART_MIN_SAMPLES 8 +-#define HYSTART_DELAY_MIN (4000U) /* 4ms */ +-#define HYSTART_DELAY_MAX (16000U) /* 16 ms */ +-#define HYSTART_DELAY_THRESH(x) clamp(x, HYSTART_DELAY_MIN, HYSTART_DELAY_MAX) +- +-static int fast_convergence = 1; +-static const int beta = 717; /* = 717/1024 (BICTCP_BETA_SCALE) */ +-static int initial_ssthresh; +-static const int bic_scale = 41; +-static int tcp_friendliness = 1; +- +-static int hystart = 1; +-static int hystart_detect = HYSTART_ACK_TRAIN | HYSTART_DELAY; +-static int hystart_low_window = 16; +-static int hystart_ack_delta_us = 2000; +- +-static const __u32 cube_rtt_scale = (bic_scale * 10); /* 1024*c/rtt */ +-static const __u32 beta_scale = 8*(BICTCP_BETA_SCALE+beta) / 3 +- / (BICTCP_BETA_SCALE - beta); +-/* calculate the "K" for (wmax-cwnd) = c/rtt * K^3 +- * so K = cubic_root( (wmax-cwnd)*rtt/c ) +- * the unit of K is bictcp_HZ=2^10, not HZ +- * +- * c = bic_scale >> 10 +- * rtt = 100ms +- * +- * the following code has been designed and tested for +- * cwnd < 1 million packets +- * RTT < 100 seconds +- * HZ < 1,000,00 (corresponding to 10 nano-second) +- */ +- +-/* 1/c * 2^2*bictcp_HZ * srtt, 2^40 */ +-static const __u64 cube_factor = (__u64)(1ull << (10+3*BICTCP_HZ)) +- / (bic_scale * 10); +- +-/* BIC TCP Parameters */ +-struct bictcp { +- __u32 cnt; /* increase cwnd by 1 after ACKs */ +- __u32 last_max_cwnd; /* last maximum snd_cwnd */ +- __u32 last_cwnd; /* the last snd_cwnd */ +- __u32 last_time; /* time when updated last_cwnd */ +- __u32 bic_origin_point;/* origin point of bic function */ +- __u32 bic_K; /* time to origin point +- from the beginning of the current epoch */ +- __u32 delay_min; /* min delay (usec) */ +- __u32 epoch_start; /* beginning of an epoch */ +- __u32 ack_cnt; /* number of acks */ +- __u32 tcp_cwnd; /* estimated tcp cwnd */ +- __u16 unused; +- __u8 sample_cnt; /* number of samples to decide curr_rtt */ +- __u8 found; /* the exit point is found? */ +- __u32 round_start; /* beginning of each round */ +- __u32 end_seq; /* end_seq of the round */ +- __u32 last_ack; /* last time when the ACK spacing is close */ +- __u32 curr_rtt; /* the minimum rtt of current round */ +-}; +- +-static inline void bictcp_reset(struct bictcp *ca) +-{ +- ca->cnt = 0; +- ca->last_max_cwnd = 0; +- ca->last_cwnd = 0; +- ca->last_time = 0; +- ca->bic_origin_point = 0; +- ca->bic_K = 0; +- ca->delay_min = 0; +- ca->epoch_start = 0; +- ca->ack_cnt = 0; +- ca->tcp_cwnd = 0; +- ca->found = 0; +-} +- +-extern unsigned long CONFIG_HZ __kconfig; +-#define HZ CONFIG_HZ +-#define USEC_PER_MSEC 1000UL +-#define USEC_PER_SEC 1000000UL +-#define USEC_PER_JIFFY (USEC_PER_SEC / HZ) +- +-static __always_inline __u64 div64_u64(__u64 dividend, __u64 divisor) +-{ +- return dividend / divisor; +-} +- +-#define div64_ul div64_u64 +- +-#define BITS_PER_U64 (sizeof(__u64) * 8) +-static __always_inline int fls64(__u64 x) +-{ +- int num = BITS_PER_U64 - 1; +- +- if (x == 0) +- return 0; +- +- if (!(x & (~0ull << (BITS_PER_U64-32)))) { +- num -= 32; +- x <<= 32; +- } +- if (!(x & (~0ull << (BITS_PER_U64-16)))) { +- num -= 16; +- x <<= 16; +- } +- if (!(x & (~0ull << (BITS_PER_U64-8)))) { +- num -= 8; +- x <<= 8; +- } +- if (!(x & (~0ull << (BITS_PER_U64-4)))) { +- num -= 4; +- x <<= 4; +- } +- if (!(x & (~0ull << (BITS_PER_U64-2)))) { +- num -= 2; +- x <<= 2; +- } +- if (!(x & (~0ull << (BITS_PER_U64-1)))) +- num -= 1; +- +- return num + 1; +-} +- +-static __always_inline __u32 bictcp_clock_us(const struct sock *sk) +-{ +- return tcp_sk(sk)->tcp_mstamp; +-} +- +-static __always_inline void bictcp_hystart_reset(struct sock *sk) +-{ +- struct tcp_sock *tp = tcp_sk(sk); +- struct bictcp *ca = inet_csk_ca(sk); +- +- ca->round_start = ca->last_ack = bictcp_clock_us(sk); +- ca->end_seq = tp->snd_nxt; +- ca->curr_rtt = ~0U; +- ca->sample_cnt = 0; +-} +- +-/* "struct_ops/" prefix is not a requirement +- * It will be recognized as BPF_PROG_TYPE_STRUCT_OPS +- * as long as it is used in one of the func ptr +- * under SEC(".struct_ops"). +- */ +-SEC("struct_ops/bpf_cubic_init") +-void BPF_PROG(bpf_cubic_init, struct sock *sk) +-{ +- struct bictcp *ca = inet_csk_ca(sk); +- +- bictcp_reset(ca); +- +- if (hystart) +- bictcp_hystart_reset(sk); +- +- if (!hystart && initial_ssthresh) +- tcp_sk(sk)->snd_ssthresh = initial_ssthresh; +-} +- +-/* No prefix in SEC will also work. +- * The remaining tcp-cubic functions have an easier way. +- */ +-SEC("no-sec-prefix-bictcp_cwnd_event") +-void BPF_PROG(bpf_cubic_cwnd_event, struct sock *sk, enum tcp_ca_event event) +-{ +- if (event == CA_EVENT_TX_START) { +- struct bictcp *ca = inet_csk_ca(sk); +- __u32 now = tcp_jiffies32; +- __s32 delta; +- +- delta = now - tcp_sk(sk)->lsndtime; +- +- /* We were application limited (idle) for a while. +- * Shift epoch_start to keep cwnd growth to cubic curve. +- */ +- if (ca->epoch_start && delta > 0) { +- ca->epoch_start += delta; +- if (after(ca->epoch_start, now)) +- ca->epoch_start = now; +- } +- return; +- } +-} +- +-/* +- * cbrt(x) MSB values for x MSB values in [0..63]. +- * Precomputed then refined by hand - Willy Tarreau +- * +- * For x in [0..63], +- * v = cbrt(x << 18) - 1 +- * cbrt(x) = (v[x] + 10) >> 6 +- */ +-static const __u8 v[] = { +- /* 0x00 */ 0, 54, 54, 54, 118, 118, 118, 118, +- /* 0x08 */ 123, 129, 134, 138, 143, 147, 151, 156, +- /* 0x10 */ 157, 161, 164, 168, 170, 173, 176, 179, +- /* 0x18 */ 181, 185, 187, 190, 192, 194, 197, 199, +- /* 0x20 */ 200, 202, 204, 206, 209, 211, 213, 215, +- /* 0x28 */ 217, 219, 221, 222, 224, 225, 227, 229, +- /* 0x30 */ 231, 232, 234, 236, 237, 239, 240, 242, +- /* 0x38 */ 244, 245, 246, 248, 250, 251, 252, 254, +-}; +- +-/* calculate the cubic root of x using a table lookup followed by one +- * Newton-Raphson iteration. +- * Avg err ~= 0.195% +- */ +-static __always_inline __u32 cubic_root(__u64 a) +-{ +- __u32 x, b, shift; +- +- if (a < 64) { +- /* a in [0..63] */ +- return ((__u32)v[(__u32)a] + 35) >> 6; +- } +- +- b = fls64(a); +- b = ((b * 84) >> 8) - 1; +- shift = (a >> (b * 3)); +- +- /* it is needed for verifier's bound check on v */ +- if (shift >= 64) +- return 0; +- +- x = ((__u32)(((__u32)v[shift] + 10) << b)) >> 6; +- +- /* +- * Newton-Raphson iteration +- * 2 +- * x = ( 2 * x + a / x ) / 3 +- * k+1 k k +- */ +- x = (2 * x + (__u32)div64_u64(a, (__u64)x * (__u64)(x - 1))); +- x = ((x * 341) >> 10); +- return x; +-} +- +-/* +- * Compute congestion window to use. +- */ +-static __always_inline void bictcp_update(struct bictcp *ca, __u32 cwnd, +- __u32 acked) +-{ +- __u32 delta, bic_target, max_cnt; +- __u64 offs, t; +- +- ca->ack_cnt += acked; /* count the number of ACKed packets */ +- +- if (ca->last_cwnd == cwnd && +- (__s32)(tcp_jiffies32 - ca->last_time) <= HZ / 32) +- return; +- +- /* The CUBIC function can update ca->cnt at most once per jiffy. +- * On all cwnd reduction events, ca->epoch_start is set to 0, +- * which will force a recalculation of ca->cnt. +- */ +- if (ca->epoch_start && tcp_jiffies32 == ca->last_time) +- goto tcp_friendliness; +- +- ca->last_cwnd = cwnd; +- ca->last_time = tcp_jiffies32; +- +- if (ca->epoch_start == 0) { +- ca->epoch_start = tcp_jiffies32; /* record beginning */ +- ca->ack_cnt = acked; /* start counting */ +- ca->tcp_cwnd = cwnd; /* syn with cubic */ +- +- if (ca->last_max_cwnd <= cwnd) { +- ca->bic_K = 0; +- ca->bic_origin_point = cwnd; +- } else { +- /* Compute new K based on +- * (wmax-cwnd) * (srtt>>3 / HZ) / c * 2^(3*bictcp_HZ) +- */ +- ca->bic_K = cubic_root(cube_factor +- * (ca->last_max_cwnd - cwnd)); +- ca->bic_origin_point = ca->last_max_cwnd; +- } +- } +- +- /* cubic function - calc*/ +- /* calculate c * time^3 / rtt, +- * while considering overflow in calculation of time^3 +- * (so time^3 is done by using 64 bit) +- * and without the support of division of 64bit numbers +- * (so all divisions are done by using 32 bit) +- * also NOTE the unit of those veriables +- * time = (t - K) / 2^bictcp_HZ +- * c = bic_scale >> 10 +- * rtt = (srtt >> 3) / HZ +- * !!! The following code does not have overflow problems, +- * if the cwnd < 1 million packets !!! +- */ +- +- t = (__s32)(tcp_jiffies32 - ca->epoch_start) * USEC_PER_JIFFY; +- t += ca->delay_min; +- /* change the unit from usec to bictcp_HZ */ +- t <<= BICTCP_HZ; +- t /= USEC_PER_SEC; +- +- if (t < ca->bic_K) /* t - K */ +- offs = ca->bic_K - t; +- else +- offs = t - ca->bic_K; +- +- /* c/rtt * (t-K)^3 */ +- delta = (cube_rtt_scale * offs * offs * offs) >> (10+3*BICTCP_HZ); +- if (t < ca->bic_K) /* below origin*/ +- bic_target = ca->bic_origin_point - delta; +- else /* above origin*/ +- bic_target = ca->bic_origin_point + delta; +- +- /* cubic function - calc bictcp_cnt*/ +- if (bic_target > cwnd) { +- ca->cnt = cwnd / (bic_target - cwnd); +- } else { +- ca->cnt = 100 * cwnd; /* very small increment*/ +- } +- +- /* +- * The initial growth of cubic function may be too conservative +- * when the available bandwidth is still unknown. +- */ +- if (ca->last_max_cwnd == 0 && ca->cnt > 20) +- ca->cnt = 20; /* increase cwnd 5% per RTT */ +- +-tcp_friendliness: +- /* TCP Friendly */ +- if (tcp_friendliness) { +- __u32 scale = beta_scale; +- __u32 n; +- +- /* update tcp cwnd */ +- delta = (cwnd * scale) >> 3; +- if (ca->ack_cnt > delta && delta) { +- n = ca->ack_cnt / delta; +- ca->ack_cnt -= n * delta; +- ca->tcp_cwnd += n; +- } +- +- if (ca->tcp_cwnd > cwnd) { /* if bic is slower than tcp */ +- delta = ca->tcp_cwnd - cwnd; +- max_cnt = cwnd / delta; +- if (ca->cnt > max_cnt) +- ca->cnt = max_cnt; +- } +- } +- +- /* The maximum rate of cwnd increase CUBIC allows is 1 packet per +- * 2 packets ACKed, meaning cwnd grows at 1.5x per RTT. +- */ +- ca->cnt = max(ca->cnt, 2U); +-} +- +-/* Or simply use the BPF_STRUCT_OPS to avoid the SEC boiler plate. */ +-void BPF_STRUCT_OPS(bpf_cubic_cong_avoid, struct sock *sk, __u32 ack, __u32 acked) +-{ +- struct tcp_sock *tp = tcp_sk(sk); +- struct bictcp *ca = inet_csk_ca(sk); +- +- if (!tcp_is_cwnd_limited(sk)) +- return; +- +- if (tcp_in_slow_start(tp)) { +- if (hystart && after(ack, ca->end_seq)) +- bictcp_hystart_reset(sk); +- acked = tcp_slow_start(tp, acked); +- if (!acked) +- return; +- } +- bictcp_update(ca, tp->snd_cwnd, acked); +- tcp_cong_avoid_ai(tp, ca->cnt, acked); +-} +- +-__u32 BPF_STRUCT_OPS(bpf_cubic_recalc_ssthresh, struct sock *sk) +-{ +- const struct tcp_sock *tp = tcp_sk(sk); +- struct bictcp *ca = inet_csk_ca(sk); +- +- ca->epoch_start = 0; /* end of epoch */ +- +- /* Wmax and fast convergence */ +- if (tp->snd_cwnd < ca->last_max_cwnd && fast_convergence) +- ca->last_max_cwnd = (tp->snd_cwnd * (BICTCP_BETA_SCALE + beta)) +- / (2 * BICTCP_BETA_SCALE); +- else +- ca->last_max_cwnd = tp->snd_cwnd; +- +- return max((tp->snd_cwnd * beta) / BICTCP_BETA_SCALE, 2U); +-} +- +-void BPF_STRUCT_OPS(bpf_cubic_state, struct sock *sk, __u8 new_state) +-{ +- if (new_state == TCP_CA_Loss) { +- bictcp_reset(inet_csk_ca(sk)); +- bictcp_hystart_reset(sk); +- } +-} +- +-#define GSO_MAX_SIZE 65536 +- +-/* Account for TSO/GRO delays. +- * Otherwise short RTT flows could get too small ssthresh, since during +- * slow start we begin with small TSO packets and ca->delay_min would +- * not account for long aggregation delay when TSO packets get bigger. +- * Ideally even with a very small RTT we would like to have at least one +- * TSO packet being sent and received by GRO, and another one in qdisc layer. +- * We apply another 100% factor because @rate is doubled at this point. +- * We cap the cushion to 1ms. +- */ +-static __always_inline __u32 hystart_ack_delay(struct sock *sk) +-{ +- unsigned long rate; +- +- rate = sk->sk_pacing_rate; +- if (!rate) +- return 0; +- return min((__u64)USEC_PER_MSEC, +- div64_ul((__u64)GSO_MAX_SIZE * 4 * USEC_PER_SEC, rate)); +-} +- +-static __always_inline void hystart_update(struct sock *sk, __u32 delay) +-{ +- struct tcp_sock *tp = tcp_sk(sk); +- struct bictcp *ca = inet_csk_ca(sk); +- __u32 threshold; +- +- if (hystart_detect & HYSTART_ACK_TRAIN) { +- __u32 now = bictcp_clock_us(sk); +- +- /* first detection parameter - ack-train detection */ +- if ((__s32)(now - ca->last_ack) <= hystart_ack_delta_us) { +- ca->last_ack = now; +- +- threshold = ca->delay_min + hystart_ack_delay(sk); +- +- /* Hystart ack train triggers if we get ack past +- * ca->delay_min/2. +- * Pacing might have delayed packets up to RTT/2 +- * during slow start. +- */ +- if (sk->sk_pacing_status == SK_PACING_NONE) +- threshold >>= 1; +- +- if ((__s32)(now - ca->round_start) > threshold) { +- ca->found = 1; +- tp->snd_ssthresh = tp->snd_cwnd; +- } +- } +- } +- +- if (hystart_detect & HYSTART_DELAY) { +- /* obtain the minimum delay of more than sampling packets */ +- if (ca->curr_rtt > delay) +- ca->curr_rtt = delay; +- if (ca->sample_cnt < HYSTART_MIN_SAMPLES) { +- ca->sample_cnt++; +- } else { +- if (ca->curr_rtt > ca->delay_min + +- HYSTART_DELAY_THRESH(ca->delay_min >> 3)) { +- ca->found = 1; +- tp->snd_ssthresh = tp->snd_cwnd; +- } +- } +- } +-} +- +-void BPF_STRUCT_OPS(bpf_cubic_acked, struct sock *sk, +- const struct ack_sample *sample) +-{ +- const struct tcp_sock *tp = tcp_sk(sk); +- struct bictcp *ca = inet_csk_ca(sk); +- __u32 delay; +- +- /* Some calls are for duplicates without timetamps */ +- if (sample->rtt_us < 0) +- return; +- +- /* Discard delay samples right after fast recovery */ +- if (ca->epoch_start && (__s32)(tcp_jiffies32 - ca->epoch_start) < HZ) +- return; +- +- delay = sample->rtt_us; +- if (delay == 0) +- delay = 1; +- +- /* first time call or link delay decreases */ +- if (ca->delay_min == 0 || ca->delay_min > delay) +- ca->delay_min = delay; +- +- /* hystart triggers when cwnd is larger than some threshold */ +- if (!ca->found && tcp_in_slow_start(tp) && hystart && +- tp->snd_cwnd >= hystart_low_window) +- hystart_update(sk, delay); +-} +- +-extern __u32 tcp_reno_undo_cwnd(struct sock *sk) __ksym; +- +-__u32 BPF_STRUCT_OPS(bpf_cubic_undo_cwnd, struct sock *sk) +-{ +- return tcp_reno_undo_cwnd(sk); +-} +- +-SEC(".struct_ops") +-struct tcp_congestion_ops cubic = { +- .init = (void *)bpf_cubic_init, +- .ssthresh = (void *)bpf_cubic_recalc_ssthresh, +- .cong_avoid = (void *)bpf_cubic_cong_avoid, +- .set_state = (void *)bpf_cubic_state, +- .undo_cwnd = (void *)bpf_cubic_undo_cwnd, +- .cwnd_event = (void *)bpf_cubic_cwnd_event, +- .pkts_acked = (void *)bpf_cubic_acked, +- .name = "bpf_cubic", +-}; +diff --git a/tools/testing/selftests/bpf/progs/bpf_dctcp.c b/tools/testing/selftests/bpf/progs/bpf_dctcp.c +deleted file mode 100644 +index fd42247da8b4..000000000000 +--- a/tools/testing/selftests/bpf/progs/bpf_dctcp.c ++++ /dev/null +@@ -1,224 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2019 Facebook */ +- +-/* WARNING: This implemenation is not necessarily the same +- * as the tcp_dctcp.c. The purpose is mainly for testing +- * the kernel BPF logic. +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "bpf_tcp_helpers.h" +- +-char _license[] SEC("license") = "GPL"; +- +-int stg_result = 0; +- +-struct { +- __uint(type, BPF_MAP_TYPE_SK_STORAGE); +- __uint(map_flags, BPF_F_NO_PREALLOC); +- __type(key, int); +- __type(value, int); +-} sk_stg_map SEC(".maps"); +- +-#define DCTCP_MAX_ALPHA 1024U +- +-struct dctcp { +- __u32 old_delivered; +- __u32 old_delivered_ce; +- __u32 prior_rcv_nxt; +- __u32 dctcp_alpha; +- __u32 next_seq; +- __u32 ce_state; +- __u32 loss_cwnd; +-}; +- +-static unsigned int dctcp_shift_g = 4; /* g = 1/2^4 */ +-static unsigned int dctcp_alpha_on_init = DCTCP_MAX_ALPHA; +- +-static __always_inline void dctcp_reset(const struct tcp_sock *tp, +- struct dctcp *ca) +-{ +- ca->next_seq = tp->snd_nxt; +- +- ca->old_delivered = tp->delivered; +- ca->old_delivered_ce = tp->delivered_ce; +-} +- +-SEC("struct_ops/dctcp_init") +-void BPF_PROG(dctcp_init, struct sock *sk) +-{ +- const struct tcp_sock *tp = tcp_sk(sk); +- struct dctcp *ca = inet_csk_ca(sk); +- int *stg; +- +- ca->prior_rcv_nxt = tp->rcv_nxt; +- ca->dctcp_alpha = min(dctcp_alpha_on_init, DCTCP_MAX_ALPHA); +- ca->loss_cwnd = 0; +- ca->ce_state = 0; +- +- stg = bpf_sk_storage_get(&sk_stg_map, (void *)tp, NULL, 0); +- if (stg) { +- stg_result = *stg; +- bpf_sk_storage_delete(&sk_stg_map, (void *)tp); +- } +- dctcp_reset(tp, ca); +-} +- +-SEC("struct_ops/dctcp_ssthresh") +-__u32 BPF_PROG(dctcp_ssthresh, struct sock *sk) +-{ +- struct dctcp *ca = inet_csk_ca(sk); +- struct tcp_sock *tp = tcp_sk(sk); +- +- ca->loss_cwnd = tp->snd_cwnd; +- return max(tp->snd_cwnd - ((tp->snd_cwnd * ca->dctcp_alpha) >> 11U), 2U); +-} +- +-SEC("struct_ops/dctcp_update_alpha") +-void BPF_PROG(dctcp_update_alpha, struct sock *sk, __u32 flags) +-{ +- const struct tcp_sock *tp = tcp_sk(sk); +- struct dctcp *ca = inet_csk_ca(sk); +- +- /* Expired RTT */ +- if (!before(tp->snd_una, ca->next_seq)) { +- __u32 delivered_ce = tp->delivered_ce - ca->old_delivered_ce; +- __u32 alpha = ca->dctcp_alpha; +- +- /* alpha = (1 - g) * alpha + g * F */ +- +- alpha -= min_not_zero(alpha, alpha >> dctcp_shift_g); +- if (delivered_ce) { +- __u32 delivered = tp->delivered - ca->old_delivered; +- +- /* If dctcp_shift_g == 1, a 32bit value would overflow +- * after 8 M packets. +- */ +- delivered_ce <<= (10 - dctcp_shift_g); +- delivered_ce /= max(1U, delivered); +- +- alpha = min(alpha + delivered_ce, DCTCP_MAX_ALPHA); +- } +- ca->dctcp_alpha = alpha; +- dctcp_reset(tp, ca); +- } +-} +- +-static __always_inline void dctcp_react_to_loss(struct sock *sk) +-{ +- struct dctcp *ca = inet_csk_ca(sk); +- struct tcp_sock *tp = tcp_sk(sk); +- +- ca->loss_cwnd = tp->snd_cwnd; +- tp->snd_ssthresh = max(tp->snd_cwnd >> 1U, 2U); +-} +- +-SEC("struct_ops/dctcp_state") +-void BPF_PROG(dctcp_state, struct sock *sk, __u8 new_state) +-{ +- if (new_state == TCP_CA_Recovery && +- new_state != BPF_CORE_READ_BITFIELD(inet_csk(sk), icsk_ca_state)) +- dctcp_react_to_loss(sk); +- /* We handle RTO in dctcp_cwnd_event to ensure that we perform only +- * one loss-adjustment per RTT. +- */ +-} +- +-static __always_inline void dctcp_ece_ack_cwr(struct sock *sk, __u32 ce_state) +-{ +- struct tcp_sock *tp = tcp_sk(sk); +- +- if (ce_state == 1) +- tp->ecn_flags |= TCP_ECN_DEMAND_CWR; +- else +- tp->ecn_flags &= ~TCP_ECN_DEMAND_CWR; +-} +- +-/* Minimal DCTP CE state machine: +- * +- * S: 0 <- last pkt was non-CE +- * 1 <- last pkt was CE +- */ +-static __always_inline +-void dctcp_ece_ack_update(struct sock *sk, enum tcp_ca_event evt, +- __u32 *prior_rcv_nxt, __u32 *ce_state) +-{ +- __u32 new_ce_state = (evt == CA_EVENT_ECN_IS_CE) ? 1 : 0; +- +- if (*ce_state != new_ce_state) { +- /* CE state has changed, force an immediate ACK to +- * reflect the new CE state. If an ACK was delayed, +- * send that first to reflect the prior CE state. +- */ +- if (inet_csk(sk)->icsk_ack.pending & ICSK_ACK_TIMER) { +- dctcp_ece_ack_cwr(sk, *ce_state); +- bpf_tcp_send_ack(sk, *prior_rcv_nxt); +- } +- inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_NOW; +- } +- *prior_rcv_nxt = tcp_sk(sk)->rcv_nxt; +- *ce_state = new_ce_state; +- dctcp_ece_ack_cwr(sk, new_ce_state); +-} +- +-SEC("struct_ops/dctcp_cwnd_event") +-void BPF_PROG(dctcp_cwnd_event, struct sock *sk, enum tcp_ca_event ev) +-{ +- struct dctcp *ca = inet_csk_ca(sk); +- +- switch (ev) { +- case CA_EVENT_ECN_IS_CE: +- case CA_EVENT_ECN_NO_CE: +- dctcp_ece_ack_update(sk, ev, &ca->prior_rcv_nxt, &ca->ce_state); +- break; +- case CA_EVENT_LOSS: +- dctcp_react_to_loss(sk); +- break; +- default: +- /* Don't care for the rest. */ +- break; +- } +-} +- +-SEC("struct_ops/dctcp_cwnd_undo") +-__u32 BPF_PROG(dctcp_cwnd_undo, struct sock *sk) +-{ +- const struct dctcp *ca = inet_csk_ca(sk); +- +- return max(tcp_sk(sk)->snd_cwnd, ca->loss_cwnd); +-} +- +-extern void tcp_reno_cong_avoid(struct sock *sk, __u32 ack, __u32 acked) __ksym; +- +-SEC("struct_ops/dctcp_reno_cong_avoid") +-void BPF_PROG(dctcp_cong_avoid, struct sock *sk, __u32 ack, __u32 acked) +-{ +- tcp_reno_cong_avoid(sk, ack, acked); +-} +- +-SEC(".struct_ops") +-struct tcp_congestion_ops dctcp_nouse = { +- .init = (void *)dctcp_init, +- .set_state = (void *)dctcp_state, +- .flags = TCP_CONG_NEEDS_ECN, +- .name = "bpf_dctcp_nouse", +-}; +- +-SEC(".struct_ops") +-struct tcp_congestion_ops dctcp = { +- .init = (void *)dctcp_init, +- .in_ack_event = (void *)dctcp_update_alpha, +- .cwnd_event = (void *)dctcp_cwnd_event, +- .ssthresh = (void *)dctcp_ssthresh, +- .cong_avoid = (void *)dctcp_cong_avoid, +- .undo_cwnd = (void *)dctcp_cwnd_undo, +- .set_state = (void *)dctcp_state, +- .flags = TCP_CONG_NEEDS_ECN, +- .name = "bpf_dctcp", +-}; +diff --git a/tools/testing/selftests/bpf/progs/kfunc_call_test.c b/tools/testing/selftests/bpf/progs/kfunc_call_test.c +deleted file mode 100644 +index 470f8723e463..000000000000 +--- a/tools/testing/selftests/bpf/progs/kfunc_call_test.c ++++ /dev/null +@@ -1,47 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +-#include +-#include +-#include "bpf_tcp_helpers.h" +- +-extern int bpf_kfunc_call_test2(struct sock *sk, __u32 a, __u32 b) __ksym; +-extern __u64 bpf_kfunc_call_test1(struct sock *sk, __u32 a, __u64 b, +- __u32 c, __u64 d) __ksym; +- +-SEC("classifier") +-int kfunc_call_test2(struct __sk_buff *skb) +-{ +- struct bpf_sock *sk = skb->sk; +- +- if (!sk) +- return -1; +- +- sk = bpf_sk_fullsock(sk); +- if (!sk) +- return -1; +- +- return bpf_kfunc_call_test2((struct sock *)sk, 1, 2); +-} +- +-SEC("classifier") +-int kfunc_call_test1(struct __sk_buff *skb) +-{ +- struct bpf_sock *sk = skb->sk; +- __u64 a = 1ULL << 32; +- __u32 ret; +- +- if (!sk) +- return -1; +- +- sk = bpf_sk_fullsock(sk); +- if (!sk) +- return -1; +- +- a = bpf_kfunc_call_test1((struct sock *)sk, 1, a | 2, 3, a | 4); +- ret = a >> 32; /* ret should be 2 */ +- ret += (__u32)a; /* ret should be 12 */ +- +- return ret; +-} +- +-char _license[] SEC("license") = "GPL"; +diff --git a/tools/testing/selftests/bpf/progs/kfunc_call_test_subprog.c b/tools/testing/selftests/bpf/progs/kfunc_call_test_subprog.c +deleted file mode 100644 +index b2dcb7d9cb03..000000000000 +--- a/tools/testing/selftests/bpf/progs/kfunc_call_test_subprog.c ++++ /dev/null +@@ -1,42 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +-#include +-#include +-#include "bpf_tcp_helpers.h" +- +-extern const int bpf_prog_active __ksym; +-extern __u64 bpf_kfunc_call_test1(struct sock *sk, __u32 a, __u64 b, +- __u32 c, __u64 d) __ksym; +-extern struct sock *bpf_kfunc_call_test3(struct sock *sk) __ksym; +-int active_res = -1; +-int sk_state = -1; +- +-int __noinline f1(struct __sk_buff *skb) +-{ +- struct bpf_sock *sk = skb->sk; +- int *active; +- +- if (!sk) +- return -1; +- +- sk = bpf_sk_fullsock(sk); +- if (!sk) +- return -1; +- +- active = (int *)bpf_per_cpu_ptr(&bpf_prog_active, +- bpf_get_smp_processor_id()); +- if (active) +- active_res = *active; +- +- sk_state = bpf_kfunc_call_test3((struct sock *)sk)->__sk_common.skc_state; +- +- return (__u32)bpf_kfunc_call_test1((struct sock *)sk, 1, 2, 3, 4); +-} +- +-SEC("classifier") +-int kfunc_call_test1(struct __sk_buff *skb) +-{ +- return f1(skb); +-} +- +-char _license[] SEC("license") = "GPL"; +diff --git a/tools/testing/selftests/bpf/progs/linked_funcs1.c b/tools/testing/selftests/bpf/progs/linked_funcs1.c +deleted file mode 100644 +index b964ec1390c2..000000000000 +--- a/tools/testing/selftests/bpf/progs/linked_funcs1.c ++++ /dev/null +@@ -1,73 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include "vmlinux.h" +-#include +-#include +- +-/* weak and shared between two files */ +-const volatile int my_tid __weak; +-long syscall_id __weak; +- +-int output_val1; +-int output_ctx1; +-int output_weak1; +- +-/* same "subprog" name in all files, but it's ok because they all are static */ +-static __noinline int subprog(int x) +-{ +- /* but different formula */ +- return x * 1; +-} +- +-/* Global functions can't be void */ +-int set_output_val1(int x) +-{ +- output_val1 = x + subprog(x); +- return x; +-} +- +-/* This function can't be verified as global, as it assumes raw_tp/sys_enter +- * context and accesses syscall id (second argument). So we mark it as +- * __hidden, so that libbpf will mark it as static in the final object file, +- * right before verifying it in the kernel. +- * +- * But we don't mark it as __hidden here, rather at extern site. __hidden is +- * "contaminating" visibility, so it will get propagated from either extern or +- * actual definition (including from the losing __weak definition). +- */ +-void set_output_ctx1(__u64 *ctx) +-{ +- output_ctx1 = ctx[1]; /* long id, same as in BPF_PROG below */ +-} +- +-/* this weak instance should win because it's the first one */ +-__weak int set_output_weak(int x) +-{ +- output_weak1 = x; +- return x; +-} +- +-extern int set_output_val2(int x); +- +-/* here we'll force set_output_ctx2() to be __hidden in the final obj file */ +-__hidden extern void set_output_ctx2(__u64 *ctx); +- +-SEC("raw_tp/sys_enter") +-int BPF_PROG(handler1, struct pt_regs *regs, long id) +-{ +- if (my_tid != (u32)bpf_get_current_pid_tgid() || id != syscall_id) +- return 0; +- +- set_output_val2(1000); +- set_output_ctx2(ctx); /* ctx definition is hidden in BPF_PROG macro */ +- +- /* keep input value the same across both files to avoid dependency on +- * handler call order; differentiate by output_weak1 vs output_weak2. +- */ +- set_output_weak(42); +- +- return 0; +-} +- +-char LICENSE[] SEC("license") = "GPL"; +diff --git a/tools/testing/selftests/bpf/progs/linked_funcs2.c b/tools/testing/selftests/bpf/progs/linked_funcs2.c +deleted file mode 100644 +index 575e958e60b7..000000000000 +--- a/tools/testing/selftests/bpf/progs/linked_funcs2.c ++++ /dev/null +@@ -1,73 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include "vmlinux.h" +-#include +-#include +- +-/* weak and shared between both files */ +-const volatile int my_tid __weak; +-long syscall_id __weak; +- +-int output_val2; +-int output_ctx2; +-int output_weak2; /* should stay zero */ +- +-/* same "subprog" name in all files, but it's ok because they all are static */ +-static __noinline int subprog(int x) +-{ +- /* but different formula */ +- return x * 2; +-} +- +-/* Global functions can't be void */ +-int set_output_val2(int x) +-{ +- output_val2 = 2 * x + 2 * subprog(x); +- return 2 * x; +-} +- +-/* This function can't be verified as global, as it assumes raw_tp/sys_enter +- * context and accesses syscall id (second argument). So we mark it as +- * __hidden, so that libbpf will mark it as static in the final object file, +- * right before verifying it in the kernel. +- * +- * But we don't mark it as __hidden here, rather at extern site. __hidden is +- * "contaminating" visibility, so it will get propagated from either extern or +- * actual definition (including from the losing __weak definition). +- */ +-void set_output_ctx2(__u64 *ctx) +-{ +- output_ctx2 = ctx[1]; /* long id, same as in BPF_PROG below */ +-} +- +-/* this weak instance should lose, because it will be processed second */ +-__weak int set_output_weak(int x) +-{ +- output_weak2 = x; +- return 2 * x; +-} +- +-extern int set_output_val1(int x); +- +-/* here we'll force set_output_ctx1() to be __hidden in the final obj file */ +-__hidden extern void set_output_ctx1(__u64 *ctx); +- +-SEC("raw_tp/sys_enter") +-int BPF_PROG(handler2, struct pt_regs *regs, long id) +-{ +- if (my_tid != (u32)bpf_get_current_pid_tgid() || id != syscall_id) +- return 0; +- +- set_output_val1(2000); +- set_output_ctx1(ctx); /* ctx definition is hidden in BPF_PROG macro */ +- +- /* keep input value the same across both files to avoid dependency on +- * handler call order; differentiate by output_weak1 vs output_weak2. +- */ +- set_output_weak(42); +- +- return 0; +-} +- +-char LICENSE[] SEC("license") = "GPL"; +diff --git a/tools/testing/selftests/bpf/progs/linked_maps2.c b/tools/testing/selftests/bpf/progs/linked_maps2.c +deleted file mode 100644 +index 0693687474ed..000000000000 +--- a/tools/testing/selftests/bpf/progs/linked_maps2.c ++++ /dev/null +@@ -1,76 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include "vmlinux.h" +-#include +-#include +- +-/* modifiers and typedefs are ignored when comparing key/value types */ +-typedef struct my_key { long x; } key_type; +-typedef struct my_value { long x; } value_type; +- +-extern struct { +- __uint(max_entries, 16); +- __type(key, key_type); +- __type(value, value_type); +- __uint(type, BPF_MAP_TYPE_HASH); +-} map1 SEC(".maps"); +- +-struct { +- __uint(type, BPF_MAP_TYPE_ARRAY); +- __type(key, int); +- __type(value, int); +- __uint(max_entries, 8); +-} map2 SEC(".maps"); +- +-/* this definition will lose, but it has to exactly match the winner */ +-struct { +- __uint(type, BPF_MAP_TYPE_ARRAY); +- __type(key, int); +- __type(value, int); +- __uint(max_entries, 16); +-} map_weak __weak SEC(".maps"); +- +-int output_first2; +-int output_second2; +-int output_weak2; +- +-SEC("raw_tp/sys_enter") +-int BPF_PROG(handler_enter2) +-{ +- /* update values with key = 2 */ +- int key = 2, val = 2; +- key_type key_struct = { .x = 2 }; +- value_type val_struct = { .x = 2000 }; +- +- bpf_map_update_elem(&map1, &key_struct, &val_struct, 0); +- bpf_map_update_elem(&map2, &key, &val, 0); +- bpf_map_update_elem(&map_weak, &key, &val, 0); +- +- return 0; +-} +- +-SEC("raw_tp/sys_exit") +-int BPF_PROG(handler_exit2) +-{ +- /* lookup values with key = 1, set in another file */ +- int key = 1, *val; +- key_type key_struct = { .x = 1 }; +- value_type *value_struct; +- +- value_struct = bpf_map_lookup_elem(&map1, &key_struct); +- if (value_struct) +- output_first2 = value_struct->x; +- +- val = bpf_map_lookup_elem(&map2, &key); +- if (val) +- output_second2 = *val; +- +- val = bpf_map_lookup_elem(&map_weak, &key); +- if (val) +- output_weak2 = *val; +- +- return 0; +-} +- +-char LICENSE[] SEC("license") = "GPL"; +diff --git a/tools/testing/selftests/bpf/progs/linked_vars1.c b/tools/testing/selftests/bpf/progs/linked_vars1.c +deleted file mode 100644 +index ef9e9d0bb0ca..000000000000 +--- a/tools/testing/selftests/bpf/progs/linked_vars1.c ++++ /dev/null +@@ -1,54 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include "vmlinux.h" +-#include +-#include +- +-extern int LINUX_KERNEL_VERSION __kconfig; +-/* this weak extern will be strict due to the other file's strong extern */ +-extern bool CONFIG_BPF_SYSCALL __kconfig __weak; +-extern const void bpf_link_fops __ksym __weak; +- +-int input_bss1; +-int input_data1 = 1; +-const volatile int input_rodata1 = 11; +- +-int input_bss_weak __weak; +-/* these two definitions should win */ +-int input_data_weak __weak = 10; +-const volatile int input_rodata_weak __weak = 100; +- +-extern int input_bss2; +-extern int input_data2; +-extern const int input_rodata2; +- +-int output_bss1; +-int output_data1; +-int output_rodata1; +- +-long output_sink1; +- +-static __noinline int get_bss_res(void) +-{ +- /* just make sure all the relocations work against .text as well */ +- return input_bss1 + input_bss2 + input_bss_weak; +-} +- +-SEC("raw_tp/sys_enter") +-int BPF_PROG(handler1) +-{ +- output_bss1 = get_bss_res(); +- output_data1 = input_data1 + input_data2 + input_data_weak; +- output_rodata1 = input_rodata1 + input_rodata2 + input_rodata_weak; +- +- /* make sure we actually use above special externs, otherwise compiler +- * will optimize them out +- */ +- output_sink1 = LINUX_KERNEL_VERSION +- + CONFIG_BPF_SYSCALL +- + (long)&bpf_link_fops; +- return 0; +-} +- +-char LICENSE[] SEC("license") = "GPL"; +diff --git a/tools/testing/selftests/bpf/progs/linked_vars2.c b/tools/testing/selftests/bpf/progs/linked_vars2.c +deleted file mode 100644 +index e4f5bd388a3c..000000000000 +--- a/tools/testing/selftests/bpf/progs/linked_vars2.c ++++ /dev/null +@@ -1,55 +0,0 @@ +-// SPDX-License-Identifier: GPL-2.0 +-/* Copyright (c) 2021 Facebook */ +- +-#include "vmlinux.h" +-#include +-#include +- +-extern int LINUX_KERNEL_VERSION __kconfig; +-/* when an extern is defined as both strong and weak, resulting symbol will be strong */ +-extern bool CONFIG_BPF_SYSCALL __kconfig; +-extern const void __start_BTF __ksym; +- +-int input_bss2; +-int input_data2 = 2; +-const volatile int input_rodata2 = 22; +- +-int input_bss_weak __weak; +-/* these two weak variables should lose */ +-int input_data_weak __weak = 20; +-const volatile int input_rodata_weak __weak = 200; +- +-extern int input_bss1; +-extern int input_data1; +-extern const int input_rodata1; +- +-int output_bss2; +-int output_data2; +-int output_rodata2; +- +-int output_sink2; +- +-static __noinline int get_data_res(void) +-{ +- /* just make sure all the relocations work against .text as well */ +- return input_data1 + input_data2 + input_data_weak; +-} +- +-SEC("raw_tp/sys_enter") +-int BPF_PROG(handler2) +-{ +- output_bss2 = input_bss1 + input_bss2 + input_bss_weak; +- output_data2 = get_data_res(); +- output_rodata2 = input_rodata1 + input_rodata2 + input_rodata_weak; +- +- /* make sure we actually use above special externs, otherwise compiler +- * will optimize them out +- */ +- output_sink2 = LINUX_KERNEL_VERSION +- + CONFIG_BPF_SYSCALL +- + (long)&__start_BTF; +- +- return 0; +-} +- +-char LICENSE[] SEC("license") = "GPL"; diff --git a/sources b/sources index 66696f17d..b7ae33cba 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-5.14.tar.xz) = 88f9313c421ecb42ba75b22b30113b7801fa448d4cf53f86160d422c630c5bbd1c69736c714294c6fc2b17fdace6a786f98076bee960dedf6783d524fd6abb11 -SHA512 (kernel-abi-stablelists-5.14.0-61.tar.bz2) = 9888fe44d4bf6395bac7a930e7063b66c65ac5483b17f7fa2408a52ce6cfb4f825aeb8115344eb3980334a1e1be87fdade434f8ebc21a883d5be55c2244c19cc -SHA512 (kernel-kabi-dw-5.14.0-61.tar.bz2) = d231a72517da1f73bfe66888e67836bbaf580bbc038aceba698cfd126d23da697256b80f58267a2b3dcdfb39a731638dd485efa29ff9d67da1a15061fad896f2 +SHA512 (linux-5.14-1100-gb91db6a0b52e.tar.xz) = 36db15b86951cbc5457f3724ede0cc670c7f1242438a937955d871578de1af976980c3ddf4d06b6bb8e6f7730a89d8d441fd8766be915820a1ab181d8343b597 +SHA512 (kernel-abi-stablelists-5.15.0-0.rc0.20210831gitb91db6a0b52e.1.tar.bz2) = 72ad22df8783f1c927ed94372f322eb1ae4e25f4a0a7db9c89335167cf42b61c71e2aa122af626fee2f692bd67e1527a39f16ccec3d617d5c93dc113ca122df5 +SHA512 (kernel-kabi-dw-5.15.0-0.rc0.20210831gitb91db6a0b52e.1.tar.bz2) = fd3074c39600429901acdac48338ef41d23bbc3f01801b5e9042a730442c52f1098dbf27a4ed0c63062d73ff6449be622fcfeb152b4d4bd351f8947015ada5eb -- cgit