[PATCH v2 6/8] iommu/arm-smmu-v3: Populate the tlbi at the top of the call chain

Jason Gunthorpe jgg at nvidia.com
Wed Jul 8 11:09:36 PDT 2026


On Tue, Jul 07, 2026 at 11:57:41AM +0000, Mostafa Saleh wrote:
> > +	if (!tlbi->single.use_full_inv)
> > +		arm_smmu_tlbi_calc_single(tlbi);
> >  
> >  	/*
> >  	 * An invalidation request must follow some IOPTE change and then load
> 
> The rest of the comment still refers to the old name
> arm_smmu_domain_inv_range()

Got it!

> >  static inline void arm_smmu_domain_inv(struct arm_smmu_domain *smmu_domain)
> >  {
> > -	arm_smmu_domain_inv_range(smmu_domain, 0, 0, 0, false);
> > +	/* Prefilled for invalidate all */
> > +	struct arm_smmu_tlbi tlbi = {
> > +		.smmu_domain = smmu_domain,
> > +		.single.use_full_inv = true,
> > +		.range.use_full_inv = true,
> 
> Those were introduced last patch, but I am wondering if use_full_inv
> should be a common field instead of having it in both single and range.

They are usually different values, this is the only place that sets
both the same. The conditions for RIL and single to switch to full
invalidation are not the same.

Thanks,
Jason



More information about the linux-arm-kernel mailing list