lkml.org 
[lkml]   [2021]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v11 07/12] vdpa: Add an opaque pointer for vdpa_config_ops.dma_map()
    Date
    Add an opaque pointer for DMA mapping.

    Suggested-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
    Acked-by: Jason Wang <jasowang@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 e30d89b399d9..827d613c4eb6 100644
    --- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
    +++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
    @@ -544,14 +544,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 d99d75ad30cc..87ab104792fb 100644
    --- a/drivers/vhost/vdpa.c
    +++ b/drivers/vhost/vdpa.c
    @@ -574,7 +574,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 af7ea5ad795f..18f81612217e 100644
    --- a/include/linux/vdpa.h
    +++ b/include/linux/vdpa.h
    @@ -271,7 +271,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 */
    --
    2.11.0
    \
     
     \ /
      Last update: 2021-08-18 14:09    [W:4.460 / U:0.564 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site