On Mon, Jun 01, 2026 at 10:14:27PM +0800, [email protected] wrote: > > 在 2026/6/1 21:43, Jason Gunthorpe 写道: > > On Mon, Jun 01, 2026 at 04:41:48PM +0800, [email protected] > > wrote: > > > > > +/** > > > > > + * iommu_iova_to_phys_length - Translate IOVA and return mapping > > > > > page size > > > > > + * @domain: IOMMU domain to query > > > > > + * @iova: IO virtual address to translate > > > > > + * @mapped_length: Output parameter for the PTE page size (e.g. > > > > > 4KB/2MB/1GB) > > > > > + * > > > > > + * Like iommu_iova_to_phys() but additionally returns the page size > > > > > of the > > > > > + * PTE mapping at @iova through @mapped_length. > > > > > + * > > > > > + * Return: The physical address for the given IOVA, or 0 if no > > > > > translation. > > > > > + */ > > > > When introducing the new function I would like to fix this 0 error as > > > > well, it should return PHYS_MAX for error > > > Implementations such as arm_smmu_iova_to_phys/DOMAIN_NS(iova_to_phys) > > > all use a return value of 0 as an invalid state, so 0 is used as the > > > representation of an invalid state to maintain compatibility. > > I know, but this bad choice has already caused bugs so if we are > > changing everything I would prefer we fix it. > > OK, there are a lot of changes in the current commit. This issue will be > fixed in a subsequent series patch.
If you follow the plan I gave you then introduce the new function using the new return code and only support it in iommupt, then you can convert the other drivers to the new function one by one including the return code. Jason
