lkml.org 
[lkml]   [2015]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/16] iommu: Remove domain_init and domain_free iommu_ops
    Date
    From: Joerg Roedel <jroedel@suse.de>

    All drivers have been converted to the new domain_alloc and
    domain_free iommu-ops. So remove the old ones and get rid of
    iommu_domain->priv too, as this is no longer needed when the
    struct iommu_domain is embedded in the private structures of
    the iommu drivers.

    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    ---
    drivers/iommu/iommu.c | 30 ++----------------------------
    include/linux/iommu.h | 3 ---
    2 files changed, 2 insertions(+), 31 deletions(-)

    diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
    index 656b949..d4f527e 100644
    --- a/drivers/iommu/iommu.c
    +++ b/drivers/iommu/iommu.c
    @@ -900,51 +900,25 @@ EXPORT_SYMBOL_GPL(iommu_set_fault_handler);

    struct iommu_domain *iommu_domain_alloc(struct bus_type *bus)
    {
    - const struct iommu_ops *ops;
    struct iommu_domain *domain;

    if (bus == NULL || bus->iommu_ops == NULL)
    return NULL;

    - ops = bus->iommu_ops;
    -
    - if (ops->domain_alloc)
    - domain = ops->domain_alloc(IOMMU_DOMAIN_UNMANAGED);
    - else
    - domain = kzalloc(sizeof(*domain), GFP_KERNEL);
    -
    + domain = bus->iommu_ops->domain_alloc(IOMMU_DOMAIN_UNMANAGED);
    if (!domain)
    return NULL;

    domain->ops = bus->iommu_ops;
    domain->type = IOMMU_DOMAIN_UNMANAGED;

    - if (ops->domain_init && domain->ops->domain_init(domain))
    - goto out_free;
    -
    return domain;
    -
    -out_free:
    - if (ops->domain_free)
    - ops->domain_free(domain);
    - else
    - kfree(domain);
    -
    - return NULL;
    }
    EXPORT_SYMBOL_GPL(iommu_domain_alloc);

    void iommu_domain_free(struct iommu_domain *domain)
    {
    - const struct iommu_ops *ops = domain->ops;
    -
    - if (likely(ops->domain_destroy != NULL))
    - ops->domain_destroy(domain);
    -
    - if (ops->domain_free)
    - ops->domain_free(domain);
    - else
    - kfree(domain);
    + domain->ops->domain_free(domain);
    }
    EXPORT_SYMBOL_GPL(iommu_domain_free);

    diff --git a/include/linux/iommu.h b/include/linux/iommu.h
    index 72d03fe..0546b87 100644
    --- a/include/linux/iommu.h
    +++ b/include/linux/iommu.h
    @@ -78,7 +78,6 @@ struct iommu_domain_geometry {
    struct iommu_domain {
    unsigned type;
    const struct iommu_ops *ops;
    - void *priv;
    iommu_fault_handler_t handler;
    void *handler_token;
    struct iommu_domain_geometry geometry;
    @@ -138,8 +137,6 @@ enum iommu_attr {
    */
    struct iommu_ops {
    bool (*capable)(enum iommu_cap);
    - int (*domain_init)(struct iommu_domain *domain);
    - void (*domain_destroy)(struct iommu_domain *domain);

    /* Domain allocation and freeing by the iommu driver */
    struct iommu_domain *(*domain_alloc)(unsigned iommu_domain_type);
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-03-26 14:01    [W:3.221 / U:0.340 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site