On 1/31/26 06:34, Leon Romanovsky wrote:
> From: Leon Romanovsky <[email protected]>
> 
> Till now VFIO has rejected pinned importers, largely to avoid being used
> with the RDMA pinned importer that cannot handle a move_notify() to revoke
> access.
> 
> Using dma_buf_attach_revocable() it can tell the difference between pinned
> importers that support the flow described in dma_buf_invalidate_mappings()
> and those that don't.
> 
> Thus permit compatible pinned importers.
> 
> This is one of two items IOMMUFD requires to remove its private interface
> to VFIO's dma-buf.
> 
> Reviewed-by: Kevin Tian <[email protected]>
> Reviewed-by: Alex Williamson <[email protected]>
> Reviewed-by: Christian König <[email protected]>
> Signed-off-by: Leon Romanovsky <[email protected]>
> ---
>  drivers/vfio/pci/vfio_pci_dmabuf.c | 15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/vfio/pci/vfio_pci_dmabuf.c 
> b/drivers/vfio/pci/vfio_pci_dmabuf.c
> index 78d47e260f34..a5fb80e068ee 100644
> --- a/drivers/vfio/pci/vfio_pci_dmabuf.c
> +++ b/drivers/vfio/pci/vfio_pci_dmabuf.c
> @@ -22,16 +22,6 @@ struct vfio_pci_dma_buf {
>       u8 revoked : 1;
>  };
>  
> -static int vfio_pci_dma_buf_pin(struct dma_buf_attachment *attachment)
> -{
> -     return -EOPNOTSUPP;
> -}
> -
> -static void vfio_pci_dma_buf_unpin(struct dma_buf_attachment *attachment)
> -{
> -     /* Do nothing */
> -}
> -

This chunk here doesn't want to apply to drm-misc-next, my educated guess is 
that the patch adding those lines is missing in that tree.

How should we handle that? Patches 1-3 have already been pushed to 
drm-misc-next and I would rather like to push patches 4-6 through that branch 
as well.

I can request a backmerge from the drm-misc-next maintainers, but then we 
clearly don't get that upstream this week.

Regards,
Christian.

>  static int vfio_pci_dma_buf_attach(struct dma_buf *dmabuf,
>                                  struct dma_buf_attachment *attachment)
>  {
> @@ -43,6 +33,9 @@ static int vfio_pci_dma_buf_attach(struct dma_buf *dmabuf,
>       if (priv->revoked)
>               return -ENODEV;
>  
> +     if (!dma_buf_attach_revocable(attachment))
> +             return -EOPNOTSUPP;
> +
>       return 0;
>  }
>  
> @@ -107,8 +100,6 @@ static void vfio_pci_dma_buf_release(struct dma_buf 
> *dmabuf)
>  }
>  
>  static const struct dma_buf_ops vfio_pci_dmabuf_ops = {
> -     .pin = vfio_pci_dma_buf_pin,
> -     .unpin = vfio_pci_dma_buf_unpin,
>       .attach = vfio_pci_dma_buf_attach,
>       .map_dma_buf = vfio_pci_dma_buf_map,
>       .unmap_dma_buf = vfio_pci_dma_buf_unmap,
> 

Reply via email to