From: Xuan Ding <xuan.d...@intel.com>

This patch renames the host_phys_addr to host_iova in guest_page
struct. The host_phys_addr is iova, it depends on the DPDK
IOVA mode.

Fixes: e246896178e6 ("vhost: get guest/host physical address mappings")
Cc: sta...@dpdk.org

Signed-off-by: Xuan Ding <xuan.d...@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>
---
 lib/vhost/vhost.h      | 10 +++++-----
 lib/vhost/vhost_user.c | 20 ++++++++++----------
 lib/vhost/virtio_net.c | 11 ++++++-----
 3 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h
index 1c2ee29600..ccac679c25 100644
--- a/lib/vhost/vhost.h
+++ b/lib/vhost/vhost.h
@@ -426,7 +426,7 @@ struct vring_packed_desc_event {
 
 struct guest_page {
        uint64_t guest_phys_addr;
-       uint64_t host_phys_addr;
+       uint64_t host_iova;
        uint64_t size;
 };
 
@@ -689,13 +689,13 @@ gpa_to_first_hpa(struct virtio_net *dev, uint64_t gpa,
                        if (gpa + gpa_size <=
                                        page->guest_phys_addr + page->size) {
                                return gpa - page->guest_phys_addr +
-                                       page->host_phys_addr;
+                                       page->host_iova;
                        } else if (gpa < page->guest_phys_addr +
                                                page->size) {
                                *hpa_size = page->guest_phys_addr +
                                        page->size - gpa;
                                return gpa - page->guest_phys_addr +
-                                       page->host_phys_addr;
+                                       page->host_iova;
                        }
                }
        } else {
@@ -706,13 +706,13 @@ gpa_to_first_hpa(struct virtio_net *dev, uint64_t gpa,
                                if (gpa + gpa_size <=
                                        page->guest_phys_addr + page->size) {
                                        return gpa - page->guest_phys_addr +
-                                               page->host_phys_addr;
+                                               page->host_iova;
                                } else if (gpa < page->guest_phys_addr +
                                                        page->size) {
                                        *hpa_size = page->guest_phys_addr +
                                                page->size - gpa;
                                        return gpa - page->guest_phys_addr +
-                                               page->host_phys_addr;
+                                               page->host_iova;
                                }
                        }
                }
diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
index 1d3f89afd8..066adfb464 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -988,7 +988,7 @@ vhost_user_set_vring_base(struct virtio_net **pdev,
 
 static int
 add_one_guest_page(struct virtio_net *dev, uint64_t guest_phys_addr,
-                  uint64_t host_phys_addr, uint64_t size)
+                  uint64_t host_iova, uint64_t size)
 {
        struct guest_page *page, *last_page;
        struct guest_page *old_pages;
@@ -1009,7 +1009,7 @@ add_one_guest_page(struct virtio_net *dev, uint64_t 
guest_phys_addr,
        if (dev->nr_guest_pages > 0) {
                last_page = &dev->guest_pages[dev->nr_guest_pages - 1];
                /* merge if the two pages are continuous */
-               if (host_phys_addr == last_page->host_phys_addr +
+               if (host_iova == last_page->host_iova +
                                      last_page->size) {
                        last_page->size += size;
                        return 0;
@@ -1018,7 +1018,7 @@ add_one_guest_page(struct virtio_net *dev, uint64_t 
guest_phys_addr,
 
        page = &dev->guest_pages[dev->nr_guest_pages++];
        page->guest_phys_addr = guest_phys_addr;
-       page->host_phys_addr  = host_phys_addr;
+       page->host_iova  = host_iova;
        page->size = size;
 
        return 0;
@@ -1031,14 +1031,14 @@ add_guest_pages(struct virtio_net *dev, struct 
rte_vhost_mem_region *reg,
        uint64_t reg_size = reg->size;
        uint64_t host_user_addr  = reg->host_user_addr;
        uint64_t guest_phys_addr = reg->guest_phys_addr;
-       uint64_t host_phys_addr;
+       uint64_t host_iova;
        uint64_t size;
 
-       host_phys_addr = rte_mem_virt2iova((void *)(uintptr_t)host_user_addr);
+       host_iova = rte_mem_virt2iova((void *)(uintptr_t)host_user_addr);
        size = page_size - (guest_phys_addr & (page_size - 1));
        size = RTE_MIN(size, reg_size);
 
-       if (add_one_guest_page(dev, guest_phys_addr, host_phys_addr, size) < 0)
+       if (add_one_guest_page(dev, guest_phys_addr, host_iova, size) < 0)
                return -1;
 
        host_user_addr  += size;
@@ -1047,9 +1047,9 @@ add_guest_pages(struct virtio_net *dev, struct 
rte_vhost_mem_region *reg,
 
        while (reg_size > 0) {
                size = RTE_MIN(reg_size, page_size);
-               host_phys_addr = rte_mem_virt2iova((void *)(uintptr_t)
+               host_iova = rte_mem_virt2iova((void *)(uintptr_t)
                                                  host_user_addr);
-               if (add_one_guest_page(dev, guest_phys_addr, host_phys_addr,
+               if (add_one_guest_page(dev, guest_phys_addr, host_iova,
                                size) < 0)
                        return -1;
 
@@ -1082,8 +1082,8 @@ dump_guest_pages(struct virtio_net *dev)
                                dev->ifname, i);
                VHOST_LOG_CONFIG(INFO, "(%s)\tguest_phys_addr: %" PRIx64 "\n",
                                dev->ifname, page->guest_phys_addr);
-               VHOST_LOG_CONFIG(INFO, "(%s)\thost_phys_addr : %" PRIx64 "\n",
-                               dev->ifname, page->host_phys_addr);
+               VHOST_LOG_CONFIG(INFO, "(%s)\thost_iova : %" PRIx64 "\n",
+                               dev->ifname, page->host_iova);
                VHOST_LOG_CONFIG(INFO, "(%s)\tsize           : %" PRIx64 "\n",
                                dev->ifname, page->size);
        }
diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
index 886e076b28..5f432b0d77 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -1004,20 +1004,21 @@ async_mbuf_to_desc_seg(struct virtio_net *dev, struct 
vhost_virtqueue *vq,
        struct vhost_async *async = vq->async;
        uint64_t mapped_len;
        uint32_t buf_offset = 0;
-       void *hpa;
+       void *host_iova;
 
        while (cpy_len) {
-               hpa = (void *)(uintptr_t)gpa_to_first_hpa(dev,
+               host_iova = (void *)(uintptr_t)gpa_to_first_hpa(dev,
                                buf_iova + buf_offset, cpy_len, &mapped_len);
-               if (unlikely(!hpa)) {
-                       VHOST_LOG_DATA(ERR, "(%s) %s: failed to get hpa.\n", 
dev->ifname, __func__);
+               if (unlikely(!host_iova)) {
+                       VHOST_LOG_DATA(ERR, "(%s) %s: failed to get host 
iova.\n",
+                                      dev->ifname, __func__);
                        return -1;
                }
 
                if (unlikely(async_iter_add_iovec(dev, async,
                                                (void 
*)(uintptr_t)rte_pktmbuf_iova_offset(m,
                                                        mbuf_offset),
-                                               hpa, (size_t)mapped_len)))
+                                               host_iova, (size_t)mapped_len)))
                        return -1;
 
                cpy_len -= (uint32_t)mapped_len;
-- 
2.17.1

Reply via email to