diff --git a/Patchlist.changelog b/Patchlist.changelog index e962dc7ba..af388f405 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,12 @@ +https://gitlab.com/cki-project/kernel-ark/-/commit/f02942b95fb601b9729da7be1ae55d2255dcc045 + f02942b95fb601b9729da7be1ae55d2255dcc045 Revert "x86/PCI: Ignore E820 reservations for bridge windows on newer systems" + +https://gitlab.com/cki-project/kernel-ark/-/commit/0ee56a84bdf2c277b9b47ed0e006802d40d5d3cc + 0ee56a84bdf2c277b9b47ed0e006802d40d5d3cc usb: gadget: clear related members when goto fail + +https://gitlab.com/cki-project/kernel-ark/-/commit/6c9ee5e7caa95bbbe3a131552845ae141658a4ef + 6c9ee5e7caa95bbbe3a131552845ae141658a4ef usb: gadget: don't release an existing dev->buf + https://gitlab.com/cki-project/kernel-ark/-/commit/ebcfc72287e1a1c6758e2d80776e8c797c14c14e ebcfc72287e1a1c6758e2d80776e8c797c14c14e tipc: improve size validations for received domain records diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index 1a1f9caf0..9e5b31f71 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -331,6 +331,7 @@ CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1508412=y CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2119858=y diff --git a/kernel-aarch64-debug-rhel.config b/kernel-aarch64-debug-rhel.config index 9098b0a7d..340469760 100644 --- a/kernel-aarch64-debug-rhel.config +++ b/kernel-aarch64-debug-rhel.config @@ -260,6 +260,7 @@ CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1508412=y CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2119858=y diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index 061e839f2..86cd26154 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -331,6 +331,7 @@ CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1508412=y CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2119858=y diff --git a/kernel-aarch64-rhel.config b/kernel-aarch64-rhel.config index 6ad2fa1ee..61faaf573 100644 --- a/kernel-aarch64-rhel.config +++ b/kernel-aarch64-rhel.config @@ -260,6 +260,7 @@ CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1508412=y CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2119858=y diff --git a/kernel-s390x-debug-fedora.config b/kernel-s390x-debug-fedora.config index 68a3cc7eb..79637d35f 100644 --- a/kernel-s390x-debug-fedora.config +++ b/kernel-s390x-debug-fedora.config @@ -4926,6 +4926,7 @@ CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set +# CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m CONFIG_S390_TAPE_34XX=m CONFIG_S390_TAPE_3590=m diff --git a/kernel-s390x-debug-rhel.config b/kernel-s390x-debug-rhel.config index 79fdc7546..c56f647e6 100644 --- a/kernel-s390x-debug-rhel.config +++ b/kernel-s390x-debug-rhel.config @@ -4357,6 +4357,7 @@ CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set +# CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m CONFIG_S390_TAPE_34XX=m CONFIG_S390_TAPE_3590=m diff --git a/kernel-s390x-fedora.config b/kernel-s390x-fedora.config index dd4fbbd4a..16ce39e9a 100644 --- a/kernel-s390x-fedora.config +++ b/kernel-s390x-fedora.config @@ -4902,6 +4902,7 @@ CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set +# CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m CONFIG_S390_TAPE_34XX=m CONFIG_S390_TAPE_3590=m diff --git a/kernel-s390x-rhel.config b/kernel-s390x-rhel.config index 503a0c6bf..a2a7d9c54 100644 --- a/kernel-s390x-rhel.config +++ b/kernel-s390x-rhel.config @@ -4339,6 +4339,7 @@ CONFIG_S390_CCW_IOMMU=y CONFIG_S390_GUEST=y CONFIG_S390_HYPFS_FS=y # CONFIG_S390_KPROBES_SANITY_TEST is not set +# CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=m CONFIG_S390_TAPE_34XX=m CONFIG_S390_TAPE_3590=m diff --git a/kernel-s390x-zfcpdump-rhel.config b/kernel-s390x-zfcpdump-rhel.config index 904cb0352..7c546886d 100644 --- a/kernel-s390x-zfcpdump-rhel.config +++ b/kernel-s390x-zfcpdump-rhel.config @@ -4357,6 +4357,7 @@ CONFIG_S390_CCW_IOMMU=y # CONFIG_S390_GUEST is not set # CONFIG_S390_HYPFS_FS is not set # CONFIG_S390_KPROBES_SANITY_TEST is not set +# CONFIG_S390_MODULES_SANITY_TEST is not set CONFIG_S390_PRNG=y CONFIG_S390_TAPE_34XX=m CONFIG_S390_TAPE_3590=m diff --git a/kernel.spec b/kernel.spec index 25b0530b6..4b1efeff7 100755 --- a/kernel.spec +++ b/kernel.spec @@ -130,7 +130,7 @@ Summary: The Linux kernel # The kernel tarball/base version %define kversion 5.16 -%define rpmversion 5.16.9 +%define rpmversion 5.16.10 %define patchversion 5.16 %define pkgrelease 200 @@ -692,7 +692,7 @@ BuildRequires: lld # exact git commit you can run # # xzcat -qq ${TARBALL} | git get-tar-commit-id -Source0: linux-5.16.9.tar.xz +Source0: linux-5.16.10.tar.xz Source1: Makefile.rhelver @@ -1386,8 +1386,8 @@ ApplyOptionalPatch() fi } -%setup -q -n kernel-5.16.9 -c -mv linux-5.16.9 linux-%{KVERREL} +%setup -q -n kernel-5.16.10 -c +mv linux-5.16.10 linux-%{KVERREL} cd linux-%{KVERREL} cp -a %{SOURCE1} . @@ -2986,6 +2986,14 @@ fi # # %changelog +* Wed Feb 16 2022 Justin M. Forbes [5.16.10-200] +- New configs for 5.16.10 (Justin M. Forbes) + +* Wed Feb 16 2022 Justin M. Forbes [5.16.10-0] +- Revert "x86/PCI: Ignore E820 reservations for bridge windows on newer systems" (Justin M. Forbes) +- usb: gadget: clear related members when goto fail (Hangyu Hua) +- usb: gadget: don't release an existing dev->buf (Hangyu Hua) + * Fri Feb 11 2022 Justin M. Forbes [5.16.9-0] - tipc: improve size validations for received domain records (Jon Maloy) diff --git a/patch-5.16-redhat.patch b/patch-5.16-redhat.patch index a748eeaa2..944b3a022 100644 --- a/patch-5.16-redhat.patch +++ b/patch-5.16-redhat.patch @@ -4,7 +4,6 @@ arch/s390/include/asm/ipl.h | 1 + arch/s390/kernel/ipl.c | 5 + arch/s390/kernel/setup.c | 4 + - arch/x86/kernel/resource.c | 23 +++- arch/x86/kernel/setup.c | 22 ++-- crypto/rng.c | 73 +++++++++++- drivers/acpi/apei/hest.c | 8 ++ @@ -31,6 +30,7 @@ drivers/nvme/host/nvme.h | 4 + drivers/pci/quirks.c | 24 ++++ drivers/usb/core/hub.c | 7 ++ + drivers/usb/gadget/legacy/inode.c | 10 +- include/linux/efi.h | 22 ++-- include/linux/lsm_hook_defs.h | 2 + include/linux/lsm_hooks.h | 6 + @@ -47,10 +47,10 @@ security/lockdown/lockdown.c | 1 + security/security.c | 6 + tools/testing/selftests/netfilter/nft_nat.sh | 5 +- - 49 files changed, 820 insertions(+), 196 deletions(-) + 49 files changed, 805 insertions(+), 198 deletions(-) diff --git a/Makefile b/Makefile -index 1f32bb42f328..592f45010531 100644 +index 36bbff16530b..e17c7fd5312f 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -81,10 +81,10 @@ index c2724d986fa0..8063dcef65f7 100644 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 c4207cf9bb17..9e440657f15e 100644 +index ae0e93871ee5..7d5274349536 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -1023,7 +1023,7 @@ endchoice +@@ -1093,7 +1093,7 @@ endchoice config ARM64_FORCE_52BIT bool "Force 52-bit virtual addresses for userspace" @@ -93,7 +93,7 @@ index c4207cf9bb17..9e440657f15e 100644 help For systems with 52-bit userspace VAs enabled, the kernel will attempt to maintain compatibility with older software by providing 48-bit VAs -@@ -1277,6 +1277,7 @@ config XEN +@@ -1347,6 +1347,7 @@ config XEN config FORCE_MAX_ZONEORDER int default "14" if ARM64_64K_PAGES @@ -148,49 +148,6 @@ index 225ab2d0a4c6..6a06cde25ca2 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/kernel/resource.c b/arch/x86/kernel/resource.c -index 9b9fb7882c20..9ae64f9af956 100644 ---- a/arch/x86/kernel/resource.c -+++ b/arch/x86/kernel/resource.c -@@ -1,4 +1,5 @@ - // SPDX-License-Identifier: GPL-2.0 -+#include - #include - #include - -@@ -23,11 +24,31 @@ static void resource_clip(struct resource *res, resource_size_t start, - res->start = end + 1; - } - -+/* -+ * 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 2019 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. -+ */ - static void remove_e820_regions(struct resource *avail) - { -- int i; -+ int i, year = dmi_get_bios_year(); - struct e820_entry *entry; - -+ if (year >= 2018) -+ return; -+ -+ pr_info_once("PCI: Removing E820 reservations from host bridge windows\n"); -+ - 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 e04f5e6eb33f..8015e3d2dc9a 100644 --- a/arch/x86/kernel/setup.c @@ -1257,7 +1214,7 @@ index 258d5fe3d395..f7298e3dc8f3 100644 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 8b86406b7162..2dffe129b902 100644 +index 3632bf8b4031..f9675209b5a2 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -7,6 +7,7 @@ @@ -1268,7 +1225,7 @@ index 8b86406b7162..2dffe129b902 100644 #include #include #include -@@ -3119,6 +3120,27 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) +@@ -3124,6 +3125,27 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) } EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); @@ -1607,6 +1564,42 @@ index ac6c5ccfe1cb..ec784479eece 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/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c +index 3b58f4fc0a80..25c8809e0a38 100644 +--- a/drivers/usb/gadget/legacy/inode.c ++++ b/drivers/usb/gadget/legacy/inode.c +@@ -1826,8 +1826,9 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) + spin_lock_irq (&dev->lock); + value = -EINVAL; + if (dev->buf) { ++ spin_unlock_irq(&dev->lock); + kfree(kbuf); +- goto fail; ++ return value; + } + dev->buf = kbuf; + +@@ -1874,8 +1875,8 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) + + value = usb_gadget_probe_driver(&gadgetfs_driver); + if (value != 0) { +- kfree (dev->buf); +- dev->buf = NULL; ++ spin_lock_irq(&dev->lock); ++ goto fail; + } else { + /* at this point "good" hardware has for the first time + * let the USB the host see us. alternatively, if users +@@ -1892,6 +1893,9 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) + return value; + + fail: ++ dev->config = NULL; ++ dev->hs_config = NULL; ++ dev->dev = NULL; + spin_unlock_irq (&dev->lock); + pr_debug ("%s: %s fail %zd, %p\n", shortname, __func__, value, dev); + kfree (dev->buf); diff --git a/include/linux/efi.h b/include/linux/efi.h index ef8dbc0a1522..836a5dfc6156 100644 --- a/include/linux/efi.h diff --git a/sources b/sources index 3d604ccc3..65b96f4b1 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-5.16.9.tar.xz) = 6e09a51817922ac552af008fbf072ba6a6974ff990f2e2105f34e291f7dbca103975f9d75c3d455f482890ebdfba15b8c7bf14a8f22b26b4690e5c80ffb76cb9 -SHA512 (kernel-abi-stablelists-5.16.9-200.tar.bz2) = d202b95dc93b4e51442e0ecaa89700f0359bb15522ea0127bcf68e33b6b6c88f2d62fea1019c86abf10f8ea062d8df631bfb54c18d4725206fffb70d45fe90ea -SHA512 (kernel-kabi-dw-5.16.9-200.tar.bz2) = cfc68b2457ccd7deec9c329dbe3f49d06f539e409ac410ee360efc86378663f38ea01f52a6a6928d29f4474c4b632f3fad737256b2fde3c19cb62b8688e0fdaa +SHA512 (linux-5.16.10.tar.xz) = 8b5111d116acc4fb79d5b8320718fd566cbe71719fbf5863973ae8b6fbb6dcac4a30b5f095ffc4fd2721e4c1aa179155892b2bbd73e87eeb3d3e918ff561fc33 +SHA512 (kernel-abi-stablelists-5.16.10-200.tar.bz2) = a768fa28eeb152ef5b2ae8365e5903b0c90e1ed5313c1c6156ad0f78aea9ddfd4282940068bbefb5c1621d6f6f6b23aa1548951ccc38568bf326699964b48332 +SHA512 (kernel-kabi-dw-5.16.10-200.tar.bz2) = a32eb6ac3e67aea26eb344c610c7a93c3e9a36816db288f8810c2788c6677308a7658c02b4d6251dd0fb3a98dbff6ca8770d227b6b8874173d4d7333c630ccd7