diff --git a/lib/nvme/nvme_ctrlr_cmd.c b/lib/nvme/nvme_ctrlr_cmd.c index ebd4bc85b..e17937cd7 100644 --- a/lib/nvme/nvme_ctrlr_cmd.c +++ b/lib/nvme/nvme_ctrlr_cmd.c @@ -628,7 +628,8 @@ spdk_nvme_ctrlr_cmd_abort(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair cmd->cdw10_bits.abort.sqid = sqid; cmd->cdw10_bits.abort.cid = cid; - if (ctrlr->outstanding_aborts >= ctrlr->cdata.acl) { + /* ACL is a 0's based value. */ + if (ctrlr->outstanding_aborts >= ctrlr->cdata.acl + 1U) { STAILQ_INSERT_TAIL(&ctrlr->queued_aborts, req, stailq); rc = 0; } else { diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index c0ea8a32d..215989508 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -1872,6 +1872,8 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c cdata->cmic.multi_host = 1; cdata->oaes.ns_attribute_notices = 1; cdata->ctratt.host_id_exhid_supported = 1; + /* TODO: Concurrent execution of multiple abort commands. */ + cdata->acl = 0; cdata->aerl = 0; cdata->frmw.slot1_ro = 1; cdata->frmw.num_slots = 1;