[WIP PATCH v3 7/7] PCI: endpoint: pci-epf-ntb: Document EPF-owned MSI-X layout
From: Koichiro Den
Date: Tue Sep 01 2026 - 03:09:34 EST
pci-epf-ntb reads host-programmed MSI-X Table entries through epf_bar[]
to set up peer outbound mappings. A hardware-owned Table does not have
that backing.
Document why pci-epf-ntb keeps its Table and PBA in EPF-owned memory
instead of selecting a hardware-owned layout like the other converted
EPF drivers.
Signed-off-by: Koichiro Den <den@xxxxxxxxxxxxx>
---
Changes in v3:
- New patch.
---
drivers/pci/endpoint/functions/pci-epf-ntb.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/pci/endpoint/functions/pci-epf-ntb.c b/drivers/pci/endpoint/functions/pci-epf-ntb.c
index f3e0e1b3ffb9..adef3b9dc2fc 100644
--- a/drivers/pci/endpoint/functions/pci-epf-ntb.c
+++ b/drivers/pci/endpoint/functions/pci-epf-ntb.c
@@ -1031,6 +1031,12 @@ static int epf_ntb_config_spad_bar_alloc(struct epf_ntb *ntb,
ctrl_size = sizeof(struct epf_ntb_ctrl);
spad_size = spad_count * 4;
+ /*
+ * Keep the MSI-X Table and PBA in EPF-owned memory.
+ * epf_ntb_configure_msix() reads host-programmed Table entries through
+ * epf_bar[] to set up peer outbound mappings. A hardware-owned Table has
+ * no such backing.
+ */
msix_capable = epc_features->msix_capable;
if (msix_capable) {
msix_table_size = PCI_MSIX_ENTRY_SIZE * ntb->db_count;
--
2.51.0
------------8<-----(end here)------8<-------------
Best regards,
Koichiro
>
>
> Kind regards,
> Niklas