From d0578f42bd69da3d3dbafda4e346c6d790811d32 Mon Sep 17 00:00:00 2001 From: Justin M. Forbes Date: Nov 12 2021 16:35:20 +0000 Subject: kernel-5.15-0 * Fri Nov 12 2021 Justin M. Forbes [5.15-0] - usb: xhci: tegra: Check padctrl interrupt presence in device tree (Dmitry Osipenko) - Fedora: Enable MediaTek bluetooth pieces (Peter Robinson) - x86/PCI/ACPI: Replace printk calls with pr_info/pr_warn calls (Hans de Goede) - x86/PCI: Ignore E820 reservations for bridge windows on newer systems (Hans de Goede) - Revert "[scsi] megaraid_sas: re-add certain pci-ids" (Justin M. Forbes) - Revert "wireguard: disable in FIPS mode" (Justin M. Forbes) - Revert "[fs] dax: mark tech preview" (Justin M. Forbes) - Revert "wireguard: mark as Tech Preview" (Justin M. Forbes) - Revert "add pci_hw_vendor_status()" (Justin M. Forbes) - Input: i8042 - Add quirk for Fujitsu Lifebook T725 (Takashi Iwai) Resolves: rhbz# Signed-off-by: Justin M. Forbes --- diff --git a/Patchlist.changelog b/Patchlist.changelog index 343a7e1..453efab 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,12 @@ +https://gitlab.com/cki-project/kernel-ark/-/commit/052a70eae8d9fabd82bcb701931302704dccc472 + 052a70eae8d9fabd82bcb701931302704dccc472 usb: xhci: tegra: Check padctrl interrupt presence in device tree + +https://gitlab.com/cki-project/kernel-ark/-/commit/078b72468a1734ef5f055c6c8c0bbd1882babdef + 078b72468a1734ef5f055c6c8c0bbd1882babdef x86/PCI/ACPI: Replace printk calls with pr_info/pr_warn calls + +https://gitlab.com/cki-project/kernel-ark/-/commit/dde0ccc0f204067a7f353a6eddd74a2d2345a03f + dde0ccc0f204067a7f353a6eddd74a2d2345a03f x86/PCI: Ignore E820 reservations for bridge windows on newer systems + https://gitlab.com/cki-project/kernel-ark/-/commit/dbfaeb8e3c1a949e75c8e7aecee8c57ed54c9d02 dbfaeb8e3c1a949e75c8e7aecee8c57ed54c9d02 Revert "[scsi] megaraid_sas: re-add certain pci-ids" diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index d7e02ca..f7bf564 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -838,7 +838,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -865,7 +865,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_QCOMSMD=m CONFIG_BT_RFCOMM=m diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index 4c460ed..69e899c 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -838,7 +838,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -865,7 +865,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_QCOMSMD=m CONFIG_BT_RFCOMM=m diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config index 962022e..44d6462 100644 --- a/kernel-armv7hl-debug-fedora.config +++ b/kernel-armv7hl-debug-fedora.config @@ -859,7 +859,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -886,7 +886,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_QCOMSMD=m CONFIG_BT_RFCOMM=m diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config index b3d500b..89cf46b 100644 --- a/kernel-armv7hl-fedora.config +++ b/kernel-armv7hl-fedora.config @@ -859,7 +859,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -886,7 +886,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_QCOMSMD=m CONFIG_BT_RFCOMM=m diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config index 8b52440..483b846 100644 --- a/kernel-armv7hl-lpae-debug-fedora.config +++ b/kernel-armv7hl-lpae-debug-fedora.config @@ -837,7 +837,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -864,7 +864,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config index f63667c..2ed2408 100644 --- a/kernel-armv7hl-lpae-fedora.config +++ b/kernel-armv7hl-lpae-fedora.config @@ -837,7 +837,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -864,7 +864,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config index a83cc9c..574ab7b 100644 --- a/kernel-i686-debug-fedora.config +++ b/kernel-i686-debug-fedora.config @@ -672,7 +672,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -699,7 +699,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config index bbad966..2ebe94c 100644 --- a/kernel-i686-fedora.config +++ b/kernel-i686-fedora.config @@ -671,7 +671,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -698,7 +698,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-ppc64le-debug-fedora.config b/kernel-ppc64le-debug-fedora.config index 08cd9be..fdf903e 100644 --- a/kernel-ppc64le-debug-fedora.config +++ b/kernel-ppc64le-debug-fedora.config @@ -632,7 +632,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -659,7 +659,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-ppc64le-fedora.config b/kernel-ppc64le-fedora.config index 1d98121..4d2e453 100644 --- a/kernel-ppc64le-fedora.config +++ b/kernel-ppc64le-fedora.config @@ -631,7 +631,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -658,7 +658,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 6cf49ea..b6b74b3 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -636,7 +636,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -663,7 +663,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index 5531e40..32abbb3 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -635,7 +635,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -662,7 +662,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index c2c3fa1..5db60b7 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -681,7 +681,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -708,7 +708,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index 74494af..3d2b7df 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -680,7 +680,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB=m -# CONFIG_BT_HCIBTUSB_MTK is not set +CONFIG_BT_HCIBTUSB_MTK=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIUART_3WIRE=y @@ -707,7 +707,7 @@ CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MSFTEXT=y CONFIG_BT_MTKSDIO=m -# CONFIG_BT_MTKUART is not set +CONFIG_BT_MTKUART=m CONFIG_BT_QCA=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y diff --git a/kernel.spec b/kernel.spec index bf60f5a..7ee9427 100755 --- a/kernel.spec +++ b/kernel.spec @@ -128,7 +128,7 @@ Summary: The Linux kernel # The kernel tarball/base version %define kversion 5.15 -%define rpmversion 5.15.1 +%define rpmversion 5.15.2 %define patchversion 5.15 %define pkgrelease 200 @@ -682,7 +682,7 @@ BuildRequires: lld # exact git commit you can run # # xzcat -qq ${TARBALL} | git get-tar-commit-id -Source0: linux-5.15.1.tar.xz +Source0: linux-5.15.2.tar.xz Source1: Makefile.rhelver @@ -1374,8 +1374,8 @@ ApplyOptionalPatch() fi } -%setup -q -n kernel-5.15.1 -c -mv linux-5.15.1 linux-%{KVERREL} +%setup -q -n kernel-5.15.2 -c +mv linux-5.15.2 linux-%{KVERREL} cd linux-%{KVERREL} cp -a %{SOURCE1} . @@ -2972,7 +2972,11 @@ fi # # %changelog -* Tue Nov 09 2021 Justin M. Forbes [5.15-200] +* Fri Nov 12 2021 Justin M. Forbes [5.15-0] +- usb: xhci: tegra: Check padctrl interrupt presence in device tree (Dmitry Osipenko) +- Fedora: Enable MediaTek bluetooth pieces (Peter Robinson) +- x86/PCI/ACPI: Replace printk calls with pr_info/pr_warn calls (Hans de Goede) +- x86/PCI: Ignore E820 reservations for bridge windows on newer systems (Hans de Goede) - Revert "[scsi] megaraid_sas: re-add certain pci-ids" (Justin M. Forbes) - Revert "wireguard: disable in FIPS mode" (Justin M. Forbes) - Revert "[fs] dax: mark tech preview" (Justin M. Forbes) diff --git a/patch-5.15-redhat.patch b/patch-5.15-redhat.patch index a4e2894..49f5349 100644 --- a/patch-5.15-redhat.patch +++ b/patch-5.15-redhat.patch @@ -1,3 +1,4 @@ + Documentation/admin-guide/kernel-parameters.txt | 9 ++ Makefile | 4 + arch/arm/Kconfig | 4 +- arch/arm64/Kconfig | 3 +- @@ -6,7 +7,11 @@ arch/s390/include/asm/ipl.h | 1 + arch/s390/kernel/ipl.c | 5 + arch/s390/kernel/setup.c | 4 + + arch/x86/include/asm/pci_x86.h | 10 ++ + arch/x86/kernel/resource.c | 4 + arch/x86/kernel/setup.c | 22 ++-- + arch/x86/pci/acpi.c | 49 ++++++-- + arch/x86/pci/common.c | 6 + crypto/rng.c | 73 +++++++++++- drivers/acpi/apei/hest.c | 8 ++ drivers/acpi/irq.c | 17 ++- @@ -28,6 +33,7 @@ drivers/nvme/host/nvme.h | 4 + drivers/pci/quirks.c | 24 ++++ drivers/usb/core/hub.c | 7 ++ + drivers/usb/host/xhci-tegra.c | 41 +++++-- fs/btrfs/async-thread.c | 14 +++ include/linux/efi.h | 22 ++-- include/linux/lsm_hook_defs.h | 2 + @@ -42,10 +48,30 @@ security/lockdown/Kconfig | 13 +++ security/lockdown/lockdown.c | 1 + security/security.c | 6 + - 44 files changed, 708 insertions(+), 192 deletions(-) - + 50 files changed, 805 insertions(+), 214 deletions(-) + +diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt +index 43dc35fe5bc0..07f1615206d4 100644 +--- a/Documentation/admin-guide/kernel-parameters.txt ++++ b/Documentation/admin-guide/kernel-parameters.txt +@@ -3949,6 +3949,15 @@ + please report a bug. + nocrs [X86] Ignore PCI host bridge windows from ACPI. + If you need to use this, please report a bug. ++ use_e820 [X86] Use E820 reservations to exclude parts of ++ PCI host bridge windows. This is a workaround ++ for BIOS defects in host bridge _CRS methods. ++ If you need to use this, please report a bug to ++ . ++ no_e820 [X86] Ignore E820 reservations for PCI host ++ bridge windows. This is the default on modern ++ hardware. If you need to use this, please report ++ a bug to . + routeirq Do IRQ routing for all PCI devices. + This is normally done in pci_enable_device(), + so this option is a temporary workaround diff --git a/Makefile b/Makefile -index ffcc7eadc44b..7c94a55d6770 100644 +index 14480187ac75..b3146bb9a64f 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -180,6 +206,60 @@ index 67e5fff96ee0..0d58c1f07176 100644 /* 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/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h +index 490411dba438..0bb4e7dd0ffc 100644 +--- a/arch/x86/include/asm/pci_x86.h ++++ b/arch/x86/include/asm/pci_x86.h +@@ -39,6 +39,8 @@ do { \ + #define PCI_ROOT_NO_CRS 0x100000 + #define PCI_NOASSIGN_BARS 0x200000 + #define PCI_BIG_ROOT_WINDOW 0x400000 ++#define PCI_USE_E820 0x800000 ++#define PCI_NO_E820 0x1000000 + + extern unsigned int pci_probe; + extern unsigned long pirq_table_addr; +@@ -64,6 +66,8 @@ void pcibios_scan_specific_bus(int busn); + + /* pci-irq.c */ + ++struct pci_dev; ++ + struct irq_info { + u8 bus, devfn; /* Bus, device and function */ + struct { +@@ -232,3 +236,9 @@ static inline void mmio_config_writel(void __iomem *pos, u32 val) + # define x86_default_pci_init_irq NULL + # define x86_default_pci_fixup_irqs NULL + #endif ++ ++#if defined(CONFIG_PCI) && defined(CONFIG_ACPI) ++extern bool pci_use_e820; ++#else ++#define pci_use_e820 false ++#endif +diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c +index 9b9fb7882c20..e8dc9bc327bd 100644 +--- a/arch/x86/kernel/resource.c ++++ b/arch/x86/kernel/resource.c +@@ -1,6 +1,7 @@ + // SPDX-License-Identifier: GPL-2.0 + #include + #include ++#include + + static void resource_clip(struct resource *res, resource_size_t start, + resource_size_t end) +@@ -28,6 +29,9 @@ static void remove_e820_regions(struct resource *avail) + int i; + struct e820_entry *entry; + ++ if (!pci_use_e820) ++ return; ++ + for (i = 0; i < e820_table->nr_entries; i++) { + entry = &e820_table->entries[i]; + diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 40ed44ead063..31aac8c787cf 100644 --- a/arch/x86/kernel/setup.c @@ -227,6 +307,123 @@ index 40ed44ead063..31aac8c787cf 100644 reserve_initrd(); +diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c +index 948656069cdd..f357dac92610 100644 +--- a/arch/x86/pci/acpi.c ++++ b/arch/x86/pci/acpi.c +@@ -1,4 +1,7 @@ + // SPDX-License-Identifier: GPL-2.0 ++ ++#define pr_fmt(fmt) "PCI: " fmt ++ + #include + #include + #include +@@ -21,6 +24,8 @@ struct pci_root_info { + + static bool pci_use_crs = true; + static bool pci_ignore_seg = false; ++/* Consumed in arch/x86/kernel/resource.c */ ++bool pci_use_e820 = false; + + static int __init set_use_crs(const struct dmi_system_id *id) + { +@@ -36,7 +41,7 @@ static int __init set_nouse_crs(const struct dmi_system_id *id) + + static int __init set_ignore_seg(const struct dmi_system_id *id) + { +- printk(KERN_INFO "PCI: %s detected: ignoring ACPI _SEG\n", id->ident); ++ pr_info("%s detected: ignoring ACPI _SEG\n", id->ident); + pci_ignore_seg = true; + return 0; + } +@@ -156,10 +161,35 @@ void __init pci_acpi_crs_quirks(void) + else if (pci_probe & PCI_USE__CRS) + pci_use_crs = true; + +- printk(KERN_INFO "PCI: %s host bridge windows from ACPI; " +- "if necessary, use \"pci=%s\" and report a bug\n", +- pci_use_crs ? "Using" : "Ignoring", +- pci_use_crs ? "nocrs" : "use_crs"); ++ pr_info("%s host bridge windows from ACPI; if necessary, use \"pci=%s\" and report a bug\n", ++ pci_use_crs ? "Using" : "Ignoring", ++ pci_use_crs ? "nocrs" : "use_crs"); ++ ++ /* ++ * Some BIOS-es contain a bug where they add addresses which map to ++ * system RAM in the PCI host bridge window returned by the ACPI _CRS ++ * method, see commit 4dc2287c1805 ("x86: avoid E820 regions when ++ * allocating address space"). To avoid this Linux by default excludes ++ * E820 reservations when allocating addresses since 2010. ++ * In 2020 some systems have shown-up with E820 reservations which cover ++ * the entire _CRS returned PCI host bridge window, causing all attempts ++ * to assign memory to PCI BARs to fail if Linux uses E820 reservations. ++ * ++ * Ideally Linux would fully stop using E820 reservations, but then ++ * the old systems this was added for will regress. ++ * Instead keep the old behavior for old systems, while ignoring the ++ * E820 reservations for any systems from now on. ++ */ ++ if (year >= 0 && year < 2018) ++ pci_use_e820 = true; ++ ++ if (pci_probe & PCI_NO_E820) ++ pci_use_e820 = false; ++ else if (pci_probe & PCI_USE_E820) ++ pci_use_e820 = true; ++ ++ pr_info("%s E820 reservations for host bridge windows\n", ++ pci_use_e820 ? "Using" : "Ignoring"); + } + + #ifdef CONFIG_PCI_MMCONFIG +@@ -334,9 +364,8 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) + root->segment = domain = 0; + + if (domain && !pci_domains_supported) { +- printk(KERN_WARNING "pci_bus %04x:%02x: " +- "ignored (multiple domains not supported)\n", +- domain, busnum); ++ pr_warn("pci_bus %04x:%02x: ignored (multiple domains not supported)\n", ++ domain, busnum); + return NULL; + } + +@@ -404,7 +433,7 @@ int __init pci_acpi_init(void) + if (acpi_noirq) + return -ENODEV; + +- printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n"); ++ pr_info("Using ACPI for IRQ routing\n"); + acpi_irq_penalty_init(); + pcibios_enable_irq = acpi_pci_irq_enable; + pcibios_disable_irq = acpi_pci_irq_disable; +@@ -416,7 +445,7 @@ int __init pci_acpi_init(void) + * also do it here in case there are still broken drivers that + * don't use pci_enable_device(). + */ +- printk(KERN_INFO "PCI: Routing PCI interrupts for all devices because \"pci=routeirq\" specified\n"); ++ pr_info("Routing PCI interrupts for all devices because \"pci=routeirq\" specified\n"); + for_each_pci_dev(dev) + acpi_pci_irq_enable(dev); + } +diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c +index 3507f456fcd0..091ec7e94fcb 100644 +--- a/arch/x86/pci/common.c ++++ b/arch/x86/pci/common.c +@@ -595,6 +595,12 @@ char *__init pcibios_setup(char *str) + } else if (!strcmp(str, "nocrs")) { + pci_probe |= PCI_ROOT_NO_CRS; + return NULL; ++ } else if (!strcmp(str, "use_e820")) { ++ pci_probe |= PCI_USE_E820; ++ return NULL; ++ } else if (!strcmp(str, "no_e820")) { ++ pci_probe |= PCI_NO_E820; ++ return NULL; + #ifdef CONFIG_PHYS_ADDR_T_64BIT + } else if (!strcmp(str, "big_root_window")) { + pci_probe |= PCI_BIG_ROOT_WINDOW; diff --git a/crypto/rng.c b/crypto/rng.c index fea082b25fe4..50a9d040bed1 100644 --- a/crypto/rng.c @@ -1484,6 +1681,91 @@ index 86658a81d284..5647f4756e97 100644 /* 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/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c +index 1bf494b649bd..c8af2cd2216d 100644 +--- a/drivers/usb/host/xhci-tegra.c ++++ b/drivers/usb/host/xhci-tegra.c +@@ -1400,6 +1400,7 @@ static void tegra_xusb_deinit_usb_phy(struct tegra_xusb *tegra) + + static int tegra_xusb_probe(struct platform_device *pdev) + { ++ struct of_phandle_args args; + struct tegra_xusb *tegra; + struct device_node *np; + struct resource *regs; +@@ -1454,10 +1455,17 @@ static int tegra_xusb_probe(struct platform_device *pdev) + goto put_padctl; + } + +- tegra->padctl_irq = of_irq_get(np, 0); +- if (tegra->padctl_irq <= 0) { +- err = (tegra->padctl_irq == 0) ? -ENODEV : tegra->padctl_irq; +- goto put_padctl; ++ /* Older device-trees don't have padctrl interrupt */ ++ err = of_irq_parse_one(np, 0, &args); ++ if (!err) { ++ tegra->padctl_irq = of_irq_get(np, 0); ++ if (tegra->padctl_irq <= 0) { ++ err = (tegra->padctl_irq == 0) ? -ENODEV : tegra->padctl_irq; ++ goto put_padctl; ++ } ++ } else { ++ dev_dbg(&pdev->dev, ++ "%pOF is missing an interrupt, disabling PM support\n", np); + } + + tegra->host_clk = devm_clk_get(&pdev->dev, "xusb_host"); +@@ -1696,11 +1704,15 @@ static int tegra_xusb_probe(struct platform_device *pdev) + goto remove_usb3; + } + +- err = devm_request_threaded_irq(&pdev->dev, tegra->padctl_irq, NULL, tegra_xusb_padctl_irq, +- IRQF_ONESHOT, dev_name(&pdev->dev), tegra); +- if (err < 0) { +- dev_err(&pdev->dev, "failed to request padctl IRQ: %d\n", err); +- goto remove_usb3; ++ if (tegra->padctl_irq) { ++ err = devm_request_threaded_irq(&pdev->dev, tegra->padctl_irq, ++ NULL, tegra_xusb_padctl_irq, ++ IRQF_ONESHOT, dev_name(&pdev->dev), ++ tegra); ++ if (err < 0) { ++ dev_err(&pdev->dev, "failed to request padctl IRQ: %d\n", err); ++ goto remove_usb3; ++ } + } + + err = tegra_xusb_enable_firmware_messages(tegra); +@@ -1718,13 +1730,16 @@ static int tegra_xusb_probe(struct platform_device *pdev) + /* Enable wake for both USB 2.0 and USB 3.0 roothubs */ + device_init_wakeup(&tegra->hcd->self.root_hub->dev, true); + device_init_wakeup(&xhci->shared_hcd->self.root_hub->dev, true); +- device_init_wakeup(tegra->dev, true); + + pm_runtime_use_autosuspend(tegra->dev); + pm_runtime_set_autosuspend_delay(tegra->dev, 2000); + pm_runtime_mark_last_busy(tegra->dev); + pm_runtime_set_active(tegra->dev); +- pm_runtime_enable(tegra->dev); ++ ++ if (tegra->padctl_irq) { ++ device_init_wakeup(tegra->dev, true); ++ pm_runtime_enable(tegra->dev); ++ } + + return 0; + +@@ -1772,7 +1787,9 @@ static int tegra_xusb_remove(struct platform_device *pdev) + dma_free_coherent(&pdev->dev, tegra->fw.size, tegra->fw.virt, + tegra->fw.phys); + +- pm_runtime_disable(&pdev->dev); ++ if (tegra->padctl_irq) ++ pm_runtime_disable(&pdev->dev); ++ + pm_runtime_put(&pdev->dev); + + tegra_xusb_powergate_partitions(tegra); diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c index 309516e6a968..d39af03b456c 100644 --- a/fs/btrfs/async-thread.c @@ -1585,7 +1867,7 @@ index 6b5d36babfcc..fd4a5d66a9d0 100644 enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) { diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h -index 2adeea44c0d5..517013ece679 100644 +index 61590c1f2d33..4c10750865c2 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) @@ -1598,7 +1880,7 @@ index 2adeea44c0d5..517013ece679 100644 #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 +index 59024618554e..ab9ca4d393da 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -1545,6 +1545,12 @@ @@ -1652,7 +1934,7 @@ index ab7eea01ab42..fff7c5f737fc 100644 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 +index 46a02ce34d00..37e991a10d70 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); @@ -1663,7 +1945,7 @@ index 5b7288521300..f966f591c91e 100644 #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) +@@ -1353,6 +1354,10 @@ static inline int security_locked_down(enum lockdown_reason what) { return 0; } @@ -1782,7 +2064,7 @@ index 87cbdc64d272..18555cf18da7 100644 static int __init lockdown_lsm_init(void) diff --git a/security/security.c b/security/security.c -index 9ffa9e9c5c55..36484cc9842d 100644 +index 67264cb08fb3..85a0227bfac1 100644 --- a/security/security.c +++ b/security/security.c @@ -2599,6 +2599,12 @@ int security_locked_down(enum lockdown_reason what) diff --git a/sources b/sources index e868028..a3687ac 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ SHA512 (kernel-abi-whitelists-5.13.3-300.tar.bz2) = 6bf4f456ba178ec95b63b3818d3575773ede221e74fde97bb20eb32409a64c58d4f9a6acce9b8b58a5477d27cb708c53abe03dada02a3bdf1cfd596ccd129294 -SHA512 (linux-5.15.1.tar.xz) = 927a475f0cc40ed08c462130d799b0d74a6200d2db50c92940fc0d63c2aac9029ff4276e5bbfecad49953829599c155a96f8ce563d448f9649432e4c3d730b07 -SHA512 (kernel-abi-stablelists-5.15.1-200.tar.bz2) = 3b43f148d00de83c4649cf552e97c0787c25721fe7932332ee5d0cdc5b7c4b13a1fc988ba42b3696d04777037a0a0076f21842ffd91ccb8249d1be9dba4189b7 -SHA512 (kernel-kabi-dw-5.15.1-200.tar.bz2) = 8e06c53dd3b27a3980c9cbbfca86b12ddff0961c1534b56dc6bc292752dfa3dca455a5adbce56c559a4470563df868c62dec76d4ff06df474eef2392e22f8917 +SHA512 (linux-5.15.2.tar.xz) = 9256a57aee3fb226b0994f593bbb8e781a55706eb358d979394cf35ebf899dfe5a1b14cfc0b06ac968aa0730d9283b19543f5ea3e07e4e3575ceda71d48f862c +SHA512 (kernel-abi-stablelists-5.15.2-200.tar.bz2) = 134b3229c353ca90d225b29fd09c68817424f4e5dc9fa152d21778ca79e09e12e5c90c3c9607bb8075ef3da1788059e727c639f5609eea02901a00e8fc04716b +SHA512 (kernel-kabi-dw-5.15.2-200.tar.bz2) = 01afcac40bbbd02099677133aa803945e7d9f57d9d98d66d0831573156faa5aec1571a6b5e25b0b03c2ad055bbbed0e13618677c426e61d46e73ee42036308be