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