Commit a3a51453 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

nvme_rdma: Pass pd instead of cm_id to nvme_rdma_reg_mr()



The following patches will create and use ibv_context and pd
explicitly instead of using default ibv_context and pd created
by rdmacm.

As a preparation, pass pd instead of cm_id to nvme_rdma_reg_mr().

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Signed-off-by: default avatarDenis Nagorny <denisn@nvidia.com>
Signed-off-by: default avatarEvgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: Ifdcd18ed363b8ba4a23a920bf3559237e38821c6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13599


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 89c1e5bf
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -901,17 +901,17 @@ nvme_rdma_post_recv(struct nvme_rdma_qpair *rqpair, uint16_t rsp_idx)
}

static int
nvme_rdma_reg_mr(struct rdma_cm_id *cm_id, union nvme_rdma_mr *mr, void *mem, size_t length)
nvme_rdma_reg_mr(struct ibv_pd *pd, union nvme_rdma_mr *mr, void *mem, size_t length)
{
	if (!g_nvme_hooks.get_rkey) {
		mr->mr = rdma_reg_msgs(cm_id, mem, length);
		mr->mr = ibv_reg_mr(pd, mem, length, IBV_ACCESS_LOCAL_WRITE);
		if (mr->mr == NULL) {
			SPDK_ERRLOG("Unable to register mr: %s (%d)\n",
				    spdk_strerror(errno), errno);
			return -1;
		}
	} else {
		mr->key = g_nvme_hooks.get_rkey(cm_id->pd, mem, length);
		mr->key = g_nvme_hooks.get_rkey(pd, mem, length);
	}

	return 0;
@@ -1000,7 +1000,7 @@ nvme_rdma_register_rsps(struct nvme_rdma_qpair *rqpair)
	int rc;
	uint32_t lkey;

	rc = nvme_rdma_reg_mr(rqpair->cm_id, &rqpair->rsp_mr,
	rc = nvme_rdma_reg_mr(rqpair->cm_id->pd, &rqpair->rsp_mr,
			      rqpair->rsps, rqpair->num_entries * sizeof(*rqpair->rsps));

	if (rc < 0) {
@@ -1121,7 +1121,7 @@ nvme_rdma_register_reqs(struct nvme_rdma_qpair *rqpair)
	int rc;
	uint32_t lkey;

	rc = nvme_rdma_reg_mr(rqpair->cm_id, &rqpair->cmd_mr,
	rc = nvme_rdma_reg_mr(rqpair->cm_id->pd, &rqpair->cmd_mr,
			      rqpair->cmds, rqpair->num_entries * sizeof(*rqpair->cmds));

	if (rc < 0) {