[PATCH v2 8/8] iommu/arm-smmu-v3: Support the DS expansion of RIL's SCALE

Nicolin Chen nicolinc at nvidia.com
Tue Jul 7 19:10:37 PDT 2026


On Tue, Jul 07, 2026 at 09:02:39PM -0300, Jason Gunthorpe wrote:
> On Tue, Jul 07, 2026 at 04:20:58PM -0700, Nicolin Chen wrote:
> > On Mon, Jul 06, 2026 at 01:26:45PM -0300, Jason Gunthorpe wrote:
> > > If DS is supported then SCALE can go up to 39. Detect the IDR and compute
> > > a scale max that is compatible for the entire invs list.
> > > 
> > > Signed-off-by: Jason Gunthorpe <jgg at nvidia.com>
> > 
> > Reviewed-by: Nicolin Chen <nicolinc at nvidia.com>
> > 
> > > @@ -5235,6 +5242,9 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
> > >  	/* Maximum number of outstanding stalls */
> > >  	smmu->evtq.max_stalls = FIELD_GET(IDR5_STALL_MAX, reg);
> > >  
> > > +	if (reg & IDR5_DS)
> > > +		smmu->features |= ARM_SMMU_FEAT_DS;
> > > +
> > 
> > Just a note here:
> > 
> > This somehow conflicts with my iommufd_invalidation_loop series
> > where we sanitize user space commands, because the driver would
> > support IDR5.DS. So, one of the series would need a rebase.
> 
> Oh that's an interesting one. So if you add strict validation it will
> technically break DS, no VMM can set DS to the vIOMMU as then it would
> face invalid SCALE which the kernel will now block.
> 
> Maybe these hunks need to be included in your series, I do expect it
> to go first, and we should try to validate fully.

OK. I can take the minimal DS part into my series.

One more question to confirm: there are other fields like DS, which
are defined in the spec but not supported by the driver. Should we
expose them via hw_info while rejecting them via user cmds?

Thanks
Nicolin



More information about the linux-arm-kernel mailing list