On Tue, Jan 20, 2026 at 09:15:30AM -0400, Jason Gunthorpe wrote:
> On Tue, Jan 20, 2026 at 03:10:46PM +0200, Leon Romanovsky wrote:
> > 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 <[email protected]>
> > > > > > 
> > > > > > 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 <[email protected]>
> > > > > > ---
> > > > > >  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/[email protected]
> > > 
> > > 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.
> 
> iommufd is a pining importer. I did not add a call to pin because it
> only worked with VFIO that would not support it. Now that this series
> fixes it the pin must be added. Don't drop this patch.

No problem, let's keep it.

Thanks

Reply via email to