lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/7] iommu: Remove aux-domain related interfaces and iommu_ops
    Date
    The aux-domain related interfaces and iommu_ops are not referenced
    anywhere in the tree. We've also reached a consensus to redesign it
    based the new iommufd framework. Remove them to avoid dead code.

    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    ---
    include/linux/iommu.h | 29 ---------------------------
    drivers/iommu/iommu.c | 46 -------------------------------------------
    2 files changed, 75 deletions(-)

    diff --git a/include/linux/iommu.h b/include/linux/iommu.h
    index d1e9c3d73966..aa5486243892 100644
    --- a/include/linux/iommu.h
    +++ b/include/linux/iommu.h
    @@ -144,7 +144,6 @@ struct iommu_resv_region {

    /**
    * enum iommu_dev_features - Per device IOMMU features
    - * @IOMMU_DEV_FEAT_AUX: Auxiliary domain feature
    * @IOMMU_DEV_FEAT_SVA: Shared Virtual Addresses
    * @IOMMU_DEV_FEAT_IOPF: I/O Page Faults such as PRI or Stall. Generally
    * enabling %IOMMU_DEV_FEAT_SVA requires
    @@ -157,7 +156,6 @@ struct iommu_resv_region {
    * iommu_dev_has_feature(), and enable it using iommu_dev_enable_feature().
    */
    enum iommu_dev_features {
    - IOMMU_DEV_FEAT_AUX,
    IOMMU_DEV_FEAT_SVA,
    IOMMU_DEV_FEAT_IOPF,
    };
    @@ -223,8 +221,6 @@ struct iommu_iotlb_gather {
    * @dev_has/enable/disable_feat: per device entries to check/enable/disable
    * iommu specific features.
    * @dev_feat_enabled: check enabled feature
    - * @aux_attach/detach_dev: aux-domain specific attach/detach entries.
    - * @aux_get_pasid: get the pasid given an aux-domain
    * @sva_bind: Bind process address space to device
    * @sva_unbind: Unbind process address space from device
    * @sva_get_pasid: Get PASID associated to a SVA handle
    @@ -285,11 +281,6 @@ struct iommu_ops {
    int (*dev_enable_feat)(struct device *dev, enum iommu_dev_features f);
    int (*dev_disable_feat)(struct device *dev, enum iommu_dev_features f);

    - /* Aux-domain specific attach/detach entries */
    - int (*aux_attach_dev)(struct iommu_domain *domain, struct device *dev);
    - void (*aux_detach_dev)(struct iommu_domain *domain, struct device *dev);
    - int (*aux_get_pasid)(struct iommu_domain *domain, struct device *dev);
    -
    struct iommu_sva *(*sva_bind)(struct device *dev, struct mm_struct *mm,
    void *drvdata);
    void (*sva_unbind)(struct iommu_sva *handle);
    @@ -656,9 +647,6 @@ void iommu_release_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);
    bool iommu_dev_feature_enabled(struct device *dev, enum iommu_dev_features f);
    -int iommu_aux_attach_device(struct iommu_domain *domain, struct device *dev);
    -void iommu_aux_detach_device(struct iommu_domain *domain, struct device *dev);
    -int iommu_aux_get_pasid(struct iommu_domain *domain, struct device *dev);

    struct iommu_sva *iommu_sva_bind_device(struct device *dev,
    struct mm_struct *mm,
    @@ -1003,23 +991,6 @@ iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat)
    return -ENODEV;
    }

    -static inline int
    -iommu_aux_attach_device(struct iommu_domain *domain, struct device *dev)
    -{
    - return -ENODEV;
    -}
    -
    -static inline void
    -iommu_aux_detach_device(struct iommu_domain *domain, struct device *dev)
    -{
    -}
    -
    -static inline int
    -iommu_aux_get_pasid(struct iommu_domain *domain, struct device *dev)
    -{
    - return -ENODEV;
    -}
    -
    static inline struct iommu_sva *
    iommu_sva_bind_device(struct device *dev, struct mm_struct *mm, void *drvdata)
    {
    diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
    index 5672beb061ea..5230c6d90ece 100644
    --- a/drivers/iommu/iommu.c
    +++ b/drivers/iommu/iommu.c
    @@ -2746,8 +2746,6 @@ EXPORT_SYMBOL_GPL(iommu_dev_enable_feature);

    /*
    * The device drivers should do the necessary cleanups before calling this.
    - * For example, before disabling the aux-domain feature, the device driver
    - * should detach all aux-domains. Otherwise, this will return -EBUSY.
    */
    int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat)
    {
    @@ -2775,50 +2773,6 @@ bool iommu_dev_feature_enabled(struct device *dev, enum iommu_dev_features feat)
    }
    EXPORT_SYMBOL_GPL(iommu_dev_feature_enabled);

    -/*
    - * Aux-domain specific attach/detach.
    - *
    - * Only works if iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX) returns
    - * true. Also, as long as domains are attached to a device through this
    - * interface, any tries to call iommu_attach_device() should fail
    - * (iommu_detach_device() can't fail, so we fail when trying to re-attach).
    - * This should make us safe against a device being attached to a guest as a
    - * whole while there are still pasid users on it (aux and sva).
    - */
    -int iommu_aux_attach_device(struct iommu_domain *domain, struct device *dev)
    -{
    - int ret = -ENODEV;
    -
    - if (domain->ops->aux_attach_dev)
    - ret = domain->ops->aux_attach_dev(domain, dev);
    -
    - if (!ret)
    - trace_attach_device_to_domain(dev);
    -
    - return ret;
    -}
    -EXPORT_SYMBOL_GPL(iommu_aux_attach_device);
    -
    -void iommu_aux_detach_device(struct iommu_domain *domain, struct device *dev)
    -{
    - if (domain->ops->aux_detach_dev) {
    - domain->ops->aux_detach_dev(domain, dev);
    - trace_detach_device_from_domain(dev);
    - }
    -}
    -EXPORT_SYMBOL_GPL(iommu_aux_detach_device);
    -
    -int iommu_aux_get_pasid(struct iommu_domain *domain, struct device *dev)
    -{
    - int ret = -ENODEV;
    -
    - if (domain->ops->aux_get_pasid)
    - ret = domain->ops->aux_get_pasid(domain, dev);
    -
    - return ret;
    -}
    -EXPORT_SYMBOL_GPL(iommu_aux_get_pasid);
    -
    /**
    * iommu_sva_bind_device() - Bind a process address space to a device
    * @dev: the device
    --
    2.25.1
    \
     
     \ /
      Last update: 2022-01-24 08:13    [W:4.025 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site