]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iommu: Remove iommu_dev_enable/disable_feature()
authorLu Baolu <baolu.lu@linux.intel.com>
Fri, 18 Apr 2025 08:01:30 +0000 (16:01 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 28 Apr 2025 11:04:35 +0000 (13:04 +0200)
No external drivers use these interfaces anymore. Furthermore, no existing
iommu drivers implement anything in the callbacks. Remove them to avoid
dead code.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Tested-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Link: https://lore.kernel.org/r/20250418080130.1844424-9-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/iommu.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
drivers/iommu/intel/iommu.c
drivers/iommu/iommu.c
include/linux/iommu.h

index 17aab6d04a138c8e4569c4dc6b860dab5b2c7673..a9d539fce982a4ccf594dbf890782560f559864f 100644 (file)
@@ -2984,36 +2984,6 @@ static const struct iommu_dirty_ops amd_dirty_ops = {
        .read_and_clear_dirty = amd_iommu_read_and_clear_dirty,
 };
 
-static int amd_iommu_dev_enable_feature(struct device *dev,
-                                       enum iommu_dev_features feat)
-{
-       int ret = 0;
-
-       switch (feat) {
-       case IOMMU_DEV_FEAT_IOPF:
-               break;
-       default:
-               ret = -EINVAL;
-               break;
-       }
-       return ret;
-}
-
-static int amd_iommu_dev_disable_feature(struct device *dev,
-                                        enum iommu_dev_features feat)
-{
-       int ret = 0;
-
-       switch (feat) {
-       case IOMMU_DEV_FEAT_IOPF:
-               break;
-       default:
-               ret = -EINVAL;
-               break;
-       }
-       return ret;
-}
-
 const struct iommu_ops amd_iommu_ops = {
        .capable = amd_iommu_capable,
        .blocked_domain = &blocked_domain,
@@ -3027,8 +2997,6 @@ const struct iommu_ops amd_iommu_ops = {
        .get_resv_regions = amd_iommu_get_resv_regions,
        .is_attach_deferred = amd_iommu_is_attach_deferred,
        .def_domain_type = amd_iommu_def_domain_type,
-       .dev_enable_feat = amd_iommu_dev_enable_feature,
-       .dev_disable_feat = amd_iommu_dev_disable_feature,
        .page_response = amd_iommu_page_response,
        .default_domain_ops = &(const struct iommu_domain_ops) {
                .attach_dev     = amd_iommu_attach_device,
index cddd7442661fdc1e6707aac2b0868fde9b4addd7..09d51efd9095cd467203bff088fceaf4ed54889b 100644 (file)
@@ -3643,38 +3643,6 @@ static void arm_smmu_get_resv_regions(struct device *dev,
        iommu_dma_get_resv_regions(dev, head);
 }
 
-static int arm_smmu_dev_enable_feature(struct device *dev,
-                                      enum iommu_dev_features feat)
-{
-       struct arm_smmu_master *master = dev_iommu_priv_get(dev);
-
-       if (!master)
-               return -ENODEV;
-
-       switch (feat) {
-       case IOMMU_DEV_FEAT_IOPF:
-               return 0;
-       default:
-               return -EINVAL;
-       }
-}
-
-static int arm_smmu_dev_disable_feature(struct device *dev,
-                                       enum iommu_dev_features feat)
-{
-       struct arm_smmu_master *master = dev_iommu_priv_get(dev);
-
-       if (!master)
-               return -EINVAL;
-
-       switch (feat) {
-       case IOMMU_DEV_FEAT_IOPF:
-               return 0;
-       default:
-               return -EINVAL;
-       }
-}
-
 /*
  * HiSilicon PCIe tune and trace device can be used to trace TLP headers on the
  * PCIe link and save the data to memory by DMA. The hardware is restricted to
@@ -3707,8 +3675,6 @@ static struct iommu_ops arm_smmu_ops = {
        .device_group           = arm_smmu_device_group,
        .of_xlate               = arm_smmu_of_xlate,
        .get_resv_regions       = arm_smmu_get_resv_regions,
-       .dev_enable_feat        = arm_smmu_dev_enable_feature,
-       .dev_disable_feat       = arm_smmu_dev_disable_feature,
        .page_response          = arm_smmu_page_response,
        .def_domain_type        = arm_smmu_def_domain_type,
        .viommu_alloc           = arm_vsmmu_alloc,
index a18e7504c7d13ba6558b7e3a47dcc548dc6e6919..e9ffe0a959441216b856f84489f997df78e0bf48 100644 (file)
@@ -3957,29 +3957,6 @@ void intel_iommu_disable_iopf(struct device *dev)
        iopf_queue_remove_device(iommu->iopf_queue, dev);
 }
 
-static int
-intel_iommu_dev_enable_feat(struct device *dev, enum iommu_dev_features feat)
-{
-       switch (feat) {
-       case IOMMU_DEV_FEAT_IOPF:
-               return 0;
-       default:
-               return -ENODEV;
-       }
-}
-
-static int
-intel_iommu_dev_disable_feat(struct device *dev, enum iommu_dev_features feat)
-{
-       switch (feat) {
-       case IOMMU_DEV_FEAT_IOPF:
-               return 0;
-
-       default:
-               return -ENODEV;
-       }
-}
-
 static bool intel_iommu_is_attach_deferred(struct device *dev)
 {
        struct device_domain_info *info = dev_iommu_priv_get(dev);
@@ -4421,8 +4398,6 @@ const struct iommu_ops intel_iommu_ops = {
        .release_device         = intel_iommu_release_device,
        .get_resv_regions       = intel_iommu_get_resv_regions,
        .device_group           = intel_iommu_device_group,
-       .dev_enable_feat        = intel_iommu_dev_enable_feat,
-       .dev_disable_feat       = intel_iommu_dev_disable_feat,
        .is_attach_deferred     = intel_iommu_is_attach_deferred,
        .def_domain_type        = device_def_domain_type,
        .pgsize_bitmap          = SZ_4K,
index 264383b507bce501cd8d2405a548d14d9c12e6e1..df283bddf6cdd7821fada8c60384bb2aeafe6db8 100644 (file)
@@ -2910,38 +2910,6 @@ int iommu_fwspec_add_ids(struct device *dev, const u32 *ids, int num_ids)
 }
 EXPORT_SYMBOL_GPL(iommu_fwspec_add_ids);
 
-/*
- * Per device IOMMU features.
- */
-int iommu_dev_enable_feature(struct device *dev, enum iommu_dev_features feat)
-{
-       if (dev_has_iommu(dev)) {
-               const struct iommu_ops *ops = dev_iommu_ops(dev);
-
-               if (ops->dev_enable_feat)
-                       return ops->dev_enable_feat(dev, feat);
-       }
-
-       return -ENODEV;
-}
-EXPORT_SYMBOL_GPL(iommu_dev_enable_feature);
-
-/*
- * The device drivers should do the necessary cleanups before calling this.
- */
-int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat)
-{
-       if (dev_has_iommu(dev)) {
-               const struct iommu_ops *ops = dev_iommu_ops(dev);
-
-               if (ops->dev_disable_feat)
-                       return ops->dev_disable_feat(dev, feat);
-       }
-
-       return -EBUSY;
-}
-EXPORT_SYMBOL_GPL(iommu_dev_disable_feature);
-
 /**
  * iommu_setup_default_domain - Set the default_domain for the group
  * @group: Group to change
index f39af28acaebaeb914ea8491a9eff0c1f345abe4..8d9119b000fe82d4a939caf7b36f7ae3b96d6540 100644 (file)
@@ -316,16 +316,6 @@ struct iommu_iort_rmr_data {
        u32 num_sids;
 };
 
-/**
- * enum iommu_dev_features - Per device IOMMU features
- * @IOMMU_DEV_FEAT_IOPF: I/O Page Faults such as PRI or Stall.
- *
- * Device drivers enable a feature using iommu_dev_enable_feature().
- */
-enum iommu_dev_features {
-       IOMMU_DEV_FEAT_IOPF,
-};
-
 #define IOMMU_NO_PASID (0U) /* Reserved for DMA w/o PASID */
 #define IOMMU_FIRST_GLOBAL_PASID       (1U) /*starting range for allocation */
 #define IOMMU_PASID_INVALID    (-1U)
@@ -657,9 +647,6 @@ struct iommu_ops {
        bool (*is_attach_deferred)(struct device *dev);
 
        /* Per device IOMMU features */
-       int (*dev_enable_feat)(struct device *dev, enum iommu_dev_features f);
-       int (*dev_disable_feat)(struct device *dev, enum iommu_dev_features f);
-
        void (*page_response)(struct device *dev, struct iopf_fault *evt,
                              struct iommu_page_response *msg);
 
@@ -1128,9 +1115,6 @@ void dev_iommu_priv_set(struct device *dev, void *priv);
 extern struct mutex iommu_probe_device_lock;
 int iommu_probe_device(struct device *dev);
 
-int iommu_dev_enable_feature(struct device *dev, enum iommu_dev_features f);
-int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features f);
-
 int iommu_device_use_default_domain(struct device *dev);
 void iommu_device_unuse_default_domain(struct device *dev);
 
@@ -1415,18 +1399,6 @@ static inline int iommu_fwspec_add_ids(struct device *dev, u32 *ids,
        return -ENODEV;
 }
 
-static inline int
-iommu_dev_enable_feature(struct device *dev, enum iommu_dev_features feat)
-{
-       return -ENODEV;
-}
-
-static inline int
-iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat)
-{
-       return -ENODEV;
-}
-
 static inline struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev)
 {
        return NULL;