Re: [PATCH 10/13] PCI/P2PDMA: Extract pure ACS routing decision helpers
Logan Gunthorpe <[email protected]> Tue, 4 Aug 2026 16:07:27 -0600
| Newsgroups | gmane.linux.documentation,gmane.linux.kernel.pci,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
On 2026-08-02 09:09, Leon Romanovsky wrote:
> static enum pci_acs_p2pdma_state
> pci_acs_p2pdma_state(struct pci_dev *pdev, struct pci_dev *target)
> {
> - int pos, ret;
> + int egress = 0;
> u16 ctrl;
>
> - pos = pdev->acs_cap;
> - if (!pos)
> + if (!pdev->acs_cap)
> return PCI_ACS_P2PDMA_DIRECT;
I don't necessarily disagree with the change, but removing pos in this
patch seems unnecessary and makes the patch more difficult to review
than it needed to be.
> @@ -1046,6 +1047,22 @@ resource_size_t pci_min_window_alignment(struct pci_bus *bus,
> void pci_acs_init(struct pci_dev *dev);
> void pci_enable_acs(struct pci_dev *dev);
> int pci_acs_egress_ctrl_set(struct pci_dev *pdev, struct pci_dev *target);
> +
> +/*
> + * Peer-to-peer routing decision for an ACS-capable ingress port, per
> + * PCIe r7.0, sec 6.12.3, table 6-11.
> + */
> +enum pci_acs_p2pdma_state {
> + PCI_ACS_P2PDMA_DIRECT, /* peer-to-peer permitted directly */
> + PCI_ACS_P2PDMA_REDIRECT, /* redirected upstream to host bridge */
> + PCI_ACS_P2PDMA_NOT_SUPPORTED, /* no usable peer-to-peer route */
> +};
> +
> +#if IS_ENABLED(CONFIG_KUNIT)
> +bool pci_acs_egress_port_valid(u16 acs_caps, u8 target_port);
> +enum pci_acs_p2pdma_state pci_acs_p2pdma_decision(u16 ctrl, bool has_target,
> + int egress);
> +#endif
One minor weird whitespace issue here. Probably the empty line should
come after #endif
But both of these are very minor points, so:
Reviewed-by: Logan Gunthorpe <[email protected]>