virnumamock: Allow CPU-less NUMA nodes

The original virNumaGetNodeCPUs() returns an empty virBitmap if
given NUMA node has no CPUs. But that's not how our mock behaves
- it looks under $fakesysfs/node/node$N/cpulist only to find an
empty file which is then passed to virBitmapParseUnlimited()
which threats such input as error.

Fortunately, we don't have any fake sysfs data where this path is
hit, but we might soon.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2021-05-17 12:40:00 +02:00
parent 9e63f35247
commit 32c887e4b7
1 changed files with 6 additions and 1 deletions

View File

@ -172,7 +172,12 @@ virNumaGetNodeCPUs(int node, virBitmap **cpus)
SYSFS_SYSTEM_PATH, node) < 0) SYSFS_SYSTEM_PATH, node) < 0)
return -1; return -1;
*cpus = virBitmapParseUnlimited(cpulist); if (STREQ(cpulist, "")) {
unsigned int max_n_cpus = virNumaGetMaxCPUs();
*cpus = virBitmapNew(max_n_cpus);
} else {
*cpus = virBitmapParseUnlimited(cpulist);
}
if (!*cpus) if (!*cpus)
goto cleanup; goto cleanup;