nvme: add new member initialized for nvme_driver struct
Change-Id: I8db8225bff2f11998b58df7987bff3d53e206b4a Signed-off-by: GangCao <gang.cao@intel.com>
This commit is contained in:
parent
396c32c48f
commit
ac99f2fbc5
@ -38,6 +38,7 @@ struct nvme_driver _g_nvme_driver = {
|
|||||||
.init_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.init_ctrlrs),
|
.init_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.init_ctrlrs),
|
||||||
.attached_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.attached_ctrlrs),
|
.attached_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.attached_ctrlrs),
|
||||||
.request_mempool = NULL,
|
.request_mempool = NULL,
|
||||||
|
.initialized = false,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct nvme_driver *g_spdk_nvme_driver = &_g_nvme_driver;
|
struct nvme_driver *g_spdk_nvme_driver = &_g_nvme_driver;
|
||||||
@ -277,6 +278,12 @@ spdk_nvme_probe(void *cb_ctx, spdk_nvme_probe_cb probe_cb, spdk_nvme_attach_cb a
|
|||||||
struct nvme_enum_ctx enum_ctx;
|
struct nvme_enum_ctx enum_ctx;
|
||||||
struct spdk_nvme_ctrlr *ctrlr, *ctrlr_tmp;
|
struct spdk_nvme_ctrlr *ctrlr, *ctrlr_tmp;
|
||||||
|
|
||||||
|
if (!spdk_process_is_primary()) {
|
||||||
|
while (g_spdk_nvme_driver->initialized == false) {
|
||||||
|
usleep(200 * 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pthread_mutex_lock(&g_spdk_nvme_driver->lock);
|
pthread_mutex_lock(&g_spdk_nvme_driver->lock);
|
||||||
|
|
||||||
if (g_spdk_nvme_driver->request_mempool == NULL) {
|
if (g_spdk_nvme_driver->request_mempool == NULL) {
|
||||||
@ -349,6 +356,8 @@ spdk_nvme_probe(void *cb_ctx, spdk_nvme_probe_cb probe_cb, spdk_nvme_attach_cb a
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_spdk_nvme_driver->initialized = true;
|
||||||
|
|
||||||
pthread_mutex_unlock(&g_spdk_nvme_driver->lock);
|
pthread_mutex_unlock(&g_spdk_nvme_driver->lock);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -402,10 +402,11 @@ struct spdk_nvme_ctrlr {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct nvme_driver {
|
struct nvme_driver {
|
||||||
pthread_mutex_t lock;
|
pthread_mutex_t lock;
|
||||||
TAILQ_HEAD(, spdk_nvme_ctrlr) init_ctrlrs;
|
TAILQ_HEAD(, spdk_nvme_ctrlr) init_ctrlrs;
|
||||||
TAILQ_HEAD(, spdk_nvme_ctrlr) attached_ctrlrs;
|
TAILQ_HEAD(, spdk_nvme_ctrlr) attached_ctrlrs;
|
||||||
struct spdk_mempool *request_mempool;
|
struct spdk_mempool *request_mempool;
|
||||||
|
bool initialized;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct nvme_driver *g_spdk_nvme_driver;
|
extern struct nvme_driver *g_spdk_nvme_driver;
|
||||||
|
Loading…
Reference in New Issue
Block a user