Messages in this thread | | | Date | Tue, 23 Aug 2022 15:10:00 +0800 | Subject | Re: [PATCH v11 04/13] PCI: Allow PASID only when ACS enforced on upstreaming path | From | Baolu Lu <> |
| |
On 2022/8/18 21:04, Jason Gunthorpe wrote: > On Wed, Aug 17, 2022 at 09:20:15AM +0800, Lu Baolu wrote: >> Some configurations of the PCI fabric will route device originated TLP >> packets based on the memory addresses. These configurations are >> incompatible with PASID as the PASID packets form a distinct address >> space. For instance, any configuration where switches are present >> without ACS enabled is incompatible. >> >> This enhances the pci_enable_pasid() interface by requiring the ACS to >> support Source Validation, Request Redirection, Completer Redirection, >> and Upstream Forwarding. This effectively means that devices cannot >> spoof their requester ID, requests and completions cannot be redirected, >> and all transactions are forwarded upstream, even as it passes through a >> bridge where the target device is downstream. >> >> Suggested-by: Jason Gunthorpe<jgg@nvidia.com> >> Suggested-by: Kevin Tian<kevin.tian@intel.com> >> Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> >> --- >> drivers/pci/ats.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/pci/ats.c b/drivers/pci/ats.c >> index c967ad6e2626..0715e48e7973 100644 >> --- a/drivers/pci/ats.c >> +++ b/drivers/pci/ats.c >> @@ -382,6 +382,11 @@ int pci_enable_pasid(struct pci_dev *pdev, int features) >> if (!pasid) >> return -EINVAL; >> >> + if (!pci_acs_path_enabled(pdev, NULL, >> + PCI_ACS_SV | PCI_ACS_RR | >> + PCI_ACS_CR | PCI_ACS_UF)) > I think we only need RR and UF here? > > Source Validation causes the switch to validate the requestor RID in > each TLP which has nothing to do with address based routing > > Completion Redirect changes how RID routing works, and has nothing to > do with address based routing. > > Yes, both of those are usually set for virtualization scenarios but we > shouldn't check it here as a basic requirement to enable PASID.
Yes. Here only requires RR and UF.
Best regards, baolu
| |