[PATCH v5 0/5] PCI: endpoint: pci-epf-*ntb: Harden vNTB resource management

Koichiro Den <[email protected]> Thu, 26 Feb 2026 17:41:37 +0900
Newsgroups dev.linux.lists.ntb,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci
Message-ID <[email protected]>
The vNTB endpoint function (pci-epf-vntb) can be configured and
reconfigured through configfs (link/unlink functions, start/stop the
controller, update parameters). In practice, several pitfalls present:
duplicate EPC teardown that leads to oopses, a work item running after
resources were torn down, and inability to re-link/restart fundamentally
because ntb_dev was embedded and the vPCI bus teardown was incomplete.

This series addresses those issues and hardens resource management of
pci-epf-vntb:

- Remove duplicate EPC resource teardown in both pci-epf-vntb and
  pci-epf-ntb, avoiding crashes on .allow_link failures and during
  .drop_link.
- Stop the delayed cmd_handler work before clearing BARs/doorbells.
- Manage ntb_dev as a devm-managed allocation and implement .remove() in
  the vNTB PCI driver. Switch to pci_scan_root_bus().

With these changes, the controller can now be stopped, a function
unlinked, configfs settings updated, and the controller re-linked and
restarted without rebooting the endpoint, as long as the underlying
pci_epc_ops .stop() is non-destructive and .start() restores normal
operation.

Patches 1-3 carry Fixes tags and are candidates for stable.
Patch 4 is a preparatory one for Patch 5.
Patch 5 is a behavioral improvement that completes lifetime management for
relink/restart scenarios.

---
v4->v5 changes:
  - Rebased onto the latest pci/endpoint (2026-02-26).
  - Dropped [PATCH v4 1/7]; will be reposted separately via the NTB tree.
  - Dropped [PATCH v4 2/7], which has been applied in a different form.
  - Corrected the subject prefix of [PATCH v4 5/7]:
    s/NTB: epf: vntb:/PCI: endpoint: pci-epf-vntb:/.
  - Picked up a Reviewed-by tag to [PATCH v4 7/7].
  - Resolved a conflict in [PATCH v4 7/7] due to commit
    dc693d606644 ("PCI: endpoint: pci-epf-vntb: Add MSI doorbell support").
v3->v4 changes:
  - Added Reviewed-by tag for [PATCH v3 6/6].
  - Corrected patch split by moving the blank-line cleanup,
    based on the feedback from Frank.
  (No code changes overall.)
v2->v3 changes:
  - Added Reviewed-by tag for [PATCH v2 4/6].
  - Split [PATCH v2 6/6] into two, based on the feedback from Frank.
  (No code changes overall.)
v1->v2 changes:
  - Incorporated feedback from Frank.
  - Added Reviewed-by tags (except for patches #4 and #6).
  - Fixed a typo in patch #5 title.
  (No code changes overall.)

v4: https://lore.kernel.org/linux-pci/[email protected]/
v3: https://lore.kernel.org/all/[email protected]/
v2: https://lore.kernel.org/all/[email protected]/
v1: https://lore.kernel.org/all/[email protected]/


Koichiro Den (5):
  PCI: endpoint: pci-epf-vntb: Remove duplicate resource teardown
  PCI: endpoint: pci-epf-ntb: Remove duplicate resource teardown
  PCI: endpoint: pci-epf-vntb: Stop cmd_handler work in
    epf_ntb_epc_cleanup
  PCI: endpoint: pci-epf-vntb: Switch vpci_scan_bus() to use
    pci_scan_root_bus()
  PCI: endpoint: pci-epf-vntb: manage ntb_dev lifetime and fix vpci bus
    teardown

 drivers/pci/endpoint/functions/pci-epf-ntb.c  | 56 +-----------
 drivers/pci/endpoint/functions/pci-epf-vntb.c | 88 ++++++++++++-------
 2 files changed, 57 insertions(+), 87 deletions(-)

-- 
2.51.0