Re: [PATCH 00/16 v2] iommu: Move domain allocation into drivers

From: Thierry Reding
Date: Fri Mar 27 2015 - 07:03:54 EST


On Thu, Mar 26, 2015 at 01:43:03PM +0100, Joerg Roedel wrote:
> Changes v1-v2:
>
> * Rebased to v4.0-rc5
> * Converted domain-types to a bit-field
>
> Hi,
>
> here is patch-set to replace the existing domain_init and
> domain_destroy iommu-ops with the new domain_alloc and
> domain_free callbacks
>
> The new callbacks move the allocation of iommu domains into
> the iommu driver, allowing them to put a generic
> iommu_domain struct into their own domain struct. This makes
> domain handling in the drivers more cache efficient and
> prepares the introduction of default domains in another
> patch-set.
>
> While at it, this patch-set also introduces domain types.
> These are internal to the iommu core code for now, there are
> three of them:
>
> * DMA-API domains
> * Identity mapped domains
> * Domains unmanaged by the iommu-core, used for
> iommu-api so that the users can create their own
> mappings
>
> The patches have been compile tested for x86, ARM and PPC
> and runtime tested on x86 (Intel VT-d and AMD IOMMU).
>
> Please review.
>
> Thanks,
>
> Joerg
>
> Joerg Roedel (15):
> iommu: Introduce domain_alloc and domain_free iommu_ops
> iommu: Introduce iommu domain types
> iommu/amd: Make use of domain_alloc and domain_free
> iommu/vt-d: Make use of domain_alloc and domain_free
> iommu/omap: Make use of domain_alloc and domain_free
> iommu/arm-smmu: Make use of domain_alloc and domain_free
> iommu/exynos: Make use of domain_alloc and domain_free
> iommu/tegra-smmu: Make use of domain_alloc and domain_free
> iommu/tegra-gart: Make use of domain_alloc and domain_free
> iommu/msm: Make use of domain_alloc and domain_free
> iommu/shmobile: Make use of domain_alloc and domain_free
> iommu/ipmmu-vmsa: Make use of domain_alloc and domain_free
> iommu/rockchip: Make use of domain_alloc and domain_free
> iommu/fsl: Make use of domain_alloc and domain_free
> iommu: Remove domain_init and domain_free iommu_ops
>
> drivers/iommu/amd_iommu.c | 84 +++++++++++++++++++++------------------
> drivers/iommu/amd_iommu_types.h | 7 ++--
> drivers/iommu/arm-smmu.c | 46 +++++++++++++---------
> drivers/iommu/exynos-iommu.c | 87 ++++++++++++++++++++++-------------------
> drivers/iommu/fsl_pamu_domain.c | 60 +++++++++++++++-------------
> drivers/iommu/fsl_pamu_domain.h | 2 +-
> drivers/iommu/intel-iommu.c | 48 +++++++++++++----------
> drivers/iommu/iommu.c | 20 ++--------
> drivers/iommu/ipmmu-vmsa.c | 43 +++++++++++---------
> drivers/iommu/msm_iommu.c | 73 +++++++++++++++++-----------------
> drivers/iommu/omap-iommu.c | 49 +++++++++++++----------
> drivers/iommu/rockchip-iommu.c | 40 +++++++++++--------
> drivers/iommu/shmobile-iommu.c | 40 +++++++++++--------
> drivers/iommu/tegra-gart.c | 67 +++++++++++++++++++++----------
> drivers/iommu/tegra-smmu.c | 41 ++++++++++---------
> include/linux/iommu.h | 17 ++++++--
> 16 files changed, 407 insertions(+), 317 deletions(-)

The core and Tegra bits:

Tested-by: Thierry Reding <treding@xxxxxxxxxx>

Attachment: pgpEyjFBQ26qG.pgp
Description: PGP signature