On Wed, Apr 24, 2013 at 07:31:44PM +0200, Andreas Färber wrote: > > +static void do_cpu_hot_add(const int64_t id, Error **errp) > > +{ > > + int64_t apic_id = x86_cpu_apic_id_from_index(id); > > + > > + if (cpu_exists(apic_id)) { > > + error_setg(errp, "Unable to add CPU: %" PRIi64 > > + ", it already exists", id); > > + return; > > + } > > + > > + if (id >= max_cpus) { > > + error_setg(errp, "Unable to add CPU: %" PRIi64 > > + ", max allowed: %d", id, max_cpus - 1); > > Why -1?
max_cpus-1 makes sense to me, as the message is about "maximum ID allowed", not "maximum number of CPUs". > > > + return; > > + } > > + > > + pc_new_cpu(machine_args->cpu_model, apic_id, errp); > > +} > > + > > void pc_cpus_init(const char *cpu_model) > > { > > int i; > > @@ -928,7 +948,9 @@ void pc_cpus_init(const char *cpu_model) > > #else > > cpu_model = "qemu32"; > > #endif > > + machine_args->cpu_model = cpu_model; > > This could be avoided by changing argument to const char **. :) > Caller will have access to QEMUMachineArgs*. I would prefer to simply pass a pointer to QEMUMachineArgs to pc_cpus_init(), instead of const char **. -- Eduardo