nvme: move adminq creation to transport

Change-Id: Ieea86c9fdd7b4bc541eed2762e885368871ee4b5
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Daniel Verkamp 2016-10-19 13:29:16 -07:00
parent ff3869789a
commit e862c5a621
2 changed files with 25 additions and 25 deletions

View File

@ -286,20 +286,6 @@ nvme_ctrlr_set_supported_features(struct spdk_nvme_ctrlr *ctrlr)
}
}
static int
nvme_ctrlr_construct_admin_qpair(struct spdk_nvme_ctrlr *ctrlr)
{
ctrlr->adminq = spdk_zmalloc(sizeof(struct spdk_nvme_qpair), 64, NULL);
if (ctrlr->adminq == NULL) {
return -ENOMEM;
}
return nvme_qpair_construct(ctrlr->adminq,
0, /* qpair ID */
NVME_ADMIN_ENTRIES,
ctrlr);
}
static void
nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr)
{
@ -903,18 +889,12 @@ nvme_mutex_init_recursive_shared(pthread_mutex_t *mtx)
int
nvme_ctrlr_construct(struct spdk_nvme_ctrlr *ctrlr)
{
int rc;
nvme_ctrlr_set_state(ctrlr, NVME_CTRLR_STATE_INIT, NVME_TIMEOUT_INFINITE);
ctrlr->flags = 0;
ctrlr->free_io_qids = NULL;
ctrlr->min_page_size = 1 << (12 + ctrlr->cap.bits.mpsmin);
rc = nvme_ctrlr_construct_admin_qpair(ctrlr);
if (rc)
return rc;
ctrlr->is_resetting = false;
ctrlr->is_failed = false;
@ -941,11 +921,6 @@ nvme_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr)
spdk_bit_array_free(&ctrlr->free_io_qids);
if (ctrlr->adminq) {
nvme_qpair_destroy(ctrlr->adminq);
spdk_free(ctrlr->adminq);
}
pthread_mutex_destroy(&ctrlr->ctrlr_lock);
ctrlr->transport->ctrlr_destruct(ctrlr);

View File

@ -299,6 +299,20 @@ nvme_pcie_ctrlr_free_bars(struct nvme_pcie_ctrlr *pctrlr)
return rc;
}
static int
nvme_pcie_ctrlr_construct_admin_qpair(struct spdk_nvme_ctrlr *ctrlr)
{
ctrlr->adminq = spdk_zmalloc(sizeof(struct spdk_nvme_qpair), 64, NULL);
if (ctrlr->adminq == NULL) {
return -ENOMEM;
}
return nvme_qpair_construct(ctrlr->adminq,
0, /* qpair ID */
NVME_ADMIN_ENTRIES,
ctrlr);
}
static struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(void *devhandle)
{
struct spdk_pci_device *pci_dev = devhandle;
@ -351,6 +365,12 @@ static struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(void *devhandle)
return NULL;
}
rc = nvme_pcie_ctrlr_construct_admin_qpair(&pctrlr->ctrlr);
if (rc != 0) {
nvme_ctrlr_destruct(&pctrlr->ctrlr);
return NULL;
}
return &pctrlr->ctrlr;
}
@ -388,6 +408,11 @@ nvme_pcie_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr)
{
struct nvme_pcie_ctrlr *pctrlr = nvme_pcie_ctrlr(ctrlr);
if (ctrlr->adminq) {
nvme_qpair_destroy(ctrlr->adminq);
spdk_free(ctrlr->adminq);
}
nvme_pcie_ctrlr_free_bars(pctrlr);
spdk_free(pctrlr);
}