public inbox for ntb@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH 0/2] NTB: Allow drivers to provide DMA mapping device
@ 2026-03-02 14:45 Koichiro Den
  2026-03-02 14:45 ` [PATCH 1/2] NTB: core: Add .get_dma_dev() callback to ntb_dev_ops Koichiro Den
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Koichiro Den @ 2026-03-02 14:45 UTC (permalink / raw)
  To: Jon Mason, Dave Jiang, Allen Hubbe, Frank Li
  Cc: Niklas Cassel, ntb, linux-kernel

Some NTB implementations are backed by a "virtual" PCI device, while the
actual DMA mapping context (IOMMU domain) belongs to a different device.

One example is vNTB, where the NTB device is represented as a virtual
PCI endpoint function, but DMA operations must be performed against the
EPC parent device, which owns the IOMMU context.

Today, ntb_transport implicitly relies on the NTB device's parent device
as the DMA mapping device. This works for most PCIe NTB hardware, but
breaks implementations where the NTB PCI function is not the correct
device to use for DMA API operations.

This small series introduces an optional .get_dma_dev() callback in
struct ntb_dev_ops, together with a helper ntb_get_dma_dev(). If the
callback is not implemented, the helper falls back to the existing
default behavior. Drivers that implement .get_dma_dev() must return a
non-NULL struct device.

- Patch 1/2: Add .get_dma_dev() to struct ntb_dev_ops and provide
             ntb_get_dma_dev().

- Patch 2/2: Switch ntb_transport coherent allocations and frees to use
             ntb_get_dma_dev().

No functional changes are intended by this series itself.

A follow-up patch implementing .get_dma_dev() for the vNTB EPF driver
(drivers/pci/endpoint/functions/pci-epf-vntb.c) will be submitted
separately to the PCI Endpoint subsystem tree. That will enable
ntb_transport to work correctly in IOMMU-backed EPC setups.

Best regards,
Koichiro


Koichiro Den (2):
  NTB: core: Add .get_dma_dev() callback to ntb_dev_ops
  NTB: ntb_transport: Use ntb_get_dma_dev() for DMA buffers

 drivers/ntb/ntb_transport.c | 14 +++++++-------
 include/linux/ntb.h         | 23 +++++++++++++++++++++++
 2 files changed, 30 insertions(+), 7 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-03-05 16:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-02 14:45 [PATCH 0/2] NTB: Allow drivers to provide DMA mapping device Koichiro Den
2026-03-02 14:45 ` [PATCH 1/2] NTB: core: Add .get_dma_dev() callback to ntb_dev_ops Koichiro Den
2026-03-02 14:45 ` [PATCH 2/2] NTB: ntb_transport: Use ntb_get_dma_dev() for DMA buffers Koichiro Den
2026-03-02 16:52 ` [PATCH 0/2] NTB: Allow drivers to provide DMA mapping device Dave Jiang
2026-03-03  4:56   ` Koichiro Den
2026-03-03 15:42     ` Dave Jiang
2026-03-04 15:56       ` Koichiro Den
2026-03-04 16:03         ` Koichiro Den
2026-03-04 16:53         ` Dave Jiang
2026-03-05  3:23           ` Koichiro Den
2026-03-05 16:32             ` Dave Jiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox