Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Aug 2019 17:54:28 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r350922 - stable/12/sbin/nvmecontrol
Message-ID:  <201908121754.x7CHsSYe028460@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Mon Aug 12 17:54:28 2019
New Revision: 350922
URL: https://svnweb.freebsd.org/changeset/base/350922

Log:
  MFC r342358 (by imp): Try the first 256 units with nvmecontrol devlist.
  
  The nvmecontrol code that did the devlist assumed that we had a
  tightly-packed allocation of units. Since pci writing exists, this
  isn't the case. Loop over the first 256 units, which is a reasonable
  number of possible units.

Modified:
  stable/12/sbin/nvmecontrol/devlist.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sbin/nvmecontrol/devlist.c
==============================================================================
--- stable/12/sbin/nvmecontrol/devlist.c	Mon Aug 12 17:53:23 2019	(r350921)
+++ stable/12/sbin/nvmecontrol/devlist.c	Mon Aug 12 17:54:28 2019	(r350922)
@@ -46,6 +46,8 @@ __FBSDID("$FreeBSD$");
 #define DEVLIST_USAGE							       \
 	"devlist\n"
 
+#define NVME_MAX_UNIT 256
+
 static inline uint32_t
 ns_get_sector_size(struct nvme_namespace_data *nsdata)
 {
@@ -79,19 +81,17 @@ devlist(const struct nvme_function *nf, int argc, char
 	ctrlr = -1;
 	found = 0;
 
-	while (1) {
+	while (ctrlr < NVME_MAX_UNIT) {
 		ctrlr++;
 		sprintf(name, "%s%d", NVME_CTRLR_PREFIX, ctrlr);
 
 		ret = open_dev(name, &fd, 0, 0);
 
-		if (ret != 0) {
-			if (ret == EACCES) {
-				warnx("could not open "_PATH_DEV"%s\n", name);
-				continue;
-			} else
-				break;
-		}
+		if (ret == EACCES) {
+			warnx("could not open "_PATH_DEV"%s\n", name);
+			continue;
+		} else if (ret != 0)
+			continue;
 
 		found++;
 		read_controller_data(fd, &cdata);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908121754.x7CHsSYe028460>