test/nvme_ctrlr_cmd: initialize mutex
For correct behaviour, pthread_mutex must be initialized before use and destroyed afterwards. Add mutex initialization to DECLARE_AND_CONSTRUCT_CTRLR and add DECONSTRUCT_CTRLR to cleanup afterwards. Tested with a pthreads library that contains debugging code to check the mutex state. Signed-off-by: Nick Connolly <nick.connolly@mayadata.io> Change-Id: Id1d62e6f76548bd8e259d4d9c4d453a3218b0b1c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6159 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
b34fb47d8c
commit
05aaac9c14
@ -373,7 +373,11 @@ nvme_ctrlr_submit_admin_request(struct spdk_nvme_ctrlr *ctrlr, struct nvme_reque
|
||||
\
|
||||
STAILQ_INIT(&adminq.free_req); \
|
||||
STAILQ_INSERT_HEAD(&adminq.free_req, &req, stailq); \
|
||||
ctrlr.adminq = &adminq;
|
||||
ctrlr.adminq = &adminq; \
|
||||
CU_ASSERT(pthread_mutex_init(&ctrlr.ctrlr_lock, NULL) == 0);
|
||||
|
||||
#define DECONSTRUCT_CTRLR() \
|
||||
CU_ASSERT(pthread_mutex_destroy(&ctrlr.ctrlr_lock) == 0);
|
||||
|
||||
static void
|
||||
test_firmware_get_log_page(void)
|
||||
@ -386,6 +390,8 @@ test_firmware_get_log_page(void)
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_LOG_FIRMWARE_SLOT, SPDK_NVME_GLOBAL_NS_TAG,
|
||||
&payload,
|
||||
sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -399,6 +405,8 @@ test_health_get_log_page(void)
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_LOG_HEALTH_INFORMATION, health_log_nsid,
|
||||
&payload,
|
||||
sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -415,6 +423,8 @@ test_error_get_log_page(void)
|
||||
error_num_entries = 1;
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_LOG_ERROR, SPDK_NVME_GLOBAL_NS_TAG, &payload,
|
||||
sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_intel_smart_get_log_page(void)
|
||||
@ -426,6 +436,8 @@ static void test_intel_smart_get_log_page(void)
|
||||
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_INTEL_LOG_SMART, health_log_nsid, &payload,
|
||||
sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_intel_temperature_get_log_page(void)
|
||||
@ -437,6 +449,8 @@ static void test_intel_temperature_get_log_page(void)
|
||||
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_INTEL_LOG_TEMPERATURE, SPDK_NVME_GLOBAL_NS_TAG,
|
||||
&payload, sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_intel_read_latency_get_log_page(void)
|
||||
@ -449,6 +463,8 @@ static void test_intel_read_latency_get_log_page(void)
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_INTEL_LOG_READ_CMD_LATENCY,
|
||||
SPDK_NVME_GLOBAL_NS_TAG,
|
||||
&payload, sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_intel_write_latency_get_log_page(void)
|
||||
@ -461,6 +477,8 @@ static void test_intel_write_latency_get_log_page(void)
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_INTEL_LOG_WRITE_CMD_LATENCY,
|
||||
SPDK_NVME_GLOBAL_NS_TAG,
|
||||
&payload, sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_intel_get_log_page_directory(void)
|
||||
@ -473,6 +491,8 @@ static void test_intel_get_log_page_directory(void)
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_INTEL_LOG_PAGE_DIRECTORY,
|
||||
SPDK_NVME_GLOBAL_NS_TAG,
|
||||
&payload, sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_intel_marketing_description_get_log_page(void)
|
||||
@ -485,6 +505,8 @@ static void test_intel_marketing_description_get_log_page(void)
|
||||
spdk_nvme_ctrlr_cmd_get_log_page(&ctrlr, SPDK_NVME_INTEL_MARKETING_DESCRIPTION,
|
||||
SPDK_NVME_GLOBAL_NS_TAG,
|
||||
&payload, sizeof(payload), 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void test_generic_get_log_pages(void)
|
||||
@ -512,6 +534,8 @@ test_set_feature_cmd(void)
|
||||
verify_fn = verify_set_feature_cmd;
|
||||
|
||||
spdk_nvme_ctrlr_cmd_set_feature(&ctrlr, feature, feature_cdw11, feature_cdw12, NULL, 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -524,6 +548,8 @@ test_get_feature_ns_cmd(void)
|
||||
spdk_nvme_ctrlr_cmd_get_feature_ns(&ctrlr, expected_feature_cdw10,
|
||||
expected_feature_cdw11, NULL, 0,
|
||||
NULL, NULL, expected_feature_ns);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -536,6 +562,8 @@ test_set_feature_ns_cmd(void)
|
||||
spdk_nvme_ctrlr_cmd_set_feature_ns(&ctrlr, expected_feature_cdw10,
|
||||
expected_feature_cdw11, expected_feature_cdw12,
|
||||
NULL, 0, NULL, NULL, expected_feature_ns);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -546,6 +574,8 @@ test_get_feature_cmd(void)
|
||||
verify_fn = verify_get_feature_cmd;
|
||||
|
||||
spdk_nvme_ctrlr_cmd_get_feature(&ctrlr, get_feature, get_feature_cdw11, NULL, 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -560,6 +590,8 @@ test_abort_cmd(void)
|
||||
|
||||
qpair.id = abort_sqid;
|
||||
spdk_nvme_ctrlr_cmd_abort(&ctrlr, &qpair, abort_cid, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -572,6 +604,8 @@ test_io_cmd_raw_no_payload_build(void)
|
||||
verify_fn = verify_io_cmd_raw_no_payload_build;
|
||||
|
||||
spdk_nvme_ctrlr_io_cmd_raw_no_payload_build(&ctrlr, &qpair, &cmd, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -584,6 +618,8 @@ test_io_raw_cmd(void)
|
||||
verify_fn = verify_io_raw_cmd;
|
||||
|
||||
spdk_nvme_ctrlr_cmd_io_raw(&ctrlr, &qpair, &cmd, NULL, 1, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -596,6 +632,8 @@ test_io_raw_cmd_with_md(void)
|
||||
verify_fn = verify_io_raw_cmd_with_md;
|
||||
|
||||
spdk_nvme_ctrlr_cmd_io_raw_with_md(&ctrlr, &qpair, &cmd, NULL, 1, NULL, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static int
|
||||
@ -609,6 +647,7 @@ test_set_host_id_by_case(uint32_t host_id_size)
|
||||
|
||||
rc = nvme_ctrlr_cmd_set_host_id(&ctrlr, NULL, expected_host_id_size, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -641,6 +680,8 @@ test_namespace_attach(void)
|
||||
verify_fn = verify_namespace_attach;
|
||||
|
||||
nvme_ctrlr_cmd_attach_ns(&ctrlr, namespace_management_nsid, &payload, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -652,6 +693,8 @@ test_namespace_detach(void)
|
||||
verify_fn = verify_namespace_detach;
|
||||
|
||||
nvme_ctrlr_cmd_detach_ns(&ctrlr, namespace_management_nsid, &payload, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -662,6 +705,8 @@ test_namespace_create(void)
|
||||
|
||||
verify_fn = verify_namespace_create;
|
||||
nvme_ctrlr_cmd_create_ns(&ctrlr, &payload, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -671,6 +716,8 @@ test_namespace_delete(void)
|
||||
|
||||
verify_fn = verify_namespace_delete;
|
||||
nvme_ctrlr_cmd_delete_ns(&ctrlr, namespace_management_nsid, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -681,6 +728,8 @@ test_doorbell_buffer_config(void)
|
||||
verify_fn = verify_doorbell_buffer_config;
|
||||
|
||||
nvme_ctrlr_cmd_doorbell_buffer_config(&ctrlr, PRP_ENTRY_1, PRP_ENTRY_2, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -692,6 +741,8 @@ test_format_nvme(void)
|
||||
verify_fn = verify_format_nvme;
|
||||
|
||||
nvme_ctrlr_cmd_format(&ctrlr, format_nvme_nsid, &format, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -706,6 +757,8 @@ test_fw_commit(void)
|
||||
verify_fn = verify_fw_commit;
|
||||
|
||||
nvme_ctrlr_cmd_fw_commit(&ctrlr, &fw_commit, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -717,6 +770,8 @@ test_fw_image_download(void)
|
||||
|
||||
nvme_ctrlr_cmd_fw_image_download(&ctrlr, fw_img_size, fw_img_offset, NULL,
|
||||
NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -734,6 +789,7 @@ test_sanitize(void)
|
||||
|
||||
nvme_ctrlr_cmd_sanitize(&ctrlr, sanitize_nvme_nsid, &sanitize, 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -744,6 +800,8 @@ test_directive_receive(void)
|
||||
|
||||
spdk_nvme_ctrlr_cmd_directive_receive(&ctrlr, directive_nsid, 0, 0, 0, NULL, 0,
|
||||
0, 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
@ -754,6 +812,8 @@ test_directive_send(void)
|
||||
|
||||
spdk_nvme_ctrlr_cmd_directive_send(&ctrlr, directive_nsid, 0, 0, 0, NULL, 0,
|
||||
0, 0, NULL, NULL);
|
||||
|
||||
DECONSTRUCT_CTRLR();
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user