[PATCH 1/3] iommu/arm-smmu-v3: Split arm_smmu_tlb_inv_range()

Will Deacon will at kernel.org
Fri Jan 22 08:49:26 EST 2021


On Fri, Jan 22, 2021 at 12:52:56PM +0100, Jean-Philippe Brucker wrote:
> Extract some of the cmd initialization and the ATC invalidation from
> arm_smmu_tlb_inv_range(), to allow an MMU notifier to invalidate a VA
> range by ASID.
> 
> Signed-off-by: Jean-Philippe Brucker <jean-philippe at linaro.org>
> ---
>  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 62 ++++++++++++---------
>  1 file changed, 35 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> index 740a3d487591..a27b074d5c0c 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> @@ -1934,40 +1934,27 @@ static void arm_smmu_tlb_inv_context(void *cookie)
>  	arm_smmu_atc_inv_domain(smmu_domain, 0, 0, 0);
>  }
>  
> -static void arm_smmu_tlb_inv_range(unsigned long iova, size_t size,
> -				   size_t granule, bool leaf,
> +static void arm_smmu_tlb_inv_range(struct arm_smmu_cmdq_ent *cmd,
> +				   unsigned long iova, size_t size,
> +				   size_t granule,
>  				   struct arm_smmu_domain *smmu_domain)

nit: please can you prefix this function with a couple of underscores and/or
change its name? It's now a low-level helper and trusts the caller to pass
in a TLBI command, so we really don't want people to call it directly!

Anyway, the series looks good to me. In fact, I tried to apply it but I get
a conflict with the last patch. Please can you rebase onto my
for-joerg/arm-smmu/updates branch? If you do that (plus the nit above) then
I can queue these right away.

Cheers,

Will



More information about the linux-arm-kernel mailing list