From a82e8478eac67da8f2111fc420523e002b5e157a Mon Sep 17 00:00:00 2001 From: Vasuki Manikarnike Date: Thu, 1 Jul 2021 22:33:27 +0000 Subject: [PATCH] lib/nvme: Do not retry aborts if ctrlr is failed. Fixes #2022 If queued aborts are present when trying to fail a ctrlr using spdk_nvme_ctrlr_fail(), then the abort command completion will attempt to retry one of the queued aborts. This eventually leads to a segfault that can be avoided by not retrying any queued aborts. Change-Id: I897dcb8809e16af8bdd39d4381ab531e1cc29822 Signed-off-by: Vasuki Manikarnike Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8585 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Reviewed-by: Ziye Yang Reviewed-by: Ben Walker Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- lib/nvme/nvme_ctrlr_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/nvme/nvme_ctrlr_cmd.c b/lib/nvme/nvme_ctrlr_cmd.c index 3d54ba363..85f3109c8 100644 --- a/lib/nvme/nvme_ctrlr_cmd.c +++ b/lib/nvme/nvme_ctrlr_cmd.c @@ -572,7 +572,7 @@ nvme_ctrlr_retry_queued_abort(struct spdk_nvme_ctrlr *ctrlr) struct nvme_request *next, *tmp; int rc; - if (ctrlr->is_resetting || ctrlr->is_destructed) { + if (ctrlr->is_resetting || ctrlr->is_destructed || ctrlr->is_failed) { return; }