Displaying 3 results from an estimated 3 matches for "vdpa_map".
Did you mean:
vdpa_mmap
2020 Nov 03
0
[PATCH 1/2] Revert "vhost-vdpa: fix page pinning leakage in error path"
...t; - }
> - goto unlock;
> + if (locked > lock_limit) {
> + ret = -ENOMEM;
> + goto out;
> }
>
> + cur_base = msg->uaddr & PAGE_MASK;
> iova &= PAGE_MASK;
> - map_pfn = page_to_pfn(page_list[0]);
> -
> - /* One more iteration to avoid extra vdpa_map() call out of loop. */
> - for (i = 0; i <= npages; i++) {
> - unsigned long this_pfn;
> - u64 csize;
> -
> - /* The last chunk may have no valid PFN next to it */
> - this_pfn = i < npages ? page_to_pfn(page_list[i]) : -1UL;
> -
> - if (last_pfn && (this_...
2020 Oct 01
0
[PATCH] vhost-vdpa: fix page pinning leakage in error path
...host/vdpa.c | 121 +++++++++++++++++++++++++++++++--------------------
1 file changed, 73 insertions(+), 48 deletions(-)
diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index 796fe97..abc4aa2 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -565,6 +565,8 @@ static int vhost_vdpa_map(struct vhost_vdpa *v,
perm_to_iommu_flags(perm));
}
+ if (r)
+ vhost_iotlb_del_range(dev->iotlb, iova, iova + size - 1);
return r;
}
@@ -592,21 +594,19 @@ static int vhost_vdpa_process_iotlb_update(struct vhost_vdpa *v,
struct vhost_dev *dev = &v->vdev;
struct vhos...
2020 Oct 01
0
[PATCH v2] vhost-vdpa: fix page pinning leakage in error path
...host/vdpa.c | 121 +++++++++++++++++++++++++++++++--------------------
1 file changed, 73 insertions(+), 48 deletions(-)
diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index 796fe97..abc4aa2 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -565,6 +565,8 @@ static int vhost_vdpa_map(struct vhost_vdpa *v,
perm_to_iommu_flags(perm));
}
+ if (r)
+ vhost_iotlb_del_range(dev->iotlb, iova, iova + size - 1);
return r;
}
@@ -592,21 +594,19 @@ static int vhost_vdpa_process_iotlb_update(struct vhost_vdpa *v,
struct vhost_dev *dev = &v->vdev;
struct vhos...