Jason Wang
2021-Mar-02 06:50 UTC
[RFC v4 04/11] vdpa: Add an opaque pointer for vdpa_config_ops.dma_map()
On 2021/2/23 7:50 ??, Xie Yongji wrote:> Add an opaque pointer for DMA mapping. > > Suggested-by: Jason Wang <jasowang at redhat.com> > Signed-off-by: Xie Yongji <xieyongji at bytedance.com>Acked-by: Jason Wang <jasowang at redhat.com>> --- > drivers/vdpa/vdpa_sim/vdpa_sim.c | 6 +++--- > drivers/vhost/vdpa.c | 2 +- > include/linux/vdpa.h | 2 +- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c > index d5942842432d..5cfc262ce055 100644 > --- a/drivers/vdpa/vdpa_sim/vdpa_sim.c > +++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c > @@ -512,14 +512,14 @@ static int vdpasim_set_map(struct vdpa_device *vdpa, > } > > static int vdpasim_dma_map(struct vdpa_device *vdpa, u64 iova, u64 size, > - u64 pa, u32 perm) > + u64 pa, u32 perm, void *opaque) > { > struct vdpasim *vdpasim = vdpa_to_sim(vdpa); > int ret; > > spin_lock(&vdpasim->iommu_lock); > - ret = vhost_iotlb_add_range(vdpasim->iommu, iova, iova + size - 1, pa, > - perm); > + ret = vhost_iotlb_add_range_ctx(vdpasim->iommu, iova, iova + size - 1, > + pa, perm, opaque); > spin_unlock(&vdpasim->iommu_lock); > > return ret; > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index 5500e3bf05c1..70857fe3263c 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -544,7 +544,7 @@ static int vhost_vdpa_map(struct vhost_vdpa *v, > return r; > > if (ops->dma_map) { > - r = ops->dma_map(vdpa, iova, size, pa, perm); > + r = ops->dma_map(vdpa, iova, size, pa, perm, NULL); > } else if (ops->set_map) { > if (!v->in_batch) > r = ops->set_map(vdpa, dev->iotlb); > diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h > index 4ab5494503a8..93dca2c328ae 100644 > --- a/include/linux/vdpa.h > +++ b/include/linux/vdpa.h > @@ -241,7 +241,7 @@ struct vdpa_config_ops { > /* DMA ops */ > int (*set_map)(struct vdpa_device *vdev, struct vhost_iotlb *iotlb); > int (*dma_map)(struct vdpa_device *vdev, u64 iova, u64 size, > - u64 pa, u32 perm); > + u64 pa, u32 perm, void *opaque); > int (*dma_unmap)(struct vdpa_device *vdev, u64 iova, u64 size); > > /* Free device resources */