Reviewed-by: Clement Mathieu--Drif <[email protected]>
On Sat, 2026-05-09 at 00:08 -0400, Zhenzhong Duan wrote: > VFIO device will check flag VIOMMU_FLAG_PASID_SUPPORTED and expose PASID > capability, also check VIOMMU_FLAG_WANT_PASID_ATTACH to enable pasid > attachment, without those guest could not enable PASID of this device even > if vIOMMU's pasid is configured. > > We don't expose the two flags when first stage is not configured as we > don't support shadow page table on a PASID. > > This is the final knob to enable PASID. > > Signed-off-by: Zhenzhong Duan > <[[email protected]](mailto:[email protected])> > Tested-by: Xudong Hao <[[email protected]](mailto:[email protected])> > --- > hw/i386/intel_iommu.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index 6067069e02..70546e91d4 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -4788,6 +4788,11 @@ static uint64_t vtd_get_viommu_flags(void *opaque) > if (s->fsts) { > flags = VIOMMU_FLAG_WANT_NESTING_PARENT | > VIOMMU_FLAG_WANT_NESTING_DIRTY_TRACKING; > + > + if (s->pasid) { > + flags |= VIOMMU_FLAG_PASID_SUPPORTED | > + VIOMMU_FLAG_WANT_PASID_ATTACH; > + } > } > > return flags;
