From 0eb3125531c46eb4611ed701b770f9df6ce4c22a Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Wed, 14 Dec 2016 17:29:34 -0700 Subject: [PATCH] nvme: remove transport qpair_construct callback Make the qpair construct functions private to the transports - it doesn't need to be called from generic code. Change-Id: I5f730a4bcf60ce231fe27bc8f4c3c39cb647dd2d Signed-off-by: Daniel Verkamp --- lib/nvme/nvme_internal.h | 1 - lib/nvme/nvme_pcie.c | 25 ++++++++++++++----- lib/nvme/nvme_qpair.c | 5 ---- lib/nvme/nvme_rdma.c | 8 +++++- lib/nvme/nvme_transport.c | 6 ----- .../nvme/unit/nvme_qpair_c/nvme_qpair_ut.c | 6 ----- 6 files changed, 26 insertions(+), 25 deletions(-) diff --git a/lib/nvme/nvme_internal.h b/lib/nvme/nvme_internal.h index 1aa8917d0..a96ce700c 100644 --- a/lib/nvme/nvme_internal.h +++ b/lib/nvme/nvme_internal.h @@ -581,7 +581,6 @@ void nvme_qpair_print_completion(struct spdk_nvme_qpair *qpair, struct spdk_nvme struct spdk_nvme_qpair *nvme_ ## name ## _ctrlr_create_io_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid, enum spdk_nvme_qprio qprio); \ int nvme_ ## name ## _ctrlr_delete_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair *qpair); \ int nvme_ ## name ## _ctrlr_reinit_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair *qpair); \ - int nvme_ ## name ## _qpair_construct(struct spdk_nvme_qpair *qpair); \ int nvme_ ## name ## _qpair_enable(struct spdk_nvme_qpair *qpair); \ int nvme_ ## name ## _qpair_disable(struct spdk_nvme_qpair *qpair); \ int nvme_ ## name ## _qpair_reset(struct spdk_nvme_qpair *qpair); \ diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index 0c7b36480..80dbed54c 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -180,6 +180,7 @@ struct nvme_pcie_qpair { uint64_t cpl_bus_addr; }; +static int nvme_pcie_qpair_construct(struct spdk_nvme_qpair *qpair); static int nvme_pcie_qpair_destroy(struct spdk_nvme_qpair *qpair); __thread struct nvme_pcie_ctrlr *g_thread_mmio_ctrlr = NULL; @@ -513,6 +514,7 @@ static int nvme_pcie_ctrlr_construct_admin_qpair(struct spdk_nvme_ctrlr *ctrlr) { struct nvme_pcie_qpair *pqpair; + int rc; pqpair = spdk_zmalloc(sizeof(*pqpair), 64, NULL); if (pqpair == NULL) { @@ -521,11 +523,16 @@ nvme_pcie_ctrlr_construct_admin_qpair(struct spdk_nvme_ctrlr *ctrlr) ctrlr->adminq = &pqpair->qpair; - return nvme_qpair_construct(ctrlr->adminq, - 0, /* qpair ID */ - NVME_ADMIN_ENTRIES, - ctrlr, - SPDK_NVME_QPRIO_URGENT); + rc = nvme_qpair_construct(ctrlr->adminq, + 0, /* qpair ID */ + NVME_ADMIN_ENTRIES, + ctrlr, + SPDK_NVME_QPRIO_URGENT); + if (rc != 0) { + return rc; + } + + return nvme_pcie_qpair_construct(ctrlr->adminq); } /* This function must only be called while holding g_spdk_nvme_driver->lock */ @@ -745,7 +752,7 @@ nvme_pcie_qpair_reset(struct spdk_nvme_qpair *qpair) return 0; } -int +static int nvme_pcie_qpair_construct(struct spdk_nvme_qpair *qpair) { struct spdk_nvme_ctrlr *ctrlr = qpair->ctrlr; @@ -1344,6 +1351,12 @@ nvme_pcie_ctrlr_create_io_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid, return NULL; } + rc = nvme_pcie_qpair_construct(qpair); + if (rc != 0) { + nvme_pcie_qpair_destroy(qpair); + return NULL; + } + rc = _nvme_pcie_ctrlr_create_io_qpair(ctrlr, qpair, qid); if (rc != 0) { diff --git a/lib/nvme/nvme_qpair.c b/lib/nvme/nvme_qpair.c index 2e1a05ad5..befc7421f 100644 --- a/lib/nvme/nvme_qpair.c +++ b/lib/nvme/nvme_qpair.c @@ -356,11 +356,6 @@ nvme_qpair_construct(struct spdk_nvme_qpair *qpair, uint16_t id, STAILQ_INIT(&qpair->queued_req); - if (nvme_transport_qpair_construct(qpair)) { - SPDK_ERRLOG("qpair_construct() failed\n"); - return -1; - } - return 0; } diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index cb721cf40..330e4886f 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -130,6 +130,7 @@ struct spdk_nvme_rdma_req { STAILQ_ENTRY(spdk_nvme_rdma_req) link; }; +static int nvme_rdma_qpair_construct(struct spdk_nvme_qpair *qpair); static int nvme_rdma_qpair_destroy(struct spdk_nvme_qpair *qpair); static inline struct nvme_rdma_qpair * @@ -994,6 +995,11 @@ nvme_rdma_ctrlr_create_qpair(struct spdk_nvme_ctrlr *ctrlr, uint16_t qid, return NULL; } + rc = nvme_rdma_qpair_construct(qpair); + if (rc != 0) { + return NULL; + } + rc = _nvme_rdma_ctrlr_create_qpair(ctrlr, qpair); if (rc < 0) { nvme_rdma_qpair_destroy(qpair); @@ -1364,7 +1370,7 @@ nvme_rdma_ctrlr_reinit_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_ return _nvme_rdma_ctrlr_create_qpair(ctrlr, qpair); } -int +static int nvme_rdma_qpair_construct(struct spdk_nvme_qpair *qpair) { int32_t i; diff --git a/lib/nvme/nvme_transport.c b/lib/nvme/nvme_transport.c index e9572017b..a5a856cbf 100644 --- a/lib/nvme/nvme_transport.c +++ b/lib/nvme/nvme_transport.c @@ -178,12 +178,6 @@ nvme_transport_ctrlr_reinit_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_ NVME_TRANSPORT_CALL(ctrlr->trid.trtype, ctrlr_reinit_io_qpair, (ctrlr, qpair)); } -int -nvme_transport_qpair_construct(struct spdk_nvme_qpair *qpair) -{ - NVME_TRANSPORT_CALL(qpair->trtype, qpair_construct, (qpair)); -} - int nvme_transport_qpair_enable(struct spdk_nvme_qpair *qpair) { diff --git a/test/lib/nvme/unit/nvme_qpair_c/nvme_qpair_ut.c b/test/lib/nvme/unit/nvme_qpair_c/nvme_qpair_ut.c index 4623c1cb7..73af68490 100644 --- a/test/lib/nvme/unit/nvme_qpair_c/nvme_qpair_ut.c +++ b/test/lib/nvme/unit/nvme_qpair_c/nvme_qpair_ut.c @@ -183,12 +183,6 @@ nvme_request_remove_child(struct nvme_request *parent, TAILQ_REMOVE(&parent->children, child, child_tailq); } -int -nvme_transport_qpair_construct(struct spdk_nvme_qpair *qpair) -{ - return 0; -} - int nvme_transport_qpair_enable(struct spdk_nvme_qpair *qpair) {