svn commit: r350922 - stable/12/sbin/nvmecontrol
Alexander Motin
mav at FreeBSD.org
Mon Aug 12 17:54:29 UTC 2019
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);
More information about the svn-src-stable-12
mailing list