net/virtio: fix incorrect cast of void *
[dpdk.git] / lib / librte_eal / common / rte_malloc.c
index 0028128..fe2278b 100644 (file)
@@ -246,22 +246,22 @@ rte_malloc_set_limit(__rte_unused const char *type,
 }
 
 /*
- * Return the physical address of a virtual address obtained through rte_malloc
+ * Return the IO address of a virtual address obtained through rte_malloc
  */
-phys_addr_t
-rte_malloc_virt2phy(const void *addr)
+rte_iova_t
+rte_malloc_virt2iova(const void *addr)
 {
-       phys_addr_t paddr;
+       rte_iova_t iova;
        const struct malloc_elem *elem = malloc_elem_from_data(addr);
        if (elem == NULL)
-               return RTE_BAD_PHYS_ADDR;
+               return RTE_BAD_IOVA;
        if (elem->ms->iova == RTE_BAD_IOVA)
                return RTE_BAD_IOVA;
 
        if (rte_eal_iova_mode() == RTE_IOVA_VA)
-               paddr = (uintptr_t)addr;
+               iova = (uintptr_t)addr;
        else
-               paddr = elem->ms->iova +
-                       ((uintptr_t)addr - (uintptr_t)elem->ms->addr);
-       return paddr;
+               iova = elem->ms->iova +
+                       RTE_PTR_DIFF(addr, elem->ms->addr);
+       return iova;
 }