aboutsummaryrefslogtreecommitdiff
path: root/hw/rdma/rdma_backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/rdma/rdma_backend.c')
-rw-r--r--hw/rdma/rdma_backend.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c
index b7ffbef9c0..3dd39fe1a7 100644
--- a/hw/rdma/rdma_backend.c
+++ b/hw/rdma/rdma_backend.c
@@ -377,6 +377,7 @@ static void ah_cache_init(void)
destroy_ah_hash_key, destroy_ah_hast_data);
}
+#ifdef LEGACY_RDMA_REG_MR
static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res,
struct ibv_sge *sge, uint8_t num_sge,
uint64_t *total_length)
@@ -391,9 +392,7 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res,
return VENDOR_ERR_INVLKEY | sge[idx].lkey;
}
-#ifdef LEGACY_RDMA_REG_MR
sge[idx].addr = (uintptr_t)mr->virt + sge[idx].addr - mr->start;
-#endif
sge[idx].lkey = rdma_backend_mr_lkey(&mr->backend_mr);
*total_length += sge[idx].length;
@@ -401,6 +400,19 @@ static int build_host_sge_array(RdmaDeviceResources *rdma_dev_res,
return 0;
}
+#else
+static inline int build_host_sge_array(RdmaDeviceResources *rdma_dev_res,
+ struct ibv_sge *sge, uint8_t num_sge,
+ uint64_t *total_length)
+{
+ int idx;
+
+ for (idx = 0; idx < num_sge; idx++) {
+ *total_length += sge[idx].length;
+ }
+ return 0;
+}
+#endif
static void trace_mad_message(const char *title, char *buf, int len)
{
@@ -731,13 +743,8 @@ void rdma_backend_destroy_pd(RdmaBackendPD *pd)
}
}
-#ifdef LEGACY_RDMA_REG_MR
-int rdma_backend_create_mr(RdmaBackendMR *mr, RdmaBackendPD *pd, void *addr,
- size_t length, int access)
-#else
int rdma_backend_create_mr(RdmaBackendMR *mr, RdmaBackendPD *pd, void *addr,
size_t length, uint64_t guest_start, int access)
-#endif
{
#ifdef LEGACY_RDMA_REG_MR
mr->ibmr = ibv_reg_mr(pd->ibpd, addr, length, access);