From: Andrew Jones <drjo...@redhat.com> We should confirm max_cpus, which is >= smp_cpus, is <= the machine's true max_cpus, not just smp_cpus.
Signed-off-by: Andrew Jones <drjo...@redhat.com> Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- vl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vl.c b/vl.c index 56a17dd..95451b6 100644 --- a/vl.c +++ b/vl.c @@ -3850,9 +3850,9 @@ int main(int argc, char **argv, char **envp) smp_parse(qemu_opts_find(qemu_find_opts("smp-opts"), NULL)); machine_class->max_cpus = machine_class->max_cpus ?: 1; /* Default to UP */ - if (smp_cpus > machine_class->max_cpus) { + if (max_cpus > machine_class->max_cpus) { fprintf(stderr, "Number of SMP cpus requested (%d), exceeds max cpus " - "supported by machine `%s' (%d)\n", smp_cpus, + "supported by machine `%s' (%d)\n", max_cpus, machine_class->name, machine_class->max_cpus); exit(1); } -- 1.8.3.1