svn commit: r347369 - head/sys/dev/nvme
Warner Losh
imp at FreeBSD.org
Wed May 8 20:18:12 UTC 2019
Author: imp
Date: Wed May 8 20:18:11 2019
New Revision: 347369
URL: https://svnweb.freebsd.org/changeset/base/347369
Log:
rename nvme_ctrlr_destroy_qpair to nvme_ctrlr_destroy_qpairs
Maintain symmetry with nvme_ctrlr_create_qpairs, making it easier to
match init/uninit scenarios.
Signed-off-by: John Meneghini <johnm at netapp.com>
Submitted by: Michael Hordijk <hordijk at netapp.com>
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D19781
Modified:
head/sys/dev/nvme/nvme_ctrlr.c
Modified: head/sys/dev/nvme/nvme_ctrlr.c
==============================================================================
--- head/sys/dev/nvme/nvme_ctrlr.c Wed May 8 20:01:09 2019 (r347368)
+++ head/sys/dev/nvme/nvme_ctrlr.c Wed May 8 20:18:11 2019 (r347369)
@@ -515,28 +515,33 @@ nvme_ctrlr_create_qpairs(struct nvme_controller *ctrlr
}
static int
-nvme_ctrlr_destroy_qpair(struct nvme_controller *ctrlr, struct nvme_qpair *qpair)
+nvme_ctrlr_destroy_qpairs(struct nvme_controller *ctrlr)
{
struct nvme_completion_poll_status status;
+ struct nvme_qpair *qpair;
- status.done = 0;
- nvme_ctrlr_cmd_delete_io_sq(ctrlr, qpair,
- nvme_completion_poll_cb, &status);
- while (!atomic_load_acq_int(&status.done))
- pause("nvme", 1);
- if (nvme_completion_is_error(&status.cpl)) {
- nvme_printf(ctrlr, "nvme_destroy_io_sq failed!\n");
- return (ENXIO);
- }
+ for (int i = 0; i < ctrlr->num_io_queues; i++) {
+ qpair = &ctrlr->ioq[i];
- status.done = 0;
- nvme_ctrlr_cmd_delete_io_cq(ctrlr, qpair,
- nvme_completion_poll_cb, &status);
- while (!atomic_load_acq_int(&status.done))
- pause("nvme", 1);
- if (nvme_completion_is_error(&status.cpl)) {
- nvme_printf(ctrlr, "nvme_destroy_io_cq failed!\n");
- return (ENXIO);
+ status.done = 0;
+ nvme_ctrlr_cmd_delete_io_sq(ctrlr, qpair,
+ nvme_completion_poll_cb, &status);
+ while (!atomic_load_acq_int(&status.done))
+ pause("nvme", 1);
+ if (nvme_completion_is_error(&status.cpl)) {
+ nvme_printf(ctrlr, "nvme_destroy_io_sq failed!\n");
+ return (ENXIO);
+ }
+
+ status.done = 0;
+ nvme_ctrlr_cmd_delete_io_cq(ctrlr, qpair,
+ nvme_completion_poll_cb, &status);
+ while (!atomic_load_acq_int(&status.done))
+ pause("nvme", 1);
+ if (nvme_completion_is_error(&status.cpl)) {
+ nvme_printf(ctrlr, "nvme_destroy_io_cq failed!\n");
+ return (ENXIO);
+ }
}
return (0);
@@ -1314,8 +1319,8 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, dev
if (ctrlr->cdev)
destroy_dev(ctrlr->cdev);
+ nvme_ctrlr_destroy_qpairs(ctrlr);
for (i = 0; i < ctrlr->num_io_queues; i++) {
- nvme_ctrlr_destroy_qpair(ctrlr, &ctrlr->ioq[i]);
nvme_io_qpair_destroy(&ctrlr->ioq[i]);
}
free(ctrlr->ioq, M_NVME);
More information about the svn-src-all
mailing list