[arch-commits] Commit in linux-lts/trunk (15 files)

Jan Steffens heftig at gemini.archlinux.org
Sat Aug 6 22:00:37 UTC 2022


    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.steffens at 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)" <heftig at 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)" <heftig at 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 <ajaygargnsit at 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.williamson at redhat.com>
+
+	2.
+	Lu Baolu <baolu.lu at 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 <ajaygargnsit at gmail.com>
+Link: https://lore.kernel.org/linux-iommu/20211012135653.3852-1-ajaygargnsit@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 <ajaygargnsit at 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.williamson at redhat.com>
-
-	2.
-	Lu Baolu <baolu.lu at 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 <ajaygargnsit at gmail.com>
-Link: https://lore.kernel.org/linux-iommu/20211012135653.3852-1-ajaygargnsit@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 <kiran.k at 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 <kiran.k at intel.com>
+Reviewed-by: Tedd Ho-Jeong An <tedd.an at 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 <kiran.k at 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 <kiran.k at intel.com>
-Reviewed-by: Tedd Ho-Jeong An <tedd.an at 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 <matan at 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 <matan at 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 <matan at 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 <matan at 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)" <heftig at 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 <kolga at 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 <kolga at netapp.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker at Netapp.com>
-Signed-off-by: Sasha Levin <sashal at 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)



More information about the arch-commits mailing list