Re: [PATCH v4 0/7] PCI: endpoint/NTB: Harden vNTB resource management

From: Manivannan Sadhasivam

Date: Wed Feb 18 2026 - 11:23:57 EST


On Wed, Feb 18, 2026 at 09:45:22PM +0530, Manivannan Sadhasivam wrote:
> On Tue, Dec 02, 2025 at 04:23:41PM +0900, Koichiro Den wrote:
> > 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: double-unmapping when two
> > windows share a BAR, wrong parameter order in .drop_link leading to wrong
> > object lookups, 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 across NTB
> > EPF and PCI EP core:
> >
> > - Avoid double iounmap when PEER_SPAD and CONFIG share the same BAR.
> > - Fix configfs .drop_link parameter order so the correct groups are used during
> > unlink.
> > - 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-5 carry Fixes tags and are candidates for stable.
> > Patch 6 is a preparatory one for Patch 7.
> > Patch 7 is a behavioral improvement that completes lifetime management for
> > relink/restart scenarios.
> >
>
> Are there any dependencies between pci-epf-vntb and ntb-epf drivers? If they are
> not dependent, you should always post them separately. For this series, I can
> merge the endpoint patches (except patch 4 which got merged in other form).
>

Sry, patch 2.

- Mani

> - Mani
>
> >
> > 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.)
> >
> > v3: https://lore.kernel.org/all/20251130151100.2591822-1-den@xxxxxxxxxxxxx/
> > v2: https://lore.kernel.org/all/20251029080321.807943-1-den@xxxxxxxxxxxxx/
> > v1: https://lore.kernel.org/all/20251023071757.901181-1-den@xxxxxxxxxxxxx/
> >
> >
> > Koichiro Den (7):
> > NTB: epf: Avoid pci_iounmap() with offset when PEER_SPAD and CONFIG
> > share BAR
> > PCI: endpoint: Fix parameter order for .drop_link
> > PCI: endpoint: pci-epf-vntb: Remove duplicate resource teardown
> > PCI: endpoint: pci-epf-ntb: Remove duplicate resource teardown
> > NTB: 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/ntb/hw/epf/ntb_hw_epf.c | 3 +-
> > drivers/pci/endpoint/functions/pci-epf-ntb.c | 56 +-----------
> > drivers/pci/endpoint/functions/pci-epf-vntb.c | 86 ++++++++++++-------
> > drivers/pci/endpoint/pci-ep-cfs.c | 8 +-
> > 4 files changed, 62 insertions(+), 91 deletions(-)
> >
> > --
> > 2.48.1
> >
>
> --
> மணிவண்ணன் சதாசிவம்
>

--
மணிவண்ணன் சதாசிவம்