On Fri, Sep 18, 2026 at 01:39:55PM -0600, Logan Gunthorpe wrote:
On 2026-09-14 05:22, Leon Romanovsky wrote:
From: Leon Romanovsky leonro@nvidia.com
pci_bridge_has_acs_redir() treats Request and Completion Redirect as interchangeable. On asymmetric fabrics, a control for only the reverse TLP direction can unnecessarily force P2PDMA through the host bridge.
Evaluate Request Redirect for client Requests and Completion Redirect for provider read Completions. Continue treating enabled Egress Control conservatively as a Request redirect.
Fixes: 52916982af48 ("PCI/P2PDMA: Support peer-to-peer memory") Signed-off-by: Leon Romanovsky leonro@nvidia.com
Core patch seems fine, minus one minor point below:
Reviewed-by: Logan Gunthorpe logang@deltatee.com
@@ -1132,10 +1173,10 @@ EXPORT_SYMBOL_GPL(pci_p2pmem_publish); /**
- pci_p2pdma_map_type - Determine the mapping type for P2PDMA transfers
- @provider: P2PDMA provider structure
- @dev: Target device for the transfer
- @dev: Client device that initiates the transfer
- Determines how peer-to-peer DMA transfers should be mapped between
- the provider and the target device. The mapping type indicates whether
*/
- the provider and the client device. The mapping type indicates whether
- the transfer can be done directly through PCI switches or must go
- through the host bridge.
This hunk does not seem like it belongs in this patch.
This is the first patch that distinguishes between client and provider and starts using that terminology instead of target/initiator. Therefore, the change belongs here.
Thanks