diff --git a/lib/nvme/nvme_pcie_common.c b/lib/nvme/nvme_pcie_common.c index 4b73c4252..8bca0503e 100644 --- a/lib/nvme/nvme_pcie_common.c +++ b/lib/nvme/nvme_pcie_common.c @@ -1097,7 +1097,8 @@ nvme_pcie_ctrlr_delete_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_ /* If attempting to delete a qpair that's still being connected, we have to wait until it's * finished, so that we don't free it while it's waiting for the create cq/sq callbacks. */ - while (nvme_qpair_get_state(qpair) == NVME_QPAIR_CONNECTING) { + while (pqpair->pcie_state == NVME_PCIE_QPAIR_WAIT_FOR_CQ || + pqpair->pcie_state == NVME_PCIE_QPAIR_WAIT_FOR_SQ) { rc = spdk_nvme_qpair_process_completions(ctrlr->adminq, 0); if (rc < 0) { break;