From b3d884b700b3ff58b925d48b17c3b5ffbc87dfab Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Wed, 29 May 2019 05:19:26 -0700 Subject: [PATCH] nvme: assign qpair when req is allocated There's no need to set this every time we allocate a request. While here, fix a typo near where we needed to modify the unit test to remove the qpair assertion. Signed-off-by: Jim Harris Change-Id: I8af41a6c483415950f625d1ed2ef46088b75a622 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/456270 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- lib/nvme/nvme_internal.h | 1 - lib/nvme/nvme_qpair.c | 1 + test/unit/lib/nvme/nvme.c/nvme_ut.c | 3 +-- test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c | 1 + test/unit/lib/nvme/nvme_ns_ocssd_cmd.c/nvme_ns_ocssd_cmd_ut.c | 1 + 5 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/nvme/nvme_internal.h b/lib/nvme/nvme_internal.h index 2736fdbf8..12c1fc6af 100644 --- a/lib/nvme/nvme_internal.h +++ b/lib/nvme/nvme_internal.h @@ -886,7 +886,6 @@ nvme_allocate_request(struct spdk_nvme_qpair *qpair, req->cb_arg = cb_arg; req->payload = *payload; req->payload_size = payload_size; - req->qpair = qpair; req->pid = g_spdk_nvme_pid; req->submit_tick = 0; diff --git a/lib/nvme/nvme_qpair.c b/lib/nvme/nvme_qpair.c index d205c24ee..7e1194d11 100644 --- a/lib/nvme/nvme_qpair.c +++ b/lib/nvme/nvme_qpair.c @@ -497,6 +497,7 @@ nvme_qpair_init(struct spdk_nvme_qpair *qpair, uint16_t id, for (i = 0; i < num_requests; i++) { struct nvme_request *req = qpair->req_buf + i * req_size_padded; + req->qpair = qpair; STAILQ_INSERT_HEAD(&qpair->free_req, req, stailq); } diff --git a/test/unit/lib/nvme/nvme.c/nvme_ut.c b/test/unit/lib/nvme/nvme.c/nvme_ut.c index 76193087e..45a64c0c5 100644 --- a/test/unit/lib/nvme/nvme.c/nvme_ut.c +++ b/test/unit/lib/nvme/nvme.c/nvme_ut.c @@ -623,13 +623,12 @@ test_nvme_allocate_request(void) req = nvme_allocate_request(&qpair, &payload, payload_struct_size, cb_fn, cb_arg); - /* all the req elements should now match the passed in paramters */ + /* all the req elements should now match the passed in parameters */ SPDK_CU_ASSERT_FATAL(req != NULL); CU_ASSERT(req->cb_fn == cb_fn); CU_ASSERT(req->cb_arg == cb_arg); CU_ASSERT(memcmp(&req->payload, &payload, payload_struct_size) == 0); CU_ASSERT(req->payload_size == payload_struct_size); - CU_ASSERT(req->qpair == &qpair); CU_ASSERT(req->pid == getpid()); } diff --git a/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c b/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c index d9fefeb65..17a5f6128 100644 --- a/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c +++ b/test/unit/lib/nvme/nvme_ns_cmd.c/nvme_ns_cmd_ut.c @@ -212,6 +212,7 @@ prepare_for_test(struct spdk_nvme_ns *ns, struct spdk_nvme_ctrlr *ctrlr, for (i = 0; i < num_requests; i++) { struct nvme_request *req = qpair->req_buf + i * sizeof(struct nvme_request); + req->qpair = qpair; STAILQ_INSERT_HEAD(&qpair->free_req, req, stailq); } diff --git a/test/unit/lib/nvme/nvme_ns_ocssd_cmd.c/nvme_ns_ocssd_cmd_ut.c b/test/unit/lib/nvme/nvme_ns_ocssd_cmd.c/nvme_ns_ocssd_cmd_ut.c index 88f0f30b3..f621482ef 100644 --- a/test/unit/lib/nvme/nvme_ns_ocssd_cmd.c/nvme_ns_ocssd_cmd_ut.c +++ b/test/unit/lib/nvme/nvme_ns_ocssd_cmd.c/nvme_ns_ocssd_cmd_ut.c @@ -154,6 +154,7 @@ prepare_for_test(struct spdk_nvme_ns *ns, struct spdk_nvme_ctrlr *ctrlr, for (i = 0; i < num_requests; i++) { struct nvme_request *req = qpair->req_buf + i * sizeof(struct nvme_request); + req->qpair = qpair; STAILQ_INSERT_HEAD(&qpair->free_req, req, stailq); }