> From: Jason Gunthorpe <jgg@xxxxxxxx> > Sent: Saturday, May 11, 2024 12:29 AM > > On Fri, May 10, 2024 at 10:30:10PM +0800, Baolu Lu wrote: > > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > > index 35ae9a6f73d3..09b4e671dcee 100644 > > --- a/include/linux/iommu.h > > +++ b/include/linux/iommu.h > > @@ -173,6 +173,8 @@ struct iommu_domain_geometry { > > > > #define __IOMMU_DOMAIN_NESTED (1U << 6) /* User-managed address > space > > nested > > on a stage-2 translation > > */ > > +#define __IOMMU_DOMAIN_PASID (1U << 7) /* User-managed domain > for a > > + specific PASID*/ > > > > #define IOMMU_DOMAIN_ALLOC_FLAGS ~__IOMMU_DOMAIN_DMA_FQ > > /* > > @@ -204,6 +206,9 @@ struct iommu_domain_geometry { > > #define IOMMU_DOMAIN_SVA (__IOMMU_DOMAIN_SVA) > > #define IOMMU_DOMAIN_PLATFORM (__IOMMU_DOMAIN_PLATFORM) > > #define IOMMU_DOMAIN_NESTED (__IOMMU_DOMAIN_NESTED) > > +#define IOMMU_DOMAIN_NESTED_PASID \ > > + (__IOMMU_DOMAIN_NESTED | \ > > + __IOMMU_DOMAIN_PASID) > > Yeah, something like that, I don't know about naming though.. > > How about > > DOMAIN_NESTED = Attachment to RID or PASID > DOMAIN_NESTED_PASID_TABLE = RID and the entire PASID space > this sounds clearer