mirror of
https://github.com/torvalds/linux.git
synced 2026-03-09 20:36:39 +01:00
types: reuse common phys_vec type instead of DMABUF open‑coded variant
After commit fcf463b92a ("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>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20260107-convert-to-pvec-v1-1-6e3ab8079708@nvidia.com
Signed-off-by: Alex Williamson <alex@shazbot.org>
This commit is contained in:
parent
fcf463b92a
commit
b703b31ea8
10 changed files with 21 additions and 33 deletions
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue