]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Drop iommu-vt-d-allocate-pasid-table-in-device-probe-path.patch-8635
authorSasha Levin <sashal@kernel.org>
Mon, 4 Dec 2023 19:50:21 +0000 (14:50 -0500)
committerSasha Levin <sashal@kernel.org>
Mon, 4 Dec 2023 19:50:21 +0000 (14:50 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-6.1/iommu-vt-d-allocate-pasid-table-in-device-probe-path.patch-8635 [deleted file]
queue-6.1/series

diff --git a/queue-6.1/iommu-vt-d-allocate-pasid-table-in-device-probe-path.patch-8635 b/queue-6.1/iommu-vt-d-allocate-pasid-table-in-device-probe-path.patch-8635
deleted file mode 100644 (file)
index b69f9e4..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From 9bca0c9bf6f44644f491b0bdf313086fc144a0fa Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 22 Nov 2022 08:29:43 +0800
-Subject: iommu/vt-d: Allocate pasid table in device probe path
-
-From: Lu Baolu <baolu.lu@linux.intel.com>
-
-[ Upstream commit ec62b4424174f41bdcedd08d12d7bed80088453d ]
-
-Whether or not a domain is attached to the device, the pasid table should
-always be valid as long as it has been probed. This moves the pasid table
-allocation from the domain attaching device path to device probe path and
-frees it in the device release path.
-
-Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
-Reviewed-by: Kevin Tian <kevin.tian@intel.com>
-Link: https://lore.kernel.org/r/20221118132451.114406-2-baolu.lu@linux.intel.com
-Signed-off-by: Joerg Roedel <jroedel@suse.de>
-Stable-dep-of: da37dddcf4ca ("iommu/vt-d: Disable PCI ATS in legacy passthrough mode")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/iommu/intel/iommu.c | 20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
-index bd34fcc5a5274..3dbf86c61f073 100644
---- a/drivers/iommu/intel/iommu.c
-+++ b/drivers/iommu/intel/iommu.c
-@@ -2494,13 +2494,6 @@ static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev)
-       /* PASID table is mandatory for a PCI device in scalable mode. */
-       if (sm_supported(iommu) && !dev_is_real_dma_subdevice(dev)) {
--              ret = intel_pasid_alloc_table(dev);
--              if (ret) {
--                      dev_err(dev, "PASID table allocation failed\n");
--                      dmar_remove_one_dev_info(dev);
--                      return ret;
--              }
--
-               /* Setup the PASID entry for requests without PASID: */
-               if (hw_pass_through && domain_type_is_si(domain))
-                       ret = intel_pasid_setup_pass_through(iommu, domain,
-@@ -4112,7 +4105,6 @@ static void dmar_remove_one_dev_info(struct device *dev)
-               iommu_disable_dev_iotlb(info);
-               domain_context_clear(info);
--              intel_pasid_free_table(info->dev);
-       }
-       spin_lock_irqsave(&domain->lock, flags);
-@@ -4477,6 +4469,7 @@ static struct iommu_device *intel_iommu_probe_device(struct device *dev)
-       struct device_domain_info *info;
-       struct intel_iommu *iommu;
-       u8 bus, devfn;
-+      int ret;
-       iommu = device_to_iommu(dev, &bus, &devfn);
-       if (!iommu || !iommu->iommu.ops)
-@@ -4521,6 +4514,16 @@ static struct iommu_device *intel_iommu_probe_device(struct device *dev)
-       dev_iommu_priv_set(dev, info);
-+      if (sm_supported(iommu) && !dev_is_real_dma_subdevice(dev)) {
-+              ret = intel_pasid_alloc_table(dev);
-+              if (ret) {
-+                      dev_err(dev, "PASID table allocation failed\n");
-+                      dev_iommu_priv_set(dev, NULL);
-+                      kfree(info);
-+                      return ERR_PTR(ret);
-+              }
-+      }
-+
-       return &iommu->iommu;
- }
-@@ -4529,6 +4532,7 @@ static void intel_iommu_release_device(struct device *dev)
-       struct device_domain_info *info = dev_iommu_priv_get(dev);
-       dmar_remove_one_dev_info(dev);
-+      intel_pasid_free_table(dev);
-       dev_iommu_priv_set(dev, NULL);
-       kfree(info);
-       set_dma_ops(dev, NULL);
--- 
-2.42.0
-
index faafa6d7297a78c6049048cbf6d85d4b827e0cf5..b3752d0aa6781daee8488cd5f2a94477fc415f88 100644 (file)
@@ -92,7 +92,6 @@ iommu-vt-d-add-device_block_translation-helper.patch
 iommu-vt-d-disable-pci-ats-in-legacy-passthrough-mod.patch
 iommu-vt-d-make-context-clearing-consistent-with-con.patch
 drm-amd-pm-fix-a-memleak-in-aldebaran_tables_init.patch
-iommu-vt-d-allocate-pasid-table-in-device-probe-path.patch-8635
 iommu-vt-d-add-device_block_translation-helper.patch-1231
 iommu-vt-d-disable-pci-ats-in-legacy-passthrough-mod.patch-15652
 iommu-vt-d-make-context-clearing-consistent-with-con.patch-12070