Commit ac99f2fb authored by GangCao's avatar GangCao Committed by Jim Harris
Browse files

nvme: add new member initialized for nvme_driver struct



Change-Id: I8db8225bff2f11998b58df7987bff3d53e206b4a
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
parent 396c32c4
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ struct nvme_driver _g_nvme_driver = {
	.init_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.init_ctrlrs),
	.attached_ctrlrs = TAILQ_HEAD_INITIALIZER(_g_nvme_driver.attached_ctrlrs),
	.request_mempool = NULL,
	.initialized = false,
};

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 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);

	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);
	return rc;
}
+3 −2
Original line number Diff line number Diff line
@@ -406,6 +406,7 @@ struct nvme_driver {
	TAILQ_HEAD(, spdk_nvme_ctrlr)	init_ctrlrs;
	TAILQ_HEAD(, spdk_nvme_ctrlr)	attached_ctrlrs;
	struct spdk_mempool		*request_mempool;
	bool				initialized;
};

extern struct nvme_driver *g_spdk_nvme_driver;