On Mon, Jul 18, 2016 at 10:31:22AM +0200, Igor Mammedov wrote: > Boot CPU is assumed to always present in QEMU code, so > untile that assumptions are gone, deny removal request, > In another words QEMU won't support BSP hot-unplug. > > Signed-off-by: Igor Mammedov <imamm...@redhat.com>
Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> > --- > v5: > - s/1st CPU (BSP)/Boot CPU/ > Eduardo Habkost <ehabk...@redhat.com> > - intialize idx to -1 and assert on it, > Eduardo Habkost <ehabk...@redhat.com> > (note: that should nexer happen in current code as we don't > have stray CPUs and most likely never will, but it doesn't > hurt to cautios) > --- > hw/i386/pc.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index 110f1bf..e15fcc1 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -1757,10 +1757,18 @@ out: > static void pc_cpu_unplug_request_cb(HotplugHandler *hotplug_dev, > DeviceState *dev, Error **errp) > { > + int idx = -1; > HotplugHandlerClass *hhc; > Error *local_err = NULL; > PCMachineState *pcms = PC_MACHINE(hotplug_dev); > > + pc_find_cpu_slot(pcms, CPU(dev), &idx); > + assert(idx != -1); > + if (idx == 0) { > + error_setg(&local_err, "Boot CPU is unpluggable"); > + goto out; > + } > + > hhc = HOTPLUG_HANDLER_GET_CLASS(pcms->acpi_dev); > hhc->unplug_request(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &local_err); > > -- > 2.7.4 > -- Eduardo