[PATCH 18/27] iommu/arm-smmu-v3: Make SVA allocate a normal arm_smmu_domain
Michael Shavit
mshavit at google.com
Tue Oct 24 01:58:53 PDT 2023
On Thu, Oct 12, 2023 at 7:26 AM Jason Gunthorpe <jgg at nvidia.com> wrote:
>
> Currently the SVA domain is a naked struct iommu_domain, allocate a struct
> arm_smmu_domain instead.
>
> This is necessary to be able to use the struct arm_master_domain
> mechanism.
>
> Signed-off-by: Jason Gunthorpe <jgg at nvidia.com>
> ---
> .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 11 +++---
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 34 +++++++++++--------
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 7 ++--
> 3 files changed, 29 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
> index 042daaef0c9703..bc3cc51dffc2e7 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
> @@ -669,14 +669,13 @@ static const struct iommu_domain_ops arm_smmu_sva_domain_ops = {
> .free = arm_smmu_sva_domain_free
> };
>
> -struct iommu_domain *arm_smmu_sva_domain_alloc(void)
> +struct iommu_domain *arm_smmu_sva_domain_alloc(unsigned type)
> {
> - struct iommu_domain *domain;
> + struct arm_smmu_domain *smmu_domain;
>
> - domain = kzalloc(sizeof(*domain), GFP_KERNEL);
> - if (!domain)
> + smmu_domain = arm_smmu_domain_alloc();
> + if (!smmu_domain)
> return NULL;
> - domain->ops = &arm_smmu_sva_domain_ops;
>
This will break SVA if cut here. Can probably leave the domain->ops
there until Patch 20 replaces them.
More information about the linux-arm-kernel
mailing list