Date: Saturday, August 6, 2022 @ 22:00:36 Author: heftig Revision: 452373
5.15.59-2 Added: linux-lts/trunk/0002-PCI-Add-more-NVIDIA-controllers-to-the-MSI-masking-q.patch (from rev 452323, linux-lts/trunk/0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch) linux-lts/trunk/0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch (from rev 452323, linux-lts/trunk/0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch) linux-lts/trunk/0004-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch (from rev 452323, linux-lts/trunk/0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch) linux-lts/trunk/0005-lg-laptop-Recognize-more-models.patch (from rev 452323, linux-lts/trunk/0005-lg-laptop_Recognize_more_models.patch) linux-lts/trunk/0006-Fix-NFSv4-mount-regression.patch Modified: linux-lts/trunk/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch linux-lts/trunk/PKGBUILD linux-lts/trunk/config linux-lts/trunk/keys/pgp/647F28654894E3BD457199BE38DBBDC86092693E.asc linux-lts/trunk/keys/pgp/ABAF11C65A2970B130ABE3C479BE3E4300411886.asc Deleted: linux-lts/trunk/0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch linux-lts/trunk/0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch linux-lts/trunk/0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch linux-lts/trunk/0005-lg-laptop_Recognize_more_models.patch linux-lts/trunk/0006_fix_NFSv4_mount_regression.diff --------------------------------------------------------------------------+ 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch | 18 0002-PCI-Add-more-NVIDIA-controllers-to-the-MSI-masking-q.patch | 21 0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch | 21 0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch | 85 +++ 0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch | 85 --- 0004-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch | 57 ++ 0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch | 57 -- 0005-lg-laptop-Recognize-more-models.patch | 36 + 0005-lg-laptop_Recognize_more_models.patch | 36 - 0006-Fix-NFSv4-mount-regression.patch | 238 +++++++++ 0006_fix_NFSv4_mount_regression.diff | 243 ---------- PKGBUILD | 42 - config | 44 + 13 files changed, 493 insertions(+), 490 deletions(-) Modified: 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch =================================================================== --- 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 2022-08-06 21:35:08 UTC (rev 452372) +++ 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,4 +1,4 @@ -From 0948f6ce6d898c598f8fe88240954e578fdc8387 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steff...@gmail.com> Date: Mon, 16 Sep 2019 04:53:20 +0200 Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged @@ -14,7 +14,7 @@ 5 files changed, 53 insertions(+) diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h -index 33a4240e6a6f1..82213f9c4c17f 100644 +index 33a4240e6a6f..82213f9c4c17 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h @@ -139,6 +139,8 @@ static inline void set_rlimit_ucount_max(struct user_namespace *ns, @@ -36,10 +36,10 @@ { return &init_user_ns; diff --git a/init/Kconfig b/init/Kconfig -index 11f8a845f259d..02b7a0e455a5d 100644 +index d19ed66aba3b..a67689ca1929 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -1226,6 +1226,22 @@ config USER_NS +@@ -1231,6 +1231,22 @@ config USER_NS If unsure, say N. @@ -63,7 +63,7 @@ bool "PID Namespaces" default y diff --git a/kernel/fork.c b/kernel/fork.c -index 10885c649ca42..e0fe98e1afbdb 100644 +index 89475c994ca9..a00b3f26f241 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -98,6 +98,10 @@ @@ -88,7 +88,7 @@ /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -3056,6 +3064,12 @@ int ksys_unshare(unsigned long unshare_flags) +@@ -3066,6 +3074,12 @@ int ksys_unshare(unsigned long unshare_flags) if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -102,7 +102,7 @@ if (err) goto bad_unshare_out; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 083be6af29d70..42aa3c7835b96 100644 +index 23c08bf3db58..63ab60778e5d 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -105,6 +105,9 @@ @@ -115,7 +115,7 @@ #if defined(CONFIG_SYSCTL) -@@ -1949,6 +1952,15 @@ static struct ctl_table kern_table[] = { +@@ -1953,6 +1956,15 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_dointvec, }, #endif @@ -132,7 +132,7 @@ { .procname = "tainted", diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index 6b2e3ca7ee993..0253002184f1d 100644 +index 5481ba44a8d6..423ab2563ad7 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -21,6 +21,13 @@ Copied: linux-lts/trunk/0002-PCI-Add-more-NVIDIA-controllers-to-the-MSI-masking-q.patch (from rev 452323, linux-lts/trunk/0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch) =================================================================== --- 0002-PCI-Add-more-NVIDIA-controllers-to-the-MSI-masking-q.patch (rev 0) +++ 0002-PCI-Add-more-NVIDIA-controllers-to-the-MSI-masking-q.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <hef...@archlinux.org> +Date: Thu, 18 Nov 2021 22:53:31 +0100 +Subject: [PATCH] PCI: Add more NVIDIA controllers to the MSI masking quirk + +For: https://bugs.archlinux.org/task/72734 +For: https://bugs.archlinux.org/task/72777 +--- + drivers/pci/quirks.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index 4893b1e82403..6ac303124b69 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -5821,3 +5821,5 @@ static void nvidia_ion_ahci_fixup(struct pci_dev *pdev) + pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING; + } + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab9, nvidia_ion_ahci_fixup); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0d88, nvidia_ion_ahci_fixup); Deleted: 0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch =================================================================== --- 0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch 2022-08-06 21:35:08 UTC (rev 452372) +++ 0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,21 +0,0 @@ -From 0bb6e4f104167b1e283269b46f3bbd30b2d979a7 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <hef...@archlinux.org> -Date: Thu, 18 Nov 2021 22:53:31 +0100 -Subject: [PATCH] PCI: Add more NVIDIA controllers to the MSI masking quirk - -For: https://bugs.archlinux.org/task/72734 -For: https://bugs.archlinux.org/task/72777 ---- - drivers/pci/quirks.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 208fa03acdda0..7fdb7e9c2e12c 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -5802,3 +5802,5 @@ static void nvidia_ion_ahci_fixup(struct pci_dev *pdev) - pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING; - } - DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab9, nvidia_ion_ahci_fixup); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0d88, nvidia_ion_ahci_fixup); Copied: linux-lts/trunk/0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch (from rev 452323, linux-lts/trunk/0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch) =================================================================== --- 0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch (rev 0) +++ 0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -0,0 +1,85 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ajay Garg <ajaygargn...@gmail.com> +Date: Tue, 12 Oct 2021 19:26:53 +0530 +Subject: [PATCH] iommu: intel: do deep dma-unmapping, to avoid + kernel-flooding. + +Origins at : +https://lists.linuxfoundation.org/pipermail/iommu/2021-October/thread.html + +=== Changes from v1 => v2 === + +a) +Improved patch-description. + +b) +A more root-level fix, as suggested by + + 1. + Alex Williamson <alex.william...@redhat.com> + + 2. + Lu Baolu <baolu...@linux.intel.com> + +=== Issue === + +Kernel-flooding is seen, when an x86_64 L1 guest (Ubuntu-21) is booted in qemu/kvm +on a x86_64 host (Ubuntu-21), with a host-pci-device attached. + +Following kind of logs, along with the stacktraces, cause the flood : + +...... + DMAR: ERROR: DMA PTE for vPFN 0x428ec already set (to 3f6ec003 not 3f6ec003) + DMAR: ERROR: DMA PTE for vPFN 0x428ed already set (to 3f6ed003 not 3f6ed003) + DMAR: ERROR: DMA PTE for vPFN 0x428ee already set (to 3f6ee003 not 3f6ee003) + DMAR: ERROR: DMA PTE for vPFN 0x428ef already set (to 3f6ef003 not 3f6ef003) + DMAR: ERROR: DMA PTE for vPFN 0x428f0 already set (to 3f6f0003 not 3f6f0003) +...... + +=== Current Behaviour, leading to the issue === + +Currently, when we do a dma-unmapping, we unmap/unlink the mappings, but +the pte-entries are not cleared. + +Thus, following sequencing would flood the kernel-logs : + +i) +A dma-unmapping makes the real/leaf-level pte-slot invalid, but the +pte-content itself is not cleared. + +ii) +Now, during some later dma-mapping procedure, as the pte-slot is about +to hold a new pte-value, the intel-iommu checks if a prior +pte-entry exists in the pte-slot. If it exists, it logs a kernel-error, +along with a corresponding stacktrace. + +iii) +Step ii) runs in abundance, and the kernel-logs run insane. + +=== Fix === + +We ensure that as part of a dma-unmapping, each (unmapped) pte-slot +is also cleared of its value/content (at the leaf-level, where the +real mapping from a iova => pfn mapping is stored). + +This completes a "deep" dma-unmapping. + +Signed-off-by: Ajay Garg <ajaygargn...@gmail.com> +Link: https://lore.kernel.org/linux-iommu/20211012135653.3852-1-ajaygargn...@gmail.com/ +--- + drivers/iommu/intel/iommu.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c +index a1ffb3d6d901..c41788ea1a03 100644 +--- a/drivers/iommu/intel/iommu.c ++++ b/drivers/iommu/intel/iommu.c +@@ -5113,6 +5113,8 @@ static size_t intel_iommu_unmap(struct iommu_domain *domain, + gather->freelist = domain_unmap(dmar_domain, start_pfn, + last_pfn, gather->freelist); + ++ dma_pte_clear_range(dmar_domain, start_pfn, last_pfn); ++ + if (dmar_domain->max_addr == iova + size) + dmar_domain->max_addr = iova; + Deleted: 0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch =================================================================== --- 0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch 2022-08-06 21:35:08 UTC (rev 452372) +++ 0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,85 +0,0 @@ -From 32803dc7c2ffc29db15a46034d818f6e6c5775ef Mon Sep 17 00:00:00 2001 -From: Ajay Garg <ajaygargn...@gmail.com> -Date: Tue, 12 Oct 2021 19:26:53 +0530 -Subject: [PATCH] iommu: intel: do deep dma-unmapping, to avoid - kernel-flooding. - -Origins at : -https://lists.linuxfoundation.org/pipermail/iommu/2021-October/thread.html - -=== Changes from v1 => v2 === - -a) -Improved patch-description. - -b) -A more root-level fix, as suggested by - - 1. - Alex Williamson <alex.william...@redhat.com> - - 2. - Lu Baolu <baolu...@linux.intel.com> - -=== Issue === - -Kernel-flooding is seen, when an x86_64 L1 guest (Ubuntu-21) is booted in qemu/kvm -on a x86_64 host (Ubuntu-21), with a host-pci-device attached. - -Following kind of logs, along with the stacktraces, cause the flood : - -...... - DMAR: ERROR: DMA PTE for vPFN 0x428ec already set (to 3f6ec003 not 3f6ec003) - DMAR: ERROR: DMA PTE for vPFN 0x428ed already set (to 3f6ed003 not 3f6ed003) - DMAR: ERROR: DMA PTE for vPFN 0x428ee already set (to 3f6ee003 not 3f6ee003) - DMAR: ERROR: DMA PTE for vPFN 0x428ef already set (to 3f6ef003 not 3f6ef003) - DMAR: ERROR: DMA PTE for vPFN 0x428f0 already set (to 3f6f0003 not 3f6f0003) -...... - -=== Current Behaviour, leading to the issue === - -Currently, when we do a dma-unmapping, we unmap/unlink the mappings, but -the pte-entries are not cleared. - -Thus, following sequencing would flood the kernel-logs : - -i) -A dma-unmapping makes the real/leaf-level pte-slot invalid, but the -pte-content itself is not cleared. - -ii) -Now, during some later dma-mapping procedure, as the pte-slot is about -to hold a new pte-value, the intel-iommu checks if a prior -pte-entry exists in the pte-slot. If it exists, it logs a kernel-error, -along with a corresponding stacktrace. - -iii) -Step ii) runs in abundance, and the kernel-logs run insane. - -=== Fix === - -We ensure that as part of a dma-unmapping, each (unmapped) pte-slot -is also cleared of its value/content (at the leaf-level, where the -real mapping from a iova => pfn mapping is stored). - -This completes a "deep" dma-unmapping. - -Signed-off-by: Ajay Garg <ajaygargn...@gmail.com> -Link: https://lore.kernel.org/linux-iommu/20211012135653.3852-1-ajaygargn...@gmail.com/ ---- - drivers/iommu/intel/iommu.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c -index 78f8c8e6803e9..d8da48a91ba3b 100644 ---- a/drivers/iommu/intel/iommu.c -+++ b/drivers/iommu/intel/iommu.c -@@ -5092,6 +5092,8 @@ static size_t intel_iommu_unmap(struct iommu_domain *domain, - gather->freelist = domain_unmap(dmar_domain, start_pfn, - last_pfn, gather->freelist); - -+ dma_pte_clear_range(dmar_domain, start_pfn, last_pfn); -+ - if (dmar_domain->max_addr == iova + size) - dmar_domain->max_addr = iova; - Copied: linux-lts/trunk/0004-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch (from rev 452323, linux-lts/trunk/0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch) =================================================================== --- 0004-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch (rev 0) +++ 0004-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -0,0 +1,57 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kiran K <kira...@intel.com> +Date: Wed, 13 Oct 2021 13:35:11 +0530 +Subject: [PATCH] Bluetooth: btintel: Fix bdaddress comparison with garbage + value + +Intel Read Verision(TLV) data is parsed into a local structure variable +and it contains a field for bd address. Bd address is returned only in +bootloader mode and hence bd address in TLV structure needs to be validated +only if controller is present in boot loader mode. + +Signed-off-by: Kiran K <kira...@intel.com> +Reviewed-by: Tedd Ho-Jeong An <tedd...@intel.com> +--- + drivers/bluetooth/btintel.c | 22 ++++++++++++++-------- + 1 file changed, 14 insertions(+), 8 deletions(-) + +diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c +index d122cc973917..a828fcd05d83 100644 +--- a/drivers/bluetooth/btintel.c ++++ b/drivers/bluetooth/btintel.c +@@ -2006,14 +2006,16 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev, + if (ver->img_type == 0x03) { + btintel_clear_flag(hdev, INTEL_BOOTLOADER); + btintel_check_bdaddr(hdev); +- } +- +- /* If the OTP has no valid Bluetooth device address, then there will +- * also be no valid address for the operational firmware. +- */ +- if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { +- bt_dev_info(hdev, "No device address configured"); +- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ++ } else { ++ /* ++ * Check for valid bd address in boot loader mode. Device ++ * will be marked as unconfigured if empty bd address is ++ * found. ++ */ ++ if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { ++ bt_dev_info(hdev, "No device address configured"); ++ set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ++ } + } + + btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi"); +@@ -2309,6 +2311,10 @@ static int btintel_setup_combined(struct hci_dev *hdev) + goto exit_error; + } + ++ /* memset ver_tlv to start with clean state as few fields are exclusive ++ * to bootloader mode and are not populated in operational mode ++ */ ++ memset(&ver_tlv, 0, sizeof(ver_tlv)); + /* For TLV type device, parse the tlv data */ + err = btintel_parse_version_tlv(hdev, &ver_tlv, skb); + if (err) { Deleted: 0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch =================================================================== --- 0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch 2022-08-06 21:35:08 UTC (rev 452372) +++ 0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,57 +0,0 @@ -From a6d4fb4f5e7fe795d9e3b28b261a0f86f1026d03 Mon Sep 17 00:00:00 2001 -From: Kiran K <kira...@intel.com> -Date: Wed, 13 Oct 2021 13:35:11 +0530 -Subject: [PATCH] Bluetooth: btintel: Fix bdaddress comparison with garbage - value - -Intel Read Verision(TLV) data is parsed into a local structure variable -and it contains a field for bd address. Bd address is returned only in -bootloader mode and hence bd address in TLV structure needs to be validated -only if controller is present in boot loader mode. - -Signed-off-by: Kiran K <kira...@intel.com> -Reviewed-by: Tedd Ho-Jeong An <tedd...@intel.com> ---- - drivers/bluetooth/btintel.c | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c -index f1705b46fc889..b9055a3e61ed7 100644 ---- a/drivers/bluetooth/btintel.c -+++ b/drivers/bluetooth/btintel.c -@@ -2006,14 +2006,16 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev, - if (ver->img_type == 0x03) { - btintel_clear_flag(hdev, INTEL_BOOTLOADER); - btintel_check_bdaddr(hdev); -- } -- -- /* If the OTP has no valid Bluetooth device address, then there will -- * also be no valid address for the operational firmware. -- */ -- if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { -- bt_dev_info(hdev, "No device address configured"); -- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); -+ } else { -+ /* -+ * Check for valid bd address in boot loader mode. Device -+ * will be marked as unconfigured if empty bd address is -+ * found. -+ */ -+ if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { -+ bt_dev_info(hdev, "No device address configured"); -+ set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); -+ } - } - - btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi"); -@@ -2303,6 +2305,10 @@ static int btintel_setup_combined(struct hci_dev *hdev) - goto exit_error; - } - -+ /* memset ver_tlv to start with clean state as few fields are exclusive -+ * to bootloader mode and are not populated in operational mode -+ */ -+ memset(&ver_tlv, 0, sizeof(ver_tlv)); - /* For TLV type device, parse the tlv data */ - err = btintel_parse_version_tlv(hdev, &ver_tlv, skb); - if (err) { Copied: linux-lts/trunk/0005-lg-laptop-Recognize-more-models.patch (from rev 452323, linux-lts/trunk/0005-lg-laptop_Recognize_more_models.patch) =================================================================== --- 0005-lg-laptop-Recognize-more-models.patch (rev 0) +++ 0005-lg-laptop-Recognize-more-models.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matan Ziv-Av <ma...@svgalib.org> +Date: Tue, 23 Nov 2021 22:14:55 +0200 +Subject: [PATCH] lg-laptop: Recognize more models + +LG uses 5 instead of 0 in the third digit (second digit after 2019) of the year string to indicate newer models in the same year. Handle this case as well. + +Signed-off-by: Matan Ziv-Av <ma...@svgalib.org> +For: https://bugs.archlinux.org/task/71772 +--- + drivers/platform/x86/lg-laptop.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c +index 88b551caeaaf..d6f74d3a7605 100644 +--- a/drivers/platform/x86/lg-laptop.c ++++ b/drivers/platform/x86/lg-laptop.c +@@ -658,6 +658,18 @@ static int acpi_add(struct acpi_device *device) + if (product && strlen(product) > 4) + switch (product[4]) { + case '5': ++ if (strlen(product) > 5) ++ switch (product[5]) { ++ case 'N': ++ year = 2021; ++ break; ++ case '0': ++ year = 2016; ++ break; ++ default: ++ year = 2022; ++ } ++ break; + case '6': + year = 2016; + break; Deleted: 0005-lg-laptop_Recognize_more_models.patch =================================================================== --- 0005-lg-laptop_Recognize_more_models.patch 2022-08-06 21:35:08 UTC (rev 452372) +++ 0005-lg-laptop_Recognize_more_models.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,36 +0,0 @@ -From 72edf8c167268bb68d701f46006ccfdfa5490db8 Mon Sep 17 00:00:00 2001 -From: Matan Ziv-Av <ma...@svgalib.org> -Date: Tue, 23 Nov 2021 22:14:55 +0200 -Subject: [PATCH] lg-laptop: Recognize more models - -LG uses 5 instead of 0 in the third digit (second digit after 2019) of the year string to indicate newer models in the same year. Handle this case as well. - -Signed-off-by: Matan Ziv-Av <ma...@svgalib.org> -For: https://bugs.archlinux.org/task/71772 ---- - drivers/platform/x86/lg-laptop.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/drivers/platform/x86/lg-laptop.c b/drivers/platform/x86/lg-laptop.c -index 88b551caeaaf4..d6f74d3a7605e 100644 ---- a/drivers/platform/x86/lg-laptop.c -+++ b/drivers/platform/x86/lg-laptop.c -@@ -658,6 +658,18 @@ static int acpi_add(struct acpi_device *device) - if (product && strlen(product) > 4) - switch (product[4]) { - case '5': -+ if (strlen(product) > 5) -+ switch (product[5]) { -+ case 'N': -+ year = 2021; -+ break; -+ case '0': -+ year = 2016; -+ break; -+ default: -+ year = 2022; -+ } -+ break; - case '6': - year = 2016; - break; Added: 0006-Fix-NFSv4-mount-regression.patch =================================================================== --- 0006-Fix-NFSv4-mount-regression.patch (rev 0) +++ 0006-Fix-NFSv4-mount-regression.patch 2022-08-06 22:00:36 UTC (rev 452373) @@ -0,0 +1,238 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <hef...@archlinux.org> +Date: Sat, 6 Aug 2022 22:54:33 +0200 +Subject: [PATCH] Fix NFSv4 mount regression + +This reverts commit 6f2836341d8a (NFSv4.1 query for fs_location attr on +a new file system, 2022-01-12). + +For: https://bugs.archlinux.org/task/73838 +For: https://bugs.archlinux.org/task/73860 +--- + fs/nfs/client.c | 7 ---- + fs/nfs/nfs4_fs.h | 9 +++-- + fs/nfs/nfs4proc.c | 76 ++++++----------------------------------- + fs/nfs/nfs4state.c | 3 +- + include/linux/nfs_xdr.h | 1 - + 5 files changed, 15 insertions(+), 81 deletions(-) + +diff --git a/fs/nfs/client.c b/fs/nfs/client.c +index 090b16890e3d..551833862171 100644 +--- a/fs/nfs/client.c ++++ b/fs/nfs/client.c +@@ -860,13 +860,6 @@ int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, struct nfs + server->namelen = pathinfo.max_namelen; + } + +- if (clp->rpc_ops->discover_trunking != NULL && +- (server->caps & NFS_CAP_FS_LOCATIONS)) { +- error = clp->rpc_ops->discover_trunking(server, mntfh); +- if (error < 0) +- return error; +- } +- + return 0; + } + EXPORT_SYMBOL_GPL(nfs_probe_fsinfo); +diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h +index f8672a34fd63..36471dd0e82b 100644 +--- a/fs/nfs/nfs4_fs.h ++++ b/fs/nfs/nfs4_fs.h +@@ -261,8 +261,8 @@ struct nfs4_state_maintenance_ops { + }; + + struct nfs4_mig_recovery_ops { +- int (*get_locations)(struct nfs_server *, struct nfs_fh *, +- struct nfs4_fs_locations *, struct page *, const struct cred *); ++ int (*get_locations)(struct inode *, struct nfs4_fs_locations *, ++ struct page *, const struct cred *); + int (*fsid_present)(struct inode *, const struct cred *); + }; + +@@ -304,9 +304,8 @@ extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait); + extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); + extern int nfs4_proc_fs_locations(struct rpc_clnt *, struct inode *, const struct qstr *, + struct nfs4_fs_locations *, struct page *); +-extern int nfs4_proc_get_locations(struct nfs_server *, struct nfs_fh *, +- struct nfs4_fs_locations *, +- struct page *page, const struct cred *); ++extern int nfs4_proc_get_locations(struct inode *, struct nfs4_fs_locations *, ++ struct page *page, const struct cred *); + extern int nfs4_proc_fsid_present(struct inode *, const struct cred *); + extern struct rpc_clnt *nfs4_proc_lookup_mountpoint(struct inode *, + struct dentry *, +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index cbb39aff8182..3d4dee10cb11 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -3963,60 +3963,6 @@ int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) + return err; + } + +-static int _nfs4_discover_trunking(struct nfs_server *server, +- struct nfs_fh *fhandle) +-{ +- struct nfs4_fs_locations *locations = NULL; +- struct page *page; +- const struct cred *cred; +- struct nfs_client *clp = server->nfs_client; +- const struct nfs4_state_maintenance_ops *ops = +- clp->cl_mvops->state_renewal_ops; +- int status = -ENOMEM; +- +- cred = ops->get_state_renewal_cred(clp); +- if (cred == NULL) { +- cred = nfs4_get_clid_cred(clp); +- if (cred == NULL) +- return -ENOKEY; +- } +- +- page = alloc_page(GFP_KERNEL); +- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); +- if (page == NULL || locations == NULL) +- goto out; +- +- status = nfs4_proc_get_locations(server, fhandle, locations, page, +- cred); +- if (status) +- goto out; +-out: +- if (page) +- __free_page(page); +- kfree(locations); +- return status; +-} +- +-static int nfs4_discover_trunking(struct nfs_server *server, +- struct nfs_fh *fhandle) +-{ +- struct nfs4_exception exception = { +- .interruptible = true, +- }; +- struct nfs_client *clp = server->nfs_client; +- int err = 0; +- +- if (!nfs4_has_session(clp)) +- goto out; +- do { +- err = nfs4_handle_exception(server, +- _nfs4_discover_trunking(server, fhandle), +- &exception); +- } while (exception.retry); +-out: +- return err; +-} +- + static int _nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle, + struct nfs_fsinfo *info) + { +@@ -7952,18 +7898,18 @@ int nfs4_proc_fs_locations(struct rpc_clnt *client, struct inode *dir, + * appended to this compound to identify the client ID which is + * performing recovery. + */ +-static int _nfs40_proc_get_locations(struct nfs_server *server, +- struct nfs_fh *fhandle, ++static int _nfs40_proc_get_locations(struct inode *inode, + struct nfs4_fs_locations *locations, + struct page *page, const struct cred *cred) + { ++ struct nfs_server *server = NFS_SERVER(inode); + struct rpc_clnt *clnt = server->client; + u32 bitmask[2] = { + [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, + }; + struct nfs4_fs_locations_arg args = { + .clientid = server->nfs_client->cl_clientid, +- .fh = fhandle, ++ .fh = NFS_FH(inode), + .page = page, + .bitmask = bitmask, + .migration = 1, /* skip LOOKUP */ +@@ -8009,17 +7955,17 @@ static int _nfs40_proc_get_locations(struct nfs_server *server, + * When the client supports GETATTR(fs_locations_info), it can + * be plumbed in here. + */ +-static int _nfs41_proc_get_locations(struct nfs_server *server, +- struct nfs_fh *fhandle, ++static int _nfs41_proc_get_locations(struct inode *inode, + struct nfs4_fs_locations *locations, + struct page *page, const struct cred *cred) + { ++ struct nfs_server *server = NFS_SERVER(inode); + struct rpc_clnt *clnt = server->client; + u32 bitmask[2] = { + [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, + }; + struct nfs4_fs_locations_arg args = { +- .fh = fhandle, ++ .fh = NFS_FH(inode), + .page = page, + .bitmask = bitmask, + .migration = 1, /* skip LOOKUP */ +@@ -8068,28 +8014,27 @@ static int _nfs41_proc_get_locations(struct nfs_server *server, + * -NFS4ERR_LEASE_MOVED is returned if the server still has leases + * from this client that require migration recovery. + */ +-int nfs4_proc_get_locations(struct nfs_server *server, +- struct nfs_fh *fhandle, ++int nfs4_proc_get_locations(struct inode *inode, + struct nfs4_fs_locations *locations, + struct page *page, const struct cred *cred) + { ++ struct nfs_server *server = NFS_SERVER(inode); + struct nfs_client *clp = server->nfs_client; + const struct nfs4_mig_recovery_ops *ops = + clp->cl_mvops->mig_recovery_ops; + struct nfs4_exception exception = { + .interruptible = true, + }; + int status; + + dprintk("%s: FSID %llx:%llx on \"%s\"\n", __func__, + (unsigned long long)server->fsid.major, + (unsigned long long)server->fsid.minor, + clp->cl_hostname); +- nfs_display_fhandle(fhandle, __func__); ++ nfs_display_fhandle(NFS_FH(inode), __func__); + + do { +- status = ops->get_locations(server, fhandle, locations, page, +- cred); ++ status = ops->get_locations(inode, locations, page, cred); + if (status != -NFS4ERR_DELAY) + break; + nfs4_handle_exception(server, status, &exception); +@@ -10586,7 +10531,6 @@ const struct nfs_rpc_ops nfs_v4_clientops = { + .free_client = nfs4_free_client, + .create_server = nfs4_create_server, + .clone_server = nfs_clone_server, +- .discover_trunking = nfs4_discover_trunking, + }; + + static const struct xattr_handler nfs4_xattr_nfs4_acl_handler = { +diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c +index 83c88b54d712..42707e12d35c 100644 +--- a/fs/nfs/nfs4state.c ++++ b/fs/nfs/nfs4state.c +@@ -2098,8 +2098,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred + } + + inode = d_inode(server->super->s_root); +- result = nfs4_proc_get_locations(server, NFS_FH(inode), locations, +- page, cred); ++ result = nfs4_proc_get_locations(inode, locations, page, cred); + if (result) { + dprintk("<-- %s: failed to retrieve fs_locations: %d\n", + __func__, result); +diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h +index ecd74cc34797..e9698b6278a5 100644 +--- a/include/linux/nfs_xdr.h ++++ b/include/linux/nfs_xdr.h +@@ -1805,7 +1805,6 @@ struct nfs_rpc_ops { + struct nfs_server *(*create_server)(struct fs_context *); + struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *, + struct nfs_fattr *, rpc_authflavor_t); +- int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); + }; + + /* Deleted: 0006_fix_NFSv4_mount_regression.diff =================================================================== --- 0006_fix_NFSv4_mount_regression.diff 2022-08-06 21:35:08 UTC (rev 452372) +++ 0006_fix_NFSv4_mount_regression.diff 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,243 +0,0 @@ -From 6f2836341d8a39e1e000572b10959347d7e61fd9 Mon Sep 17 00:00:00 2001 -From: Olga Kornievskaia <ko...@netapp.com> -Date: Wed, 12 Jan 2022 10:27:38 -0500 -Subject: NFSv4.1 query for fs_location attr on a new file system - -[ Upstream commit 1976b2b31462151403c9fc110204fcc2a77bdfd1 ] - -Query the server for other possible trunkable locations for a given -file system on a 4.1+ mount. - -v2: --- added missing static to nfs4_discover_trunking, -reported by the kernel test robot - -Signed-off-by: Olga Kornievskaia <ko...@netapp.com> -Signed-off-by: Anna Schumaker <anna.schuma...@netapp.com> -Signed-off-by: Sasha Levin <sas...@kernel.org> ---- - fs/nfs/client.c | 7 +++++ - fs/nfs/nfs4_fs.h | 9 +++--- - fs/nfs/nfs4proc.c | 76 ++++++++++++++++++++++++++++++++++++++++++------- - fs/nfs/nfs4state.c | 3 +- - include/linux/nfs_xdr.h | 1 + - 5 files changed, 81 insertions(+), 15 deletions(-) - -diff --git a/fs/nfs/client.c b/fs/nfs/client.c -index 551833862171f..090b16890e3d6 100644 ---- a/fs/nfs/client.c -+++ b/fs/nfs/client.c -@@ -860,6 +860,13 @@ int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, struct nfs - server->namelen = pathinfo.max_namelen; - } - -+ if (clp->rpc_ops->discover_trunking != NULL && -+ (server->caps & NFS_CAP_FS_LOCATIONS)) { -+ error = clp->rpc_ops->discover_trunking(server, mntfh); -+ if (error < 0) -+ return error; -+ } -+ - return 0; - } - EXPORT_SYMBOL_GPL(nfs_probe_fsinfo); -diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h -index ba78df4b13d94..1a048ee653a11 100644 ---- a/fs/nfs/nfs4_fs.h -+++ b/fs/nfs/nfs4_fs.h -@@ -261,8 +261,8 @@ struct nfs4_state_maintenance_ops { - }; - - struct nfs4_mig_recovery_ops { -- int (*get_locations)(struct inode *, struct nfs4_fs_locations *, -- struct page *, const struct cred *); -+ int (*get_locations)(struct nfs_server *, struct nfs_fh *, -+ struct nfs4_fs_locations *, struct page *, const struct cred *); - int (*fsid_present)(struct inode *, const struct cred *); - }; - -@@ -303,8 +303,9 @@ extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait); - extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); - extern int nfs4_proc_fs_locations(struct rpc_clnt *, struct inode *, const struct qstr *, - struct nfs4_fs_locations *, struct page *); --extern int nfs4_proc_get_locations(struct inode *, struct nfs4_fs_locations *, -- struct page *page, const struct cred *); -+extern int nfs4_proc_get_locations(struct nfs_server *, struct nfs_fh *, -+ struct nfs4_fs_locations *, -+ struct page *page, const struct cred *); - extern int nfs4_proc_fsid_present(struct inode *, const struct cred *); - extern struct rpc_clnt *nfs4_proc_lookup_mountpoint(struct inode *, - struct dentry *, -diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index 367a1b99b7550..389fa72d4ca98 100644 ---- a/fs/nfs/nfs4proc.c -+++ b/fs/nfs/nfs4proc.c -@@ -3952,6 +3952,60 @@ int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) - return err; - } - -+static int _nfs4_discover_trunking(struct nfs_server *server, -+ struct nfs_fh *fhandle) -+{ -+ struct nfs4_fs_locations *locations = NULL; -+ struct page *page; -+ const struct cred *cred; -+ struct nfs_client *clp = server->nfs_client; -+ const struct nfs4_state_maintenance_ops *ops = -+ clp->cl_mvops->state_renewal_ops; -+ int status = -ENOMEM; -+ -+ cred = ops->get_state_renewal_cred(clp); -+ if (cred == NULL) { -+ cred = nfs4_get_clid_cred(clp); -+ if (cred == NULL) -+ return -ENOKEY; -+ } -+ -+ page = alloc_page(GFP_KERNEL); -+ locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); -+ if (page == NULL || locations == NULL) -+ goto out; -+ -+ status = nfs4_proc_get_locations(server, fhandle, locations, page, -+ cred); -+ if (status) -+ goto out; -+out: -+ if (page) -+ __free_page(page); -+ kfree(locations); -+ return status; -+} -+ -+static int nfs4_discover_trunking(struct nfs_server *server, -+ struct nfs_fh *fhandle) -+{ -+ struct nfs4_exception exception = { -+ .interruptible = true, -+ }; -+ struct nfs_client *clp = server->nfs_client; -+ int err = 0; -+ -+ if (!nfs4_has_session(clp)) -+ goto out; -+ do { -+ err = nfs4_handle_exception(server, -+ _nfs4_discover_trunking(server, fhandle), -+ &exception); -+ } while (exception.retry); -+out: -+ return err; -+} -+ - static int _nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle, - struct nfs_fsinfo *info) - { -@@ -7886,18 +7940,18 @@ int nfs4_proc_fs_locations(struct rpc_clnt *client, struct inode *dir, - * appended to this compound to identify the client ID which is - * performing recovery. - */ --static int _nfs40_proc_get_locations(struct inode *inode, -+static int _nfs40_proc_get_locations(struct nfs_server *server, -+ struct nfs_fh *fhandle, - struct nfs4_fs_locations *locations, - struct page *page, const struct cred *cred) - { -- struct nfs_server *server = NFS_SERVER(inode); - struct rpc_clnt *clnt = server->client; - u32 bitmask[2] = { - [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, - }; - struct nfs4_fs_locations_arg args = { - .clientid = server->nfs_client->cl_clientid, -- .fh = NFS_FH(inode), -+ .fh = fhandle, - .page = page, - .bitmask = bitmask, - .migration = 1, /* skip LOOKUP */ -@@ -7943,17 +7997,17 @@ static int _nfs40_proc_get_locations(struct inode *inode, - * When the client supports GETATTR(fs_locations_info), it can - * be plumbed in here. - */ --static int _nfs41_proc_get_locations(struct inode *inode, -+static int _nfs41_proc_get_locations(struct nfs_server *server, -+ struct nfs_fh *fhandle, - struct nfs4_fs_locations *locations, - struct page *page, const struct cred *cred) - { -- struct nfs_server *server = NFS_SERVER(inode); - struct rpc_clnt *clnt = server->client; - u32 bitmask[2] = { - [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, - }; - struct nfs4_fs_locations_arg args = { -- .fh = NFS_FH(inode), -+ .fh = fhandle, - .page = page, - .bitmask = bitmask, - .migration = 1, /* skip LOOKUP */ -@@ -8002,11 +8056,11 @@ static int _nfs41_proc_get_locations(struct inode *inode, - * -NFS4ERR_LEASE_MOVED is returned if the server still has leases - * from this client that require migration recovery. - */ --int nfs4_proc_get_locations(struct inode *inode, -+int nfs4_proc_get_locations(struct nfs_server *server, -+ struct nfs_fh *fhandle, - struct nfs4_fs_locations *locations, - struct page *page, const struct cred *cred) - { -- struct nfs_server *server = NFS_SERVER(inode); - struct nfs_client *clp = server->nfs_client; - const struct nfs4_mig_recovery_ops *ops = - clp->cl_mvops->mig_recovery_ops; -@@ -8019,10 +8073,11 @@ int nfs4_proc_get_locations(struct inode *inode, - (unsigned long long)server->fsid.major, - (unsigned long long)server->fsid.minor, - clp->cl_hostname); -- nfs_display_fhandle(NFS_FH(inode), __func__); -+ nfs_display_fhandle(fhandle, __func__); - - do { -- status = ops->get_locations(inode, locations, page, cred); -+ status = ops->get_locations(server, fhandle, locations, page, -+ cred); - if (status != -NFS4ERR_DELAY) - break; - nfs4_handle_exception(server, status, &exception); -@@ -10516,6 +10571,7 @@ const struct nfs_rpc_ops nfs_v4_clientops = { - .free_client = nfs4_free_client, - .create_server = nfs4_create_server, - .clone_server = nfs_clone_server, -+ .discover_trunking = nfs4_discover_trunking, - }; - - static const struct xattr_handler nfs4_xattr_nfs4_acl_handler = { -diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c -index acc1cd3e63a48..51f5cb41e87a4 100644 ---- a/fs/nfs/nfs4state.c -+++ b/fs/nfs/nfs4state.c -@@ -2097,7 +2097,8 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred - } - - inode = d_inode(server->super->s_root); -- result = nfs4_proc_get_locations(inode, locations, page, cred); -+ result = nfs4_proc_get_locations(server, NFS_FH(inode), locations, -+ page, cred); - if (result) { - dprintk("<-- %s: failed to retrieve fs_locations: %d\n", - __func__, result); -diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h -index e9698b6278a52..ecd74cc347974 100644 ---- a/include/linux/nfs_xdr.h -+++ b/include/linux/nfs_xdr.h -@@ -1805,6 +1805,7 @@ struct nfs_rpc_ops { - struct nfs_server *(*create_server)(struct fs_context *); - struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *, - struct nfs_fattr *, rpc_authflavor_t); -+ int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); - }; - - /* --- -cgit - Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-08-06 21:35:08 UTC (rev 452372) +++ PKGBUILD 2022-08-06 22:00:36 UTC (rev 452373) @@ -2,7 +2,7 @@ pkgbase=linux-lts pkgver=5.15.59 -pkgrel=1 +pkgrel=2 pkgdesc='LTS Linux' url="https://www.kernel.org/" arch=(x86_64) @@ -17,11 +17,11 @@ https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.{xz,sign} config # the main kernel config file 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - 0002-PCI_Add_more_NVIDIA_controllers_to_the_MSI_masking_quirk.patch - 0003-iommu_intel_do_deep_dma-unmapping_to_avoid_kernel-flooding.patch - 0004-Bluetooth_btintel_Fix_bdaddress_comparison_with_garbage_value.patch - 0005-lg-laptop_Recognize_more_models.patch - 0006_fix_NFSv4_mount_regression.diff + 0002-PCI-Add-more-NVIDIA-controllers-to-the-MSI-masking-q.patch + 0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch + 0004-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch + 0005-lg-laptop-Recognize-more-models.patch + 0006-Fix-NFSv4-mount-regression.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds @@ -30,13 +30,13 @@ # https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc sha256sums=('e6ddc642057340db06b3b921c2b31bfed2c611359e8f144c3e5cf9c3ac33bccb' 'SKIP' - '40ac3199a57af7c069ab8f4a8d791cc6d8d609ba7b4c972169b027a0a8557a44' - '99df282c594cc269d9a5d19bb86ea887892d3654cfc53c4ce94a644cf3278423' - 'c35018601f04ae81e0a2018a8597595db6ae053158c206845399cdebb2d2b706' - '7c7707c738983f3683d76295b496f578996b7341fa39ad334ec2833bfe4b966e' - '3fa8a4af66d5a3b99b48ca979a247c61e81c9b2d3bcdffa9d3895a5532a420b4' - '79266c6cc970733fd35881d9a8f0a74c25c00b4d81741b8d4bba6827c48f7c78' - 'e9527ad81d5b1821a7b17c56cb3abaec85785563f51e448cb3c06f1c68e2966f') + 'd54ffc9e42ceed0a6b53b9ce0c707743c60986fd0919e282aedcca9a7746160c' + '7bd64ff894475b3415d792ba8466ba7e8f872af56dbf1aeed0d261fe4008b8b5' + '39649dc1dfcb06b411ad124e123769e955a78961b4ea17538c0919a930925549' + '56c12551e859cc67520909e64feecbf1b190cee8addef150c5b9d1bb1d40981e' + '5c1ee81fdd5818442af6081de987f9c1a9ce3c8d183566b3dfc19a8433aa3dde' + '067e8995fcd6f6ed25e0253e9374c0e179a000c154da3e59ce62634945ac5be9' + '95dad02b01937681af0a207e22a6bf64c33e067bf7a14cb98262dd8f69194eb8') export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_USER=$pkgbase @@ -45,10 +45,6 @@ prepare() { cd $_srcname - # fix NFSv4 mounting issue regression - FS#73838 / FS#73860 - # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=6f2836341d8a39e1e000572b10959347d7e61fd9 - patch -Rp1 -i ../0006_fix_NFSv4_mount_regression.diff - echo "Setting version..." scripts/setlocalversion --save-scmversion echo "-$pkgrel" > localversion.10-pkgrel @@ -66,8 +62,8 @@ echo "Setting config..." cp ../config .config make olddefconfig -# diff -u ../config .config || : -#return 1 + diff -u ../config .config || : + make -s kernelrelease > version echo "Prepared $pkgbase version $(<version)" } @@ -82,7 +78,7 @@ depends=(coreutils kmod initramfs) optdepends=('wireless-regdb: to set the correct wireless channels of your country' 'linux-firmware: firmware images needed for some devices') - provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) + provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE KSMBD-MODULE) replaces=(wireguard-lts) cd $_srcname @@ -119,11 +115,11 @@ install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile cp -t "$builddir" -a scripts - # add objtool for external module building and enabled VALIDATION_STACK option + # required when STACK_VALIDATION is enabled install -Dt "$builddir/tools/objtool" tools/objtool/objtool - # add xfs and shmem for aufs building - mkdir -p "$builddir"/{fs/xfs,mm} + # required when DEBUG_INFO_BTF_MODULES is enabled + install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids echo "Installing headers..." cp -t "$builddir" -a include Modified: config =================================================================== --- config 2022-08-06 21:35:08 UTC (rev 452372) +++ config 2022-08-06 22:00:36 UTC (rev 452373) @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.15.58 Kernel Configuration +# Linux/x86 5.15.59 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.1.0" CONFIG_CC_IS_GCC=y @@ -117,7 +117,7 @@ CONFIG_BPF_JIT=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT_DEFAULT_ON=y -# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set +CONFIG_BPF_UNPRIV_DEFAULT_OFF=y CONFIG_USERMODE_DRIVER=y CONFIG_BPF_PRELOAD=y CONFIG_BPF_PRELOAD_UMD=m @@ -127,7 +127,7 @@ CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set -# CONFIG_SCHED_CORE is not set +CONFIG_SCHED_CORE=y # # CPU/Task time and stats accounting @@ -486,7 +486,9 @@ CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y CONFIG_ARCH_HAS_KEXEC_PURGATORY=y -# CONFIG_KEXEC_SIG is not set +CONFIG_KEXEC_SIG=y +# CONFIG_KEXEC_SIG_FORCE is not set +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y CONFIG_PHYSICAL_START=0x1000000 @@ -519,7 +521,7 @@ CONFIG_CPU_UNRET_ENTRY=y CONFIG_CPU_IBPB_ENTRY=y CONFIG_CPU_IBRS_ENTRY=y -# CONFIG_SLS is not set +CONFIG_SLS=y CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y @@ -712,7 +714,7 @@ CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m -# CONFIG_X86_SGX_KVM is not set +CONFIG_X86_SGX_KVM=y CONFIG_KVM_AMD=m CONFIG_KVM_AMD_SEV=y CONFIG_KVM_XEN=y @@ -1070,7 +1072,9 @@ # # Data Access Monitoring # -# CONFIG_DAMON is not set +CONFIG_DAMON=y +CONFIG_DAMON_VADDR=y +CONFIG_DAMON_DBGFS=y # end of Data Access Monitoring # end of Memory Management options @@ -9584,7 +9588,7 @@ CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_HUGETLB_PAGE_FREE_VMEMMAP=y -CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON=y +# CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON is not set CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y @@ -9879,19 +9883,27 @@ # CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set # CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set CONFIG_SECURITY_LANDLOCK=y -# CONFIG_INTEGRITY is not set +CONFIG_INTEGRITY=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y +CONFIG_INTEGRITY_TRUSTED_KEYRING=y +CONFIG_INTEGRITY_PLATFORM_KEYRING=y +CONFIG_LOAD_UEFI_KEYS=y +CONFIG_INTEGRITY_AUDIT=y +# CONFIG_IMA is not set +# CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY is not set # CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set +# CONFIG_EVM is not set # CONFIG_DEFAULT_SECURITY_SELINUX is not set # CONFIG_DEFAULT_SECURITY_SMACK is not set # CONFIG_DEFAULT_SECURITY_TOMOYO is not set # CONFIG_DEFAULT_SECURITY_APPARMOR is not set CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_LSM="landlock,lockdown,yama,bpf" +CONFIG_LSM="landlock,lockdown,yama,integrity,bpf" # # Kernel hardening options # -CONFIG_GCC_PLUGIN_STRUCTLEAK=y # # Memory initialization @@ -9901,10 +9913,9 @@ # CONFIG_INIT_STACK_NONE is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set -CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y +# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set # CONFIG_INIT_STACK_ALL_PATTERN is not set -# CONFIG_INIT_STACK_ALL_ZERO is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set +CONFIG_INIT_STACK_ALL_ZERO=y # CONFIG_GCC_PLUGIN_STACKLEAK is not set CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set @@ -10296,6 +10307,7 @@ CONFIG_CLZ_TAB=y CONFIG_IRQ_POLL=y CONFIG_MPILIB=y +CONFIG_SIGNATURE=y CONFIG_DIMLIB=y CONFIG_OID_REGISTRY=y CONFIG_UCS2_STRING=y @@ -10431,7 +10443,7 @@ CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y -CONFIG_KASAN=y +# CONFIG_KASAN is not set CONFIG_HAVE_ARCH_KFENCE=y CONFIG_KFENCE=y CONFIG_KFENCE_SAMPLE_INTERVAL=100 @@ -10684,7 +10696,7 @@ # CONFIG_TEST_FPU is not set # CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set CONFIG_ARCH_USE_MEMTEST=y -# CONFIG_MEMTEST is not set +CONFIG_MEMTEST=y # CONFIG_HYPERV_TESTING is not set # end of Kernel Testing and Coverage # end of Kernel hacking Modified: keys/pgp/647F28654894E3BD457199BE38DBBDC86092693E.asc =================================================================== (Binary files differ) Modified: keys/pgp/ABAF11C65A2970B130ABE3C479BE3E4300411886.asc =================================================================== (Binary files differ)