From 6a03451228db814f54b4653f2bb8bb0bc78184bb Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Thu, 2 Mar 2017 13:11:09 -0700 Subject: [PATCH] nvme/rdma: use spdk_malloc() for DMA data buffers These allocations need to be from memory registered with the SPDK env library to allow future work on automatic ibverbs memory registration. Change-Id: I6ec6999ecd6d6bf6ba4ab159630f7d01f3d46154 Signed-off-by: Daniel Verkamp --- lib/nvme/nvme_rdma.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 7e2dfe91b..7107f56fb 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -351,7 +351,7 @@ nvme_rdma_free_reqs(struct nvme_rdma_qpair *rqpair) } if (rdma_req->bb) { - free(rdma_req->bb); + spdk_free(rdma_req->bb); } } @@ -405,7 +405,7 @@ nvme_rdma_alloc_reqs(struct nvme_rdma_qpair *rqpair) rdma_req->send_sgl.length = sizeof(*cmd); rdma_req->send_sgl.lkey = rqpair->cmd_mr->lkey; - rdma_req->bb = calloc(1, NVME_RDMA_RW_BUFFER_SIZE); + rdma_req->bb = spdk_zmalloc(NVME_RDMA_RW_BUFFER_SIZE, 64, NULL); if (!rdma_req->bb) { SPDK_ERRLOG("Unable to register allocate read/write buffer\n"); goto fail; @@ -692,7 +692,8 @@ nvme_rdma_qpair_fabric_connect(struct nvme_rdma_qpair *rqpair) } rctrlr = nvme_rdma_ctrlr(ctrlr); - nvmf_data = calloc(1, sizeof(*nvmf_data)); + + nvmf_data = spdk_zmalloc(sizeof(*nvmf_data), 0, NULL); if (!nvmf_data) { SPDK_ERRLOG("nvmf_data allocation error\n"); rc = -1; @@ -741,7 +742,7 @@ nvme_rdma_qpair_fabric_connect(struct nvme_rdma_qpair *rqpair) rsp = (struct spdk_nvmf_fabric_connect_rsp *)&status.cpl; rctrlr->cntlid = rsp->status_code_specific.success.cntlid; ret: - free(nvmf_data); + spdk_free(nvmf_data); return rc; }