diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c index 6d6e16e718e..fc689ee4e85 100644 --- a/sys/dev/nvme/nvme_ctrlr.c +++ b/sys/dev/nvme/nvme_ctrlr.c @@ -466,8 +466,8 @@ nvme_ctrlr_set_num_qpairs(struct nvme_controller *ctrlr) * Lower 16-bits indicate number of submission queues allocated. * Upper 16-bits indicate number of completion queues allocated. */ - sq_allocated = (status.cpl.cdw0 & 0xFFFF) + 1; - cq_allocated = (status.cpl.cdw0 >> 16) + 1; + sq_allocated = (status.cpl.cdw0 & 0xFFFF); + cq_allocated = (status.cpl.cdw0 >> 16); /* * Controller may allocate more queues than we requested, diff --git a/sys/dev/nvme/nvme_ctrlr_cmd.c b/sys/dev/nvme/nvme_ctrlr_cmd.c index 972b40993b9..17f694f8dba 100644 --- a/sys/dev/nvme/nvme_ctrlr_cmd.c +++ b/sys/dev/nvme/nvme_ctrlr_cmd.c @@ -207,7 +207,7 @@ nvme_ctrlr_cmd_set_num_queues(struct nvme_controller *ctrlr, { uint32_t cdw11; - cdw11 = ((num_queues - 1) << 16) | (num_queues - 1); + cdw11 = (num_queues << 16) | num_queues; nvme_ctrlr_cmd_set_feature(ctrlr, NVME_FEAT_NUMBER_OF_QUEUES, cdw11, NULL, 0, cb_fn, cb_arg); }