Index: sys/dev/nvme/nvme_ctrlr.c
===================================================================
--- sys/dev/nvme/nvme_ctrlr.c
+++ sys/dev/nvme/nvme_ctrlr.c
@@ -298,19 +298,17 @@
 	 * CSTS.RDY is 0 "has undefined results" So make sure that CSTS.RDY
 	 * isn't the desired value. Short circuit if we're already disabled.
 	 */
-	if (en == 1) {
-		if (rdy == 0) {
-			/* EN == 1, wait for  RDY == 1 or fail */
-			err = nvme_ctrlr_wait_for_ready(ctrlr, 1);
-			if (err != 0)
-				return (err);
-		}
-	} else {
+	if (en == 0) {
 		/* EN == 0 already wait for RDY == 0 */
 		if (rdy == 0)
 			return (0);
-		else
-			return (nvme_ctrlr_wait_for_ready(ctrlr, 0));
+		return (nvme_ctrlr_wait_for_ready(ctrlr, 0));
+	}
+	if (rdy == 0) {
+		/* EN == 1, wait for  RDY == 1 or fail */
+		err = nvme_ctrlr_wait_for_ready(ctrlr, 1);
+		if (err != 0)
+			return (err);
 	}
 
 	cc &= ~NVME_CC_REG_EN_MASK;
@@ -347,15 +345,14 @@
 	if (en == 1) {
 		if (rdy == 1)
 			return (0);
-		else
-			return (nvme_ctrlr_wait_for_ready(ctrlr, 1));
-	} else {
-		/* EN == 0 already wait for RDY == 0 or fail */
-		err = nvme_ctrlr_wait_for_ready(ctrlr, 0);
-		if (err != 0)
-			return (err);
+		return (nvme_ctrlr_wait_for_ready(ctrlr, 1));
 	}
 
+	/* EN == 0 already wait for RDY == 0 or fail */
+	err = nvme_ctrlr_wait_for_ready(ctrlr, 0);
+	if (err != 0)
+		return (err);
+
 	nvme_mmio_write_8(ctrlr, asq, ctrlr->adminq.cmd_bus_addr);
 	DELAY(5000);
 	nvme_mmio_write_8(ctrlr, acq, ctrlr->adminq.cpl_bus_addr);