On Fri, Aug 26, 2022 at 08:11:28PM +0800, Lu Baolu wrote: > The Requester ID/Process Address Space ID (PASID) combination > identifies an address space distinct from the PCI bus address space, > e.g., an address space defined by an IOMMU. > > But the PCIe fabric routes Memory Requests based on the TLP address, > ignoring any PASID (PCIe r6.0, sec 2.2.10.4), so a TLP with PASID that > SHOULD go upstream to the IOMMU may instead be routed as a P2P > Request if its address falls in a bridge window. > > To ensure that all Memory Requests with PASID are routed upstream, > only enable PASID if ACS P2P Request Redirect and Upstream Forwarding > are enabled for the path leading to the device. > > Suggested-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > Suggested-by: Kevin Tian <kevin.tian@xxxxxxxxx> > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > Tested-by: Tony Zhu <tony.zhu@xxxxxxxxx> > --- > drivers/pci/ats.c | 3 +++ > 1 file changed, 3 insertions(+) Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> Jason