[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <977e44fe-63ec-a695-11a5-d7c584124294@redhat.com>
Date: Tue, 2 Mar 2021 14:50:37 +0800
From: Jason Wang <jasowang@...hat.com>
To: Xie Yongji <xieyongji@...edance.com>, mst@...hat.com,
stefanha@...hat.com, sgarzare@...hat.com, parav@...dia.com,
bob.liu@...cle.com, hch@...radead.org, rdunlap@...radead.org,
willy@...radead.org, viro@...iv.linux.org.uk, axboe@...nel.dk,
bcrl@...ck.org, corbet@....net
Cc: virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org,
kvm@...r.kernel.org, linux-aio@...ck.org,
linux-fsdevel@...r.kernel.org
Subject: Re: [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@...hat.com>
> Signed-off-by: Xie Yongji <xieyongji@...edance.com>
Acked-by: Jason Wang <jasowang@...hat.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 */
Powered by blists - more mailing lists