From: Marcel Apfelbaum <marcel@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, yuval.shaia@oracle.com, mst@redhat.com,
marcel@redhat.com, f4bug@amsat.org, eblake@redhat.com,
berrange@redhat.com, stefanha@redhat.com
Subject: [Qemu-devel] [PATCH PULL 6/8] hw/rdma: Change host_virt to void *
Date: Fri, 23 Mar 2018 18:53:04 +0300 [thread overview]
Message-ID: <20180323155306.83812-7-marcel@redhat.com> (raw)
In-Reply-To: <20180323155306.83812-1-marcel@redhat.com>
From: Yuval Shaia <yuval.shaia@oracle.com>
To avoid compilation warnings on 32-bit machines:
rdma_backend.c: In function 'rdma_backend_create_mr':
rdma_backend.c:409:37: error: cast to pointer from integer of different
size [-Werror=int-to-pointer-cast]
mr->ibmr = ibv_reg_mr(pd->ibpd, (void *)addr, length, access);
Reported-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Tested-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20180322095220.9976-2-yuval.shaia@oracle.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---
hw/rdma/rdma_backend.c | 8 ++++----
hw/rdma/rdma_backend.h | 2 +-
hw/rdma/rdma_rm.c | 10 +++++-----
hw/rdma/rdma_rm_defs.h | 2 +-
4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c
index 57f40d99a3..b1d2913b2c 100644
--- a/hw/rdma/rdma_backend.c
+++ b/hw/rdma/rdma_backend.c
@@ -222,7 +222,7 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res,
return VENDOR_ERR_INVLKEY | ssge[ssge_idx].lkey;
}
- dsge->addr = mr->user_mr.host_virt + ssge[ssge_idx].addr -
+ dsge->addr = (uintptr_t)mr->user_mr.host_virt + ssge[ssge_idx].addr -
mr->user_mr.guest_start;
dsge->length = ssge[ssge_idx].length;
dsge->lkey = rdma_backend_mr_lkey(&mr->backend_mr);
@@ -401,12 +401,12 @@ void rdma_backend_destroy_pd(RdmaBackendPD *pd)
}
}
-int rdma_backend_create_mr(RdmaBackendMR *mr, RdmaBackendPD *pd, uint64_t addr,
+int rdma_backend_create_mr(RdmaBackendMR *mr, RdmaBackendPD *pd, void *addr,
size_t length, int access)
{
- pr_dbg("addr=0x%lx\n", addr);
+ pr_dbg("addr=0x%p\n", addr);
pr_dbg("len=%ld\n", length);
- mr->ibmr = ibv_reg_mr(pd->ibpd, (void *)addr, length, access);
+ mr->ibmr = ibv_reg_mr(pd->ibpd, addr, length, access);
if (mr->ibmr) {
pr_dbg("lkey=0x%x\n", mr->ibmr->lkey);
pr_dbg("rkey=0x%x\n", mr->ibmr->rkey);
diff --git a/hw/rdma/rdma_backend.h b/hw/rdma/rdma_backend.h
index 505cad7e0e..3cd636dd88 100644
--- a/hw/rdma/rdma_backend.h
+++ b/hw/rdma/rdma_backend.h
@@ -61,7 +61,7 @@ int rdma_backend_query_port(RdmaBackendDev *backend_dev,
int rdma_backend_create_pd(RdmaBackendDev *backend_dev, RdmaBackendPD *pd);
void rdma_backend_destroy_pd(RdmaBackendPD *pd);
-int rdma_backend_create_mr(RdmaBackendMR *mr, RdmaBackendPD *pd, uint64_t addr,
+int rdma_backend_create_mr(RdmaBackendMR *mr, RdmaBackendPD *pd, void *addr,
size_t length, int access);
void rdma_backend_destroy_mr(RdmaBackendMR *mr);
diff --git a/hw/rdma/rdma_rm.c b/hw/rdma/rdma_rm.c
index 6d88ac5d23..b4938169b6 100644
--- a/hw/rdma/rdma_rm.c
+++ b/hw/rdma/rdma_rm.c
@@ -146,7 +146,7 @@ int rdma_rm_alloc_mr(RdmaDeviceResources *dev_res, uint32_t pd_handle,
RdmaRmMR *mr;
int ret = 0;
RdmaRmPD *pd;
- uint64_t addr;
+ void *addr;
size_t length;
pd = rdma_rm_get_pd(dev_res, pd_handle);
@@ -165,10 +165,10 @@ int rdma_rm_alloc_mr(RdmaDeviceResources *dev_res, uint32_t pd_handle,
/* TODO: This is my guess but not so sure that this needs to be
* done */
length = TARGET_PAGE_SIZE;
- addr = (uint64_t)g_malloc(length);
+ addr = g_malloc(length);
} else {
- mr->user_mr.host_virt = (uint64_t) host_virt;
- pr_dbg("host_virt=0x%lx\n", mr->user_mr.host_virt);
+ mr->user_mr.host_virt = host_virt;
+ pr_dbg("host_virt=0x%p\n", mr->user_mr.host_virt);
mr->user_mr.length = guest_length;
pr_dbg("length=0x%lx\n", guest_length);
mr->user_mr.guest_start = guest_start;
@@ -216,7 +216,7 @@ void rdma_rm_dealloc_mr(RdmaDeviceResources *dev_res, uint32_t mr_handle)
if (mr) {
rdma_backend_destroy_mr(&mr->backend_mr);
- munmap((void *)mr->user_mr.host_virt, mr->user_mr.length);
+ munmap(mr->user_mr.host_virt, mr->user_mr.length);
res_tbl_dealloc(&dev_res->mr_tbl, mr_handle);
}
}
diff --git a/hw/rdma/rdma_rm_defs.h b/hw/rdma/rdma_rm_defs.h
index 6522dca68f..fc646da61f 100644
--- a/hw/rdma/rdma_rm_defs.h
+++ b/hw/rdma/rdma_rm_defs.h
@@ -56,7 +56,7 @@ typedef struct RdmaRmCQ {
} RdmaRmCQ;
typedef struct RdmaRmUserMR {
- uint64_t host_virt;
+ void *host_virt;
uint64_t guest_start;
size_t length;
} RdmaRmUserMR;
--
2.13.5
next prev parent reply other threads:[~2018-03-23 15:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-23 15:52 [Qemu-devel] [PATCH PULL 0/8] RDMA queue Marcel Apfelbaum
2018-03-23 15:52 ` [Qemu-devel] [PATCH PULL 1/8] hw/rdma: Add Query QP operation Marcel Apfelbaum
2018-03-23 15:53 ` [Qemu-devel] [PATCH PULL 2/8] hw/rdma: Add support for Query QP verb to pvrdma device Marcel Apfelbaum
2018-03-23 15:53 ` [Qemu-devel] [PATCH PULL 3/8] rdma: fix up include directives Marcel Apfelbaum
2018-03-23 15:53 ` [Qemu-devel] [PATCH PULL 4/8] make: switch from -I to -iquote Marcel Apfelbaum
2018-03-23 15:53 ` [Qemu-devel] [PATCH PULL 5/8] hw/rdma: fix clang compilation errors Marcel Apfelbaum
2018-03-23 15:53 ` Marcel Apfelbaum [this message]
2018-03-23 15:53 ` [Qemu-devel] [PATCH PULL 7/8] hw/rdma: Use correct print format in CHK_ATTR macro Marcel Apfelbaum
2018-03-23 15:53 ` [Qemu-devel] [PATCH PULL 8/8] hw/rdma: Fix 32-bit compilation Marcel Apfelbaum
2018-03-24 19:23 ` [Qemu-devel] [PATCH PULL 0/8] RDMA queue Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180323155306.83812-7-marcel@redhat.com \
--to=marcel@redhat.com \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=f4bug@amsat.org \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=yuval.shaia@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).