nvme: move adminq creation to transport
Change-Id: Ieea86c9fdd7b4bc541eed2762e885368871ee4b5 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
parent
ff3869789a
commit
e862c5a621
@ -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
|
static void
|
||||||
nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr)
|
nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
{
|
{
|
||||||
@ -903,18 +889,12 @@ nvme_mutex_init_recursive_shared(pthread_mutex_t *mtx)
|
|||||||
int
|
int
|
||||||
nvme_ctrlr_construct(struct spdk_nvme_ctrlr *ctrlr)
|
nvme_ctrlr_construct(struct spdk_nvme_ctrlr *ctrlr)
|
||||||
{
|
{
|
||||||
int rc;
|
|
||||||
|
|
||||||
nvme_ctrlr_set_state(ctrlr, NVME_CTRLR_STATE_INIT, NVME_TIMEOUT_INFINITE);
|
nvme_ctrlr_set_state(ctrlr, NVME_CTRLR_STATE_INIT, NVME_TIMEOUT_INFINITE);
|
||||||
ctrlr->flags = 0;
|
ctrlr->flags = 0;
|
||||||
ctrlr->free_io_qids = NULL;
|
ctrlr->free_io_qids = NULL;
|
||||||
|
|
||||||
ctrlr->min_page_size = 1 << (12 + ctrlr->cap.bits.mpsmin);
|
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_resetting = false;
|
||||||
ctrlr->is_failed = 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);
|
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);
|
pthread_mutex_destroy(&ctrlr->ctrlr_lock);
|
||||||
|
|
||||||
ctrlr->transport->ctrlr_destruct(ctrlr);
|
ctrlr->transport->ctrlr_destruct(ctrlr);
|
||||||
|
@ -299,6 +299,20 @@ nvme_pcie_ctrlr_free_bars(struct nvme_pcie_ctrlr *pctrlr)
|
|||||||
return rc;
|
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)
|
static struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(void *devhandle)
|
||||||
{
|
{
|
||||||
struct spdk_pci_device *pci_dev = 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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rc = nvme_pcie_ctrlr_construct_admin_qpair(&pctrlr->ctrlr);
|
||||||
|
if (rc != 0) {
|
||||||
|
nvme_ctrlr_destruct(&pctrlr->ctrlr);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return &pctrlr->ctrlr;
|
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);
|
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);
|
nvme_pcie_ctrlr_free_bars(pctrlr);
|
||||||
spdk_free(pctrlr);
|
spdk_free(pctrlr);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user