kernel-5.15-0

* Fri Nov 12 2021 Justin M. Forbes <jforbes@fedoraproject.org> [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 <jforbes@fedoraproject.org>
This commit is contained in:
Justin M. Forbes 2021-11-12 10:35:20 -06:00
commit d0578f42bd
No known key found for this signature in database
GPG key ID: B8FA7924A4B1C140
18 changed files with 338 additions and 43 deletions

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 <jforbes@fedoraproject.org> [5.15-200]
* Fri Nov 12 2021 Justin M. Forbes <jforbes@fedoraproject.org> [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)

View file

@ -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
+ <linux-pci@vger.kernel.org>.
+ 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 <linux-pci@vger.kernel.org>.
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 <linux/ioport.h>
#include <asm/e820/api.h>
+#include <asm/pci_x86.h>
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 <linux/pci.h>
#include <linux/acpi.h>
#include <linux/init.h>
@@ -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)

View file

@ -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