On Wed,  7 Jan 2026 11:14:14 +0200
Leon Romanovsky <[email protected]> wrote:

> From: Leon Romanovsky <[email protected]>
> 
> After commit fcf463b92a08 ("types: move phys_vec definition to common 
> header"),
> we can use the shared phys_vec type instead of the DMABUF‑specific
> dma_buf_phys_vec, which duplicated the same structure and semantics.
> 
> Signed-off-by: Leon Romanovsky <[email protected]>
> ---
> Alex,
> 
> According to diffstat, VFIO is the subsystem with the largest set of changes,
> so it would be great if you could take it through your tree.
> 
> The series is based on the for-7.0/blk-pvec shared branch from Jens:
> https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git/log/?h=for-7.0/blk-pvec

Applied to vfio next branch for v6.20/7.0 and pushed tag
common_phys_vec_via_vfio including this commit and dependency.
Thanks,

Alex


> ---
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> To: Sumit Semwal <[email protected]>
> To: Christian König <[email protected]>
> To: Jason Gunthorpe <[email protected]>
> To: Kevin Tian <[email protected]>
> To: Joerg Roedel <[email protected]>
> To: Will Deacon <[email protected]>
> To: Robin Murphy <[email protected]>
> To: Yishai Hadas <[email protected]>
> To: Shameer Kolothum <[email protected]>
> To: Ankit Agrawal <[email protected]>
> To: Alex Williamson <[email protected]>
> Cc: Matthew Wilcox <[email protected]>
> Cc: Jens Axboe <[email protected]>
> ---
>  drivers/dma-buf/dma-buf-mapping.c       |  6 +++---
>  drivers/iommu/iommufd/io_pagetable.h    |  2 +-
>  drivers/iommu/iommufd/iommufd_private.h |  5 ++---
>  drivers/iommu/iommufd/pages.c           |  4 ++--
>  drivers/iommu/iommufd/selftest.c        |  2 +-
>  drivers/vfio/pci/nvgrace-gpu/main.c     |  2 +-
>  drivers/vfio/pci/vfio_pci_dmabuf.c      |  8 ++++----
>  include/linux/dma-buf-mapping.h         |  2 +-
>  include/linux/dma-buf.h                 | 10 ----------
>  include/linux/vfio_pci_core.h           | 13 ++++++-------
>  10 files changed, 21 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/dma-buf/dma-buf-mapping.c 
> b/drivers/dma-buf/dma-buf-mapping.c
> index b7352e609fbd..174677faa577 100644
> --- a/drivers/dma-buf/dma-buf-mapping.c
> +++ b/drivers/dma-buf/dma-buf-mapping.c
> @@ -33,8 +33,8 @@ static struct scatterlist *fill_sg_entry(struct scatterlist 
> *sgl, size_t length,
>  }
>  
>  static unsigned int calc_sg_nents(struct dma_iova_state *state,
> -                               struct dma_buf_phys_vec *phys_vec,
> -                               size_t nr_ranges, size_t size)
> +                               struct phys_vec *phys_vec, size_t nr_ranges,
> +                               size_t size)
>  {
>       unsigned int nents = 0;
>       size_t i;
> @@ -91,7 +91,7 @@ struct dma_buf_dma {
>   */
>  struct sg_table *dma_buf_phys_vec_to_sgt(struct dma_buf_attachment *attach,
>                                        struct p2pdma_provider *provider,
> -                                      struct dma_buf_phys_vec *phys_vec,
> +                                      struct phys_vec *phys_vec,
>                                        size_t nr_ranges, size_t size,
>                                        enum dma_data_direction dir)
>  {
> diff --git a/drivers/iommu/iommufd/io_pagetable.h 
> b/drivers/iommu/iommufd/io_pagetable.h
> index 14cd052fd320..27e3e311d395 100644
> --- a/drivers/iommu/iommufd/io_pagetable.h
> +++ b/drivers/iommu/iommufd/io_pagetable.h
> @@ -202,7 +202,7 @@ struct iopt_pages_dmabuf_track {
>  
>  struct iopt_pages_dmabuf {
>       struct dma_buf_attachment *attach;
> -     struct dma_buf_phys_vec phys;
> +     struct phys_vec phys;
>       /* Always PAGE_SIZE aligned */
>       unsigned long start;
>       struct list_head tracker;
> diff --git a/drivers/iommu/iommufd/iommufd_private.h 
> b/drivers/iommu/iommufd/iommufd_private.h
> index eb6d1a70f673..6ac1965199e9 100644
> --- a/drivers/iommu/iommufd/iommufd_private.h
> +++ b/drivers/iommu/iommufd/iommufd_private.h
> @@ -20,7 +20,6 @@ struct iommu_group;
>  struct iommu_option;
>  struct iommufd_device;
>  struct dma_buf_attachment;
> -struct dma_buf_phys_vec;
>  
>  struct iommufd_sw_msi_map {
>       struct list_head sw_msi_item;
> @@ -718,7 +717,7 @@ int __init iommufd_test_init(void);
>  void iommufd_test_exit(void);
>  bool iommufd_selftest_is_mock_dev(struct device *dev);
>  int iommufd_test_dma_buf_iommufd_map(struct dma_buf_attachment *attachment,
> -                                  struct dma_buf_phys_vec *phys);
> +                                  struct phys_vec *phys);
>  #else
>  static inline void iommufd_test_syz_conv_iova_id(struct iommufd_ucmd *ucmd,
>                                                unsigned int ioas_id,
> @@ -742,7 +741,7 @@ static inline bool iommufd_selftest_is_mock_dev(struct 
> device *dev)
>  }
>  static inline int
>  iommufd_test_dma_buf_iommufd_map(struct dma_buf_attachment *attachment,
> -                              struct dma_buf_phys_vec *phys)
> +                              struct phys_vec *phys)
>  {
>       return -EOPNOTSUPP;
>  }
> diff --git a/drivers/iommu/iommufd/pages.c b/drivers/iommu/iommufd/pages.c
> index dbe51ecb9a20..bababd564cf9 100644
> --- a/drivers/iommu/iommufd/pages.c
> +++ b/drivers/iommu/iommufd/pages.c
> @@ -1077,7 +1077,7 @@ static int pfn_reader_user_update_pinned(struct 
> pfn_reader_user *user,
>  }
>  
>  struct pfn_reader_dmabuf {
> -     struct dma_buf_phys_vec phys;
> +     struct phys_vec phys;
>       unsigned long start_offset;
>  };
>  
> @@ -1460,7 +1460,7 @@ static struct dma_buf_attach_ops 
> iopt_dmabuf_attach_revoke_ops = {
>   */
>  static int
>  sym_vfio_pci_dma_buf_iommufd_map(struct dma_buf_attachment *attachment,
> -                              struct dma_buf_phys_vec *phys)
> +                              struct phys_vec *phys)
>  {
>       typeof(&vfio_pci_dma_buf_iommufd_map) fn;
>       int rc;
> diff --git a/drivers/iommu/iommufd/selftest.c 
> b/drivers/iommu/iommufd/selftest.c
> index 550ff36dec3a..989d8c4c60a7 100644
> --- a/drivers/iommu/iommufd/selftest.c
> +++ b/drivers/iommu/iommufd/selftest.c
> @@ -2002,7 +2002,7 @@ static const struct dma_buf_ops iommufd_test_dmabuf_ops 
> = {
>  };
>  
>  int iommufd_test_dma_buf_iommufd_map(struct dma_buf_attachment *attachment,
> -                                  struct dma_buf_phys_vec *phys)
> +                                  struct phys_vec *phys)
>  {
>       struct iommufd_test_dma_buf *priv = attachment->dmabuf->priv;
>  
> diff --git a/drivers/vfio/pci/nvgrace-gpu/main.c 
> b/drivers/vfio/pci/nvgrace-gpu/main.c
> index 84d142a47ec6..a0f4edd6a30b 100644
> --- a/drivers/vfio/pci/nvgrace-gpu/main.c
> +++ b/drivers/vfio/pci/nvgrace-gpu/main.c
> @@ -784,7 +784,7 @@ nvgrace_gpu_write(struct vfio_device *core_vdev,
>  static int nvgrace_get_dmabuf_phys(struct vfio_pci_core_device *core_vdev,
>                                  struct p2pdma_provider **provider,
>                                  unsigned int region_index,
> -                                struct dma_buf_phys_vec *phys_vec,
> +                                struct phys_vec *phys_vec,
>                                  struct vfio_region_dma_range *dma_ranges,
>                                  size_t nr_ranges)
>  {
> diff --git a/drivers/vfio/pci/vfio_pci_dmabuf.c 
> b/drivers/vfio/pci/vfio_pci_dmabuf.c
> index d4d0f7d08c53..9a84c238c013 100644
> --- a/drivers/vfio/pci/vfio_pci_dmabuf.c
> +++ b/drivers/vfio/pci/vfio_pci_dmabuf.c
> @@ -14,7 +14,7 @@ struct vfio_pci_dma_buf {
>       struct vfio_pci_core_device *vdev;
>       struct list_head dmabufs_elm;
>       size_t size;
> -     struct dma_buf_phys_vec *phys_vec;
> +     struct phys_vec *phys_vec;
>       struct p2pdma_provider *provider;
>       u32 nr_ranges;
>       u8 revoked : 1;
> @@ -94,7 +94,7 @@ static const struct dma_buf_ops vfio_pci_dmabuf_ops = {
>   *    will fail if it is currently revoked
>   */
>  int vfio_pci_dma_buf_iommufd_map(struct dma_buf_attachment *attachment,
> -                              struct dma_buf_phys_vec *phys)
> +                              struct phys_vec *phys)
>  {
>       struct vfio_pci_dma_buf *priv;
>  
> @@ -116,7 +116,7 @@ int vfio_pci_dma_buf_iommufd_map(struct 
> dma_buf_attachment *attachment,
>  }
>  EXPORT_SYMBOL_FOR_MODULES(vfio_pci_dma_buf_iommufd_map, "iommufd");
>  
> -int vfio_pci_core_fill_phys_vec(struct dma_buf_phys_vec *phys_vec,
> +int vfio_pci_core_fill_phys_vec(struct phys_vec *phys_vec,
>                               struct vfio_region_dma_range *dma_ranges,
>                               size_t nr_ranges, phys_addr_t start,
>                               phys_addr_t len)
> @@ -148,7 +148,7 @@ EXPORT_SYMBOL_GPL(vfio_pci_core_fill_phys_vec);
>  int vfio_pci_core_get_dmabuf_phys(struct vfio_pci_core_device *vdev,
>                                 struct p2pdma_provider **provider,
>                                 unsigned int region_index,
> -                               struct dma_buf_phys_vec *phys_vec,
> +                               struct phys_vec *phys_vec,
>                                 struct vfio_region_dma_range *dma_ranges,
>                                 size_t nr_ranges)
>  {
> diff --git a/include/linux/dma-buf-mapping.h b/include/linux/dma-buf-mapping.h
> index a3c0ce2d3a42..09bde3f748e4 100644
> --- a/include/linux/dma-buf-mapping.h
> +++ b/include/linux/dma-buf-mapping.h
> @@ -9,7 +9,7 @@
>  
>  struct sg_table *dma_buf_phys_vec_to_sgt(struct dma_buf_attachment *attach,
>                                        struct p2pdma_provider *provider,
> -                                      struct dma_buf_phys_vec *phys_vec,
> +                                      struct phys_vec *phys_vec,
>                                        size_t nr_ranges, size_t size,
>                                        enum dma_data_direction dir);
>  void dma_buf_free_sgt(struct dma_buf_attachment *attach, struct sg_table 
> *sgt,
> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
> index 0bc492090237..400a5311368e 100644
> --- a/include/linux/dma-buf.h
> +++ b/include/linux/dma-buf.h
> @@ -531,16 +531,6 @@ struct dma_buf_export_info {
>       void *priv;
>  };
>  
> -/**
> - * struct dma_buf_phys_vec - describe continuous chunk of memory
> - * @paddr:   physical address of that chunk
> - * @len:     Length of this chunk
> - */
> -struct dma_buf_phys_vec {
> -     phys_addr_t paddr;
> -     size_t len;
> -};
> -
>  /**
>   * DEFINE_DMA_BUF_EXPORT_INFO - helper macro for exporters
>   * @name: export-info name
> diff --git a/include/linux/vfio_pci_core.h b/include/linux/vfio_pci_core.h
> index 706877f998ff..2ac288bb2c60 100644
> --- a/include/linux/vfio_pci_core.h
> +++ b/include/linux/vfio_pci_core.h
> @@ -28,7 +28,6 @@
>  struct vfio_pci_core_device;
>  struct vfio_pci_region;
>  struct p2pdma_provider;
> -struct dma_buf_phys_vec;
>  struct dma_buf_attachment;
>  
>  struct vfio_pci_eventfd {
> @@ -62,25 +61,25 @@ struct vfio_pci_device_ops {
>       int (*get_dmabuf_phys)(struct vfio_pci_core_device *vdev,
>                              struct p2pdma_provider **provider,
>                              unsigned int region_index,
> -                            struct dma_buf_phys_vec *phys_vec,
> +                            struct phys_vec *phys_vec,
>                              struct vfio_region_dma_range *dma_ranges,
>                              size_t nr_ranges);
>  };
>  
>  #if IS_ENABLED(CONFIG_VFIO_PCI_DMABUF)
> -int vfio_pci_core_fill_phys_vec(struct dma_buf_phys_vec *phys_vec,
> +int vfio_pci_core_fill_phys_vec(struct phys_vec *phys_vec,
>                               struct vfio_region_dma_range *dma_ranges,
>                               size_t nr_ranges, phys_addr_t start,
>                               phys_addr_t len);
>  int vfio_pci_core_get_dmabuf_phys(struct vfio_pci_core_device *vdev,
>                                 struct p2pdma_provider **provider,
>                                 unsigned int region_index,
> -                               struct dma_buf_phys_vec *phys_vec,
> +                               struct phys_vec *phys_vec,
>                                 struct vfio_region_dma_range *dma_ranges,
>                                 size_t nr_ranges);
>  #else
>  static inline int
> -vfio_pci_core_fill_phys_vec(struct dma_buf_phys_vec *phys_vec,
> +vfio_pci_core_fill_phys_vec(struct phys_vec *phys_vec,
>                           struct vfio_region_dma_range *dma_ranges,
>                           size_t nr_ranges, phys_addr_t start,
>                           phys_addr_t len)
> @@ -89,7 +88,7 @@ vfio_pci_core_fill_phys_vec(struct dma_buf_phys_vec 
> *phys_vec,
>  }
>  static inline int vfio_pci_core_get_dmabuf_phys(
>       struct vfio_pci_core_device *vdev, struct p2pdma_provider **provider,
> -     unsigned int region_index, struct dma_buf_phys_vec *phys_vec,
> +     unsigned int region_index, struct phys_vec *phys_vec,
>       struct vfio_region_dma_range *dma_ranges, size_t nr_ranges)
>  {
>       return -EOPNOTSUPP;
> @@ -228,6 +227,6 @@ static inline bool is_aligned_for_order(struct 
> vm_area_struct *vma,
>  }
>  
>  int vfio_pci_dma_buf_iommufd_map(struct dma_buf_attachment *attachment,
> -                              struct dma_buf_phys_vec *phys);
> +                              struct phys_vec *phys);
>  
>  #endif /* VFIO_PCI_CORE_H */
> 
> ---
> base-commit: fcf463b92a08686d1aeb1e66674a72eb7a8bfb9b
> change-id: 20260107-convert-to-pvec-bf04dfcf3d12
> 
> Best regards,
> --  
> Leon Romanovsky <[email protected]>
> 
> 

Reply via email to