[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/21] vdpa: Use ring hwaddr at vhost_vdpa_svq_unmap_ring
From: |
Jason Wang |
Subject: |
[PULL 07/21] vdpa: Use ring hwaddr at vhost_vdpa_svq_unmap_ring |
Date: |
Fri, 2 Sep 2022 14:41:24 +0800 |
From: Eugenio Pérez <eperezma@redhat.com>
Reduce code duplication.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
hw/virtio/vhost-vdpa.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index e208dd0..23ae5ef 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -884,10 +884,12 @@ static int vhost_vdpa_svq_set_fds(struct vhost_dev *dev,
/**
* Unmap a SVQ area in the device
*/
-static void vhost_vdpa_svq_unmap_ring(struct vhost_vdpa *v,
- const DMAMap *needle)
+static void vhost_vdpa_svq_unmap_ring(struct vhost_vdpa *v, hwaddr addr)
{
- const DMAMap *result = vhost_iova_tree_find_iova(v->iova_tree, needle);
+ const DMAMap needle = {
+ .translated_addr = addr,
+ };
+ const DMAMap *result = vhost_iova_tree_find_iova(v->iova_tree, &needle);
hwaddr size;
int r;
@@ -909,17 +911,14 @@ static void vhost_vdpa_svq_unmap_ring(struct vhost_vdpa
*v,
static void vhost_vdpa_svq_unmap_rings(struct vhost_dev *dev,
const VhostShadowVirtqueue *svq)
{
- DMAMap needle = {};
struct vhost_vdpa *v = dev->opaque;
struct vhost_vring_addr svq_addr;
vhost_svq_get_vring_addr(svq, &svq_addr);
- needle.translated_addr = svq_addr.desc_user_addr;
- vhost_vdpa_svq_unmap_ring(v, &needle);
+ vhost_vdpa_svq_unmap_ring(v, svq_addr.desc_user_addr);
- needle.translated_addr = svq_addr.used_user_addr;
- vhost_vdpa_svq_unmap_ring(v, &needle);
+ vhost_vdpa_svq_unmap_ring(v, svq_addr.used_user_addr);
}
/**
@@ -997,7 +996,7 @@ static bool vhost_vdpa_svq_map_rings(struct vhost_dev *dev,
ok = vhost_vdpa_svq_map_ring(v, &device_region, errp);
if (unlikely(!ok)) {
error_prepend(errp, "Cannot create vq device region: ");
- vhost_vdpa_svq_unmap_ring(v, &driver_region);
+ vhost_vdpa_svq_unmap_ring(v, driver_region.translated_addr);
}
addr->used_user_addr = device_region.iova;
--
2.7.4
- [PULL 00/21] Net patches, Jason Wang, 2022/09/02
- [PULL 01/21] vdpa: Skip the maps not in the iova tree, Jason Wang, 2022/09/02
- [PULL 03/21] util: accept iova_tree_remove_parameter by value, Jason Wang, 2022/09/02
- [PULL 02/21] vdpa: do not save failed dma maps in SVQ iova tree, Jason Wang, 2022/09/02
- [PULL 05/21] vdpa: Make SVQ vring unmapping return void, Jason Wang, 2022/09/02
- [PULL 06/21] vhost: Always store new kick fd on vhost_svq_set_svq_kick_fd, Jason Wang, 2022/09/02
- [PULL 07/21] vdpa: Use ring hwaddr at vhost_vdpa_svq_unmap_ring,
Jason Wang <=
- [PULL 08/21] vhost: stop transfer elem ownership in vhost_handle_guest_kick, Jason Wang, 2022/09/02
- [PULL 10/21] vhost: Delete useless read memory barrier, Jason Wang, 2022/09/02
- [PULL 12/21] vhost_net: Add NetClientInfo start callback, Jason Wang, 2022/09/02
- [PULL 09/21] vhost: use SVQ element ndescs instead of opaque data for desc validation, Jason Wang, 2022/09/02
- [PULL 11/21] vhost: Do not depend on !NULL VirtQueueElement on vhost_svq_flush, Jason Wang, 2022/09/02
- [PULL 13/21] vhost_net: Add NetClientInfo stop callback, Jason Wang, 2022/09/02
- [PULL 16/21] vdpa: extract vhost_vdpa_net_cvq_add from vhost_vdpa_net_handle_ctrl_avail, Jason Wang, 2022/09/02
- [PULL 15/21] vdpa: Move command buffers map to start of net device, Jason Wang, 2022/09/02
- [PULL 14/21] vdpa: add net_vhost_vdpa_cvq_info NetClientInfo, Jason Wang, 2022/09/02
- [PULL 18/21] vdpa: Add virtio-net mac address via CVQ at start, Jason Wang, 2022/09/02