public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Alex Williamson <alex@shazbot.org>
Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org,
	iommu@lists.linux.dev, kvm@vger.kernel.org,
	"Sumit Semwal" <sumit.semwal@linaro.org>,
	"Christian König" <christian.koenig@amd.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Kevin Tian" <kevin.tian@intel.com>,
	"Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Yishai Hadas" <yishaih@nvidia.com>,
	"Shameer Kolothum" <skolothumtho@nvidia.com>,
	"Ankit Agrawal" <ankita@nvidia.com>,
	"Matthew Wilcox" <willy@infradead.org>,
	"Jens Axboe" <axboe@kernel.dk>
Subject: Re: types: reuse common phys_vec type instead of DMABUF open‑coded variant
Date: Wed, 21 Jan 2026 16:34:53 +0200	[thread overview]
Message-ID: <20260121143453.GE13201@unreal> (raw)
In-Reply-To: <20260119133838.66203b01@shazbot.org>

On Mon, Jan 19, 2026 at 01:38:38PM -0700, Alex Williamson wrote:
> On Wed,  7 Jan 2026 11:14:14 +0200
> Leon Romanovsky <leon@kernel.org> wrote:
> 
> > From: Leon Romanovsky <leonro@nvidia.com>
> > 
> > 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 <leonro@nvidia.com>
> > ---
> > 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. I will pull it right before the RDMA dma-buf exporter patches are
ready to be merged.

Thanks again.

> Thanks,
> 
> Alex
> 
> 
> > ---
> > Cc: linux-media@vger.kernel.org
> > Cc: dri-devel@lists.freedesktop.org
> > Cc: linaro-mm-sig@lists.linaro.org
> > Cc: linux-kernel@vger.kernel.org
> > Cc: iommu@lists.linux.dev
> > Cc: kvm@vger.kernel.org
> > To: Sumit Semwal <sumit.semwal@linaro.org>
> > To: Christian König <christian.koenig@amd.com>
> > To: Jason Gunthorpe <jgg@ziepe.ca>
> > To: Kevin Tian <kevin.tian@intel.com>
> > To: Joerg Roedel <joro@8bytes.org>
> > To: Will Deacon <will@kernel.org>
> > To: Robin Murphy <robin.murphy@arm.com>
> > To: Yishai Hadas <yishaih@nvidia.com>
> > To: Shameer Kolothum <skolothumtho@nvidia.com>
> > To: Ankit Agrawal <ankita@nvidia.com>
> > To: Alex Williamson <alex@shazbot.org>
> > Cc: Matthew Wilcox <willy@infradead.org>
> > Cc: Jens Axboe <axboe@kernel.dk>
> > ---
> >  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 <leonro@nvidia.com>
> > 
> > 
> 

      reply	other threads:[~2026-01-21 14:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-07  9:14 types: reuse common phys_vec type instead of DMABUF open‑coded variant Leon Romanovsky
2026-01-07 16:00 ` Jason Gunthorpe
2026-01-14 12:18 ` Leon Romanovsky
2026-01-16 17:14   ` Alex Williamson
2026-01-18 16:54     ` Leon Romanovsky
2026-01-18 16:58     ` Jens Axboe
2026-01-15  6:01 ` Tian, Kevin
2026-01-19 20:38 ` Alex Williamson
2026-01-21 14:34   ` Leon Romanovsky [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260121143453.GE13201@unreal \
    --to=leon@kernel.org \
    --cc=alex@shazbot.org \
    --cc=ankita@nvidia.com \
    --cc=axboe@kernel.dk \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=skolothumtho@nvidia.com \
    --cc=sumit.semwal@linaro.org \
    --cc=will@kernel.org \
    --cc=willy@infradead.org \
    --cc=yishaih@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox