]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dmaengine: idxd: Remove unnecessary IOMMU_DEV_FEAT_IOPF
authorLu Baolu <baolu.lu@linux.intel.com>
Fri, 18 Apr 2025 08:01:27 +0000 (16:01 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 28 Apr 2025 11:04:33 +0000 (13:04 +0200)
The IOMMU_DEV_FEAT_IOPF implementation in the iommu driver is just a no-op.
It will also be removed from the iommu driver in the subsequent patch.
Remove it to avoid dead code.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Acked-by: Vinod Koul <vkoul@kernel.org>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Fenghua Yu <fenghuay@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Yi Liu <yi.l.liu@intel.com>
Tested-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Link: https://lore.kernel.org/r/20250418080130.1844424-6-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/dma/idxd/init.c

index 2d3d580b9987ef5fac7ac5cd97492c27f8bef7a1..9e739a4d1ecd5d4d859c4f8d9833b0ab8a12ec5f 100644 (file)
@@ -626,21 +626,6 @@ static void idxd_disable_system_pasid(struct idxd_device *idxd)
        idxd->pasid = IOMMU_PASID_INVALID;
 }
 
-static int idxd_enable_sva(struct pci_dev *pdev)
-{
-       int ret;
-
-       ret = iommu_dev_enable_feature(&pdev->dev, IOMMU_DEV_FEAT_IOPF);
-       if (ret)
-               return ret;
-       return 0;
-}
-
-static void idxd_disable_sva(struct pci_dev *pdev)
-{
-       iommu_dev_disable_feature(&pdev->dev, IOMMU_DEV_FEAT_IOPF);
-}
-
 static int idxd_probe(struct idxd_device *idxd)
 {
        struct pci_dev *pdev = idxd->pdev;
@@ -655,17 +640,13 @@ static int idxd_probe(struct idxd_device *idxd)
        dev_dbg(dev, "IDXD reset complete\n");
 
        if (IS_ENABLED(CONFIG_INTEL_IDXD_SVM) && sva) {
-               if (idxd_enable_sva(pdev)) {
-                       dev_warn(dev, "Unable to turn on user SVA feature.\n");
-               } else {
-                       set_bit(IDXD_FLAG_USER_PASID_ENABLED, &idxd->flags);
+               set_bit(IDXD_FLAG_USER_PASID_ENABLED, &idxd->flags);
 
-                       rc = idxd_enable_system_pasid(idxd);
-                       if (rc)
-                               dev_warn(dev, "No in-kernel DMA with PASID. %d\n", rc);
-                       else
-                               set_bit(IDXD_FLAG_PASID_ENABLED, &idxd->flags);
-               }
+               rc = idxd_enable_system_pasid(idxd);
+               if (rc)
+                       dev_warn(dev, "No in-kernel DMA with PASID. %d\n", rc);
+               else
+                       set_bit(IDXD_FLAG_PASID_ENABLED, &idxd->flags);
        } else if (!sva) {
                dev_warn(dev, "User forced SVA off via module param.\n");
        }
@@ -703,8 +684,6 @@ static int idxd_probe(struct idxd_device *idxd)
  err:
        if (device_pasid_enabled(idxd))
                idxd_disable_system_pasid(idxd);
-       if (device_user_pasid_enabled(idxd))
-               idxd_disable_sva(pdev);
        return rc;
 }
 
@@ -715,8 +694,6 @@ static void idxd_cleanup(struct idxd_device *idxd)
        idxd_cleanup_internals(idxd);
        if (device_pasid_enabled(idxd))
                idxd_disable_system_pasid(idxd);
-       if (device_user_pasid_enabled(idxd))
-               idxd_disable_sva(idxd->pdev);
 }
 
 /*
@@ -1247,8 +1224,6 @@ static void idxd_remove(struct pci_dev *pdev)
        free_irq(irq_entry->vector, irq_entry);
        pci_free_irq_vectors(pdev);
        pci_iounmap(pdev, idxd->reg_base);
-       if (device_user_pasid_enabled(idxd))
-               idxd_disable_sva(pdev);
        pci_disable_device(pdev);
        destroy_workqueue(idxd->wq);
        perfmon_pmu_remove(idxd);