Messages in this thread | | | Date | Mon, 21 Aug 2023 13:44:33 +0800 | Subject | Re: [PATCH v2 1/3] iommu: Make single-device group for PASID explicit | From | Baolu Lu <> |
| |
On 2023/8/18 11:56, Tian, Kevin wrote: >> From: Lu Baolu <baolu.lu@linux.intel.com> >> Sent: Monday, August 14, 2023 9:18 AM >> >> The PASID interfaces have always supported only single-device groups. >> This was first introduced in commit 26b25a2b98e45 ("iommu: Bind process >> address spaces to devices"), and has been kept consistent in subsequent >> commits. >> >> However, the core code doesn't explicitly check for this requirement >> after commit 201007ef707a8 ("PCI: Enable PASID only when ACS RR & UF >> enabled on upstream path"), which made this requirement implicit. >> >> Restore the check to make it explicit that the PASID interfaces only >> support devices belonging to single-device groups. >> >> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> >> --- >> drivers/iommu/iommu.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c >> index 71b9c41f2a9e..f1eba60e573f 100644 >> --- a/drivers/iommu/iommu.c >> +++ b/drivers/iommu/iommu.c >> @@ -3408,6 +3408,11 @@ int iommu_attach_device_pasid(struct >> iommu_domain *domain, >> return -ENODEV; >> >> mutex_lock(&group->mutex); >> + if (list_count_nodes(&group->devices) != 1) { >> + ret = -EINVAL; >> + goto out_unlock; >> + } >> + > > I wonder whether we should also block adding new device to this > group once the single-device has pasid enabled. Otherwise the
This has been guaranteed by pci_enable_pasid():
if (!pci_acs_path_enabled(pdev, NULL, PCI_ACS_RR | PCI_ACS_UF)) return -EINVAL;
> check alone at attach time doesn't mean this group won't be > expanded to have multiple devices later.
Best regards, baolu
| |