spdk/0026-lib-nvme-add-mutex-before-submit-admin-request.patch
Zhanghongtao2417 db32dc6314 lib/nvme: add mutex before submit admin request
Signed-off-by: Zht-Try <zhanghongtao22@huawei.com>
(cherry picked from commit 6d19ce443baa7dfe9775a62be6403b84b7207750)
2024-05-06 09:40:07 +08:00

58 lines
1.8 KiB
Diff

From 4224fc348bc320803ee7af2d091353cfb0f5981b Mon Sep 17 00:00:00 2001
From: Marcin Spiewak <marcin.spiewak@intel.com>
Date: Wed, 20 Mar 2024 16:59:06 +0100
Subject: [PATCH] lib/nvme: add mutex before submit admin request
Conflict:NA
Reference:https://github.com/spdk/spdk/commit/4224fc348bc320803ee7af2d091353cfb0f5981b
In nvme_ctrlr_cmd_identify(), the call to
nvme_ctrlr_submit_admin_request() shall be
preceeded by taking ctrlr->ctrlr_lock mutex,
like in other places in the code.
Change-Id: Ibd4ef2aa02d906dac853e537df9a837974b6c358
Signed-off-by: Marcin Spiewak <marcin.spiewak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22419
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
---
lib/nvme/nvme_ctrlr_cmd.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/nvme/nvme_ctrlr_cmd.c b/lib/nvme/nvme_ctrlr_cmd.c
index bcc92b29c..2f00ef83c 100644
--- a/lib/nvme/nvme_ctrlr_cmd.c
+++ b/lib/nvme/nvme_ctrlr_cmd.c
@@ -152,11 +152,14 @@ nvme_ctrlr_cmd_identify(struct spdk_nvme_ctrlr *ctrlr, uint8_t cns, uint16_t cnt
{
struct nvme_request *req;
struct spdk_nvme_cmd *cmd;
+ int rc;
+ nvme_robust_mutex_lock(&ctrlr->ctrlr_lock);
req = nvme_allocate_request_user_copy(ctrlr->adminq,
payload, payload_size,
cb_fn, cb_arg, false);
if (req == NULL) {
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
return -ENOMEM;
}
@@ -167,7 +170,10 @@ nvme_ctrlr_cmd_identify(struct spdk_nvme_ctrlr *ctrlr, uint8_t cns, uint16_t cnt
cmd->cdw11_bits.identify.csi = csi;
cmd->nsid = nsid;
- return nvme_ctrlr_submit_admin_request(ctrlr, req);
+ rc = nvme_ctrlr_submit_admin_request(ctrlr, req);
+
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
+ return rc;
}
int
--
2.27.0