> From: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Sent: Wednesday, June 22, 2022 12:41 PM > > The IOMMU driver shares the pasid table for PCI alias devices. When the > RID2PASID entry of the shared pasid table has been filled by the first > device, the subsequent devices will encounter the "DMAR: Setup RID2PASID > failed" failure as the pasid entry has already been marked as present. As > the result, the IOMMU probing process will be aborted. > > This fixes it by skipping RID2PASID setting if the pasid entry has been > populated. This works because the IOMMU core ensures that only the same > IOMMU domain can be attached to all PCI alias devices at the same time. > Therefore the subsequent devices just try to setup the RID2PASID entry > with the same domain, which is negligible. This also adds domain validity > checks for more confidence anyway. > > Fixes: ef848b7e5a6a0 ("iommu/vt-d: Setup pasid entry for RID2PASID > support") > Reported-by: Chenyi Qiang <chenyi.qiang@xxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>