]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lscpu: fix NUMAs reading code
authorKarel Zak <kzak@redhat.com>
Thu, 3 Sep 2020 11:00:11 +0000 (13:00 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 13 Nov 2020 08:19:02 +0000 (09:19 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/lscpu-cputype.c

index 5b5cfca05c74f532886a48d57c2ee6673b73ffad..c1333d042f01d88fe5e33e9610fcaa46a44ced0f 100644 (file)
@@ -649,6 +649,8 @@ int lscpu_read_archext(struct lscpu_cxt *cxt)
        char buf[BUFSIZ];
        struct lscpu_cputype *ct;
 
+       DBG(GATHER, ul_debugobj(cxt, "reading extra arch info"));
+
        assert(cxt);
        ct = lscpu_cputype_get_default(cxt);
        if (!ct)
@@ -715,6 +717,8 @@ int lscpu_read_vulnerabilities(struct lscpu_cxt *cxt)
 
        assert(cxt);
 
+       DBG(GATHER, ul_debugobj(cxt, "reading vulnerabilities"));
+
        dir = ul_path_opendir(cxt->syscpu, "vulnerabilities");
        if (!dir)
                return 0;
@@ -789,6 +793,7 @@ int lscpu_read_numas(struct lscpu_cxt *cxt)
 
        assert(!cxt->nnodes);
 
+
        sys = ul_new_path(_PATH_SYS_NODE);
        if (!sys)
                err(EXIT_FAILURE, _("failed to initialize %s handler"), _PATH_SYS_NODE);
@@ -813,9 +818,9 @@ int lscpu_read_numas(struct lscpu_cxt *cxt)
        cxt->idx2nodenum = xmalloc(cxt->nnodes * sizeof(int));
 
        rewinddir(dir);
-       for (i = 0; (d = readdir(dir)) && i < cxt->nnodes; i++) {
+       for (i = 0; (d = readdir(dir)) && i < cxt->nnodes;) {
                if (is_node_dirent(d))
-                       cxt->idx2nodenum[i] = strtol_or_err(((d->d_name) + 4),
+                       cxt->idx2nodenum[i++] = strtol_or_err(((d->d_name) + 4),
                                                _("Failed to extract the node number"));
        }
        closedir(dir);
@@ -826,6 +831,8 @@ int lscpu_read_numas(struct lscpu_cxt *cxt)
                ul_path_readf_cpuset(sys, &cxt->nodemaps[i], cxt->maxcpus,
                                "node%d/cpumap", cxt->idx2nodenum[i]);
 done:
+       DBG(GATHER, ul_debugobj(cxt, "read %zu numas", cxt->nnodes));
+
        ul_unref_path(sys);
        return 0;
 }