]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iommu: Remove iommu_domain_alloc()
authorLu Baolu <baolu.lu@linux.intel.com>
Wed, 9 Oct 2024 04:11:47 +0000 (12:11 +0800)
committerJoerg Roedel <jroedel@suse.de>
Tue, 29 Oct 2024 09:04:42 +0000 (10:04 +0100)
The iommu_domain_alloc() interface is no longer used in the tree anymore.
Remove it to avoid dead code.

There is increasing demand for supporting multiple IOMMU drivers, and this
is the last bus-based thing standing in the way of that.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20241009041147.28391-5-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/iommu.c
include/linux/iommu.h

index e5d5b4fd322ab8cb75f4e03c116fbb439ed133f2..fe967b5fd09483c43d9d9a677009c00d232d42a4 100644 (file)
@@ -1965,42 +1965,6 @@ __iommu_group_domain_alloc(struct iommu_group *group, unsigned int type)
        return __iommu_domain_alloc(dev_iommu_ops(dev), dev, type);
 }
 
-static int __iommu_domain_alloc_dev(struct device *dev, void *data)
-{
-       const struct iommu_ops **ops = data;
-
-       if (!dev_has_iommu(dev))
-               return 0;
-
-       if (WARN_ONCE(*ops && *ops != dev_iommu_ops(dev),
-                     "Multiple IOMMU drivers present for bus %s, which the public IOMMU API can't fully support yet. You will still need to disable one or more for this to work, sorry!\n",
-                     dev_bus_name(dev)))
-               return -EBUSY;
-
-       *ops = dev_iommu_ops(dev);
-       return 0;
-}
-
-/*
- * The iommu ops in bus has been retired. Do not use this interface in
- * new drivers.
- */
-struct iommu_domain *iommu_domain_alloc(const struct bus_type *bus)
-{
-       const struct iommu_ops *ops = NULL;
-       int err = bus_for_each_dev(bus, NULL, &ops, __iommu_domain_alloc_dev);
-       struct iommu_domain *domain;
-
-       if (err || !ops)
-               return NULL;
-
-       domain = __iommu_domain_alloc(ops, NULL, IOMMU_DOMAIN_UNMANAGED);
-       if (IS_ERR(domain))
-               return NULL;
-       return domain;
-}
-EXPORT_SYMBOL_GPL(iommu_domain_alloc);
-
 /**
  * iommu_paging_domain_alloc() - Allocate a paging domain
  * @dev: device for which the domain is allocated
index 03f9fa833db995a430b0cd0a86c606b9f8e458ae..d93c87f0c0039767de0e6839e8474b7542a14bed 100644 (file)
@@ -787,7 +787,6 @@ static inline void iommu_iotlb_gather_init(struct iommu_iotlb_gather *gather)
 extern int bus_iommu_probe(const struct bus_type *bus);
 extern bool device_iommu_capable(struct device *dev, enum iommu_cap cap);
 extern bool iommu_group_has_isolated_msi(struct iommu_group *group);
-extern struct iommu_domain *iommu_domain_alloc(const struct bus_type *bus);
 struct iommu_domain *iommu_paging_domain_alloc(struct device *dev);
 extern void iommu_domain_free(struct iommu_domain *domain);
 extern int iommu_attach_device(struct iommu_domain *domain,
@@ -1079,11 +1078,6 @@ static inline bool device_iommu_capable(struct device *dev, enum iommu_cap cap)
        return false;
 }
 
-static inline struct iommu_domain *iommu_domain_alloc(const struct bus_type *bus)
-{
-       return NULL;
-}
-
 static inline struct iommu_domain *iommu_paging_domain_alloc(struct device *dev)
 {
        return ERR_PTR(-ENODEV);