On Mon, Jan 19, 2026 at 03:54:44PM -0400, Jason Gunthorpe wrote:
On Mon, Jan 19, 2026 at 08:23:00PM +0200, Leon Romanovsky wrote:
On Mon, Jan 19, 2026 at 12:59:51PM -0400, Jason Gunthorpe wrote:
On Sun, Jan 18, 2026 at 02:08:47PM +0200, Leon Romanovsky wrote:
From: Leon Romanovsky leonro@nvidia.com
IOMMUFD does not support page fault handling, and after a call to .invalidate_mappings() all mappings become invalid. Ensure that the IOMMUFD DMABUF importer is bound to a revoke‑aware DMABUF exporter (for example, VFIO).
Signed-off-by: Leon Romanovsky leonro@nvidia.com
drivers/iommu/iommufd/pages.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/iommufd/pages.c b/drivers/iommu/iommufd/pages.c index 76f900fa1687..a5eb2bc4ef48 100644 --- a/drivers/iommu/iommufd/pages.c +++ b/drivers/iommu/iommufd/pages.c @@ -1501,16 +1501,22 @@ static int iopt_map_dmabuf(struct iommufd_ctx *ictx, struct iopt_pages *pages, mutex_unlock(&pages->mutex); }
- rc = sym_vfio_pci_dma_buf_iommufd_map(attach, &pages->dmabuf.phys);
- rc = dma_buf_pin(attach); if (rc) goto err_detach;
- rc = sym_vfio_pci_dma_buf_iommufd_map(attach, &pages->dmabuf.phys);
- if (rc)
goto err_unpin;- dma_resv_unlock(dmabuf->resv);
/* On success iopt_release_pages() will detach and put the dmabuf. */ pages->dmabuf.attach = attach; return 0;
Don't we need an explicit unpin after unmapping?
Yes, but this patch is going to be dropped in v3 because of this suggestion. https://lore.kernel.org/all/a397ff1e-615f-4873-98a9-940f9c16f85c@amd.com
That's not right, that suggestion is about changing VFIO. iommufd must still act as a pinning importer!
There is no change in iommufd, as it invokes dma_buf_dynamic_attach() with a valid &iopt_dmabuf_attach_revoke_ops. The check determining whether iommufd can perform a revoke is handled there.
Thanks
Jason