Compilation fails on 32 bits on Vhost_xen sample app, due to wrong casting:
examples/vhost_xen/vhost_monitor.c: In function ?new_device?:
examples/vhost_xen/vhost_monitor.c:288:62: error: cast from pointer to integer
of different size [-Werror=pointer-to-int-cast]
gpa = new_ll_dev->dev.mem->regions[i].guest_phys_address =
(uint64_t)guest->mempool[i].gva;
Fixes: 47bd46112b71 ("xen: import xenvirt pmd and vhost_xen")
^
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
---
examples/vhost_xen/vhost_monitor.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/examples/vhost_xen/vhost_monitor.c
b/examples/vhost_xen/vhost_monitor.c
index 605cd4d..fb9606b 100644
--- a/examples/vhost_xen/vhost_monitor.c
+++ b/examples/vhost_xen/vhost_monitor.c
@@ -285,9 +285,13 @@ virtio_net_config_ll *new_device(unsigned int virtio_idx,
struct xen_guest *gues
new_ll_dev->dev.mem = malloc(sizeof(struct virtio_memory) +
sizeof(struct virtio_memory_regions) * MAX_XENVIRT_MEMPOOL);
new_ll_dev->dev.mem->nregions = guest->pool_num;
for (i = 0; i < guest->pool_num; i++) {
- gpa = new_ll_dev->dev.mem->regions[i].guest_phys_address =
(uint64_t)guest->mempool[i].gva;
- new_ll_dev->dev.mem->regions[i].guest_phys_address_end = gpa +
guest->mempool[i].mempfn_num * getpagesize();
- new_ll_dev->dev.mem->regions[i].address_offset =
(uint64_t)guest->mempool[i].hva - gpa;
+ gpa = new_ll_dev->dev.mem->regions[i].guest_phys_address =
+ (uint64_t)((uintptr_t)guest->mempool[i].gva);
+ new_ll_dev->dev.mem->regions[i].guest_phys_address_end =
+ gpa + guest->mempool[i].mempfn_num *
getpagesize();
+ new_ll_dev->dev.mem->regions[i].address_offset =
+ (uint64_t)((uintptr_t)guest->mempool[i].hva -
+ (uintptr_t)gpa);
}
new_ll_dev->next = NULL;
--
2.5.0