diff --git a/include/sysemu/numa.h b/include/sysemu/numa.h index eae881e453bef555b59ecf7b9b4f53fd250f875b..d25ada9119b8ff7ae9ef454aa4cc4bde75c971ea 100644 --- a/include/sysemu/numa.h +++ b/include/sysemu/numa.h @@ -20,6 +20,5 @@ void set_numa_nodes(void); void set_numa_modes(void); void query_numa_node_mem(uint64_t node_mem[]); extern QemuOptsList qemu_numa_opts; -int numa_init_func(QemuOpts *opts, void *opaque); #endif diff --git a/numa.c b/numa.c index 84d4cb5d134b38a136e4ac6b34f827827b1e6bcb..eb9259b66a4d8428887e96e0131a89c7194ab65f 100644 --- a/numa.c +++ b/numa.c @@ -36,6 +36,8 @@ #include "sysemu/hostmem.h" #include "qmp-commands.h" #include "hw/mem/pc-dimm.h" +#include "qemu/option.h" +#include "qemu/config-file.h" QemuOptsList qemu_numa_opts = { .name = "numa", @@ -121,7 +123,7 @@ static void numa_node_parse(NumaNodeOptions *node, QemuOpts *opts, Error **errp) max_numa_nodeid = MAX(max_numa_nodeid, nodenr + 1); } -int numa_init_func(QemuOpts *opts, void *opaque) +static int numa_init_func(QemuOpts *opts, void *opaque) { NumaOptions *object = NULL; Error *err = NULL; @@ -168,6 +170,11 @@ void set_numa_nodes(void) { int i; + if (qemu_opts_foreach(qemu_find_opts("numa"), numa_init_func, + NULL, 1) != 0) { + exit(1); + } + assert(max_numa_nodeid <= MAX_NODES); /* No support for sparse NUMA node IDs yet: */ diff --git a/vl.c b/vl.c index 52e9f2cacd0ea0d82d39a927496c4009c7e1deef..6db77242620d23b53908664251e3f7c1e179b762 100644 --- a/vl.c +++ b/vl.c @@ -4157,11 +4157,6 @@ int main(int argc, char **argv, char **envp) default_drive(default_floppy, snapshot, IF_FLOPPY, 0, FD_OPTS); default_drive(default_sdcard, snapshot, IF_SD, 0, SD_OPTS); - if (qemu_opts_foreach(qemu_find_opts("numa"), numa_init_func, - NULL, 1) != 0) { - exit(1); - } - set_numa_nodes(); if (qemu_opts_foreach(qemu_find_opts("mon"), mon_init_func, NULL, 1) != 0) {