On Wed, Jan 28, 2015 at 03:45:37PM +0800, Zhu Guihua wrote: > From: Tang Chen <tangc...@cn.fujitsu.com> > > Memory and CPU hot unplug are both asynchronous procedures. > They both need unplug request callback to initiate unplug operation. > > Add unplug handler to pc machine that will be used by following > CPU and memory unplug patches. > > Reviewed-by: Igor Mammedov <imamm...@redhat.com> > Signed-off-by: Tang Chen <tangc...@cn.fujitsu.com> > Signed-off-by: Zhu Guihua <zhugh.f...@cn.fujitsu.com> > --- > hw/i386/pc.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index c7af6aa..15ee10a 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -1680,6 +1680,13 @@ static void pc_machine_device_plug_cb(HotplugHandler > *hotplug_dev, > } > } > > +static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev, > + DeviceState *dev, Error > **errp) > +{ > + error_setg(errp, "acpi: device unplug request for not supported device" > + " type: %s", object_get_typename(OBJECT(dev))); > +} > + > static HotplugHandler *pc_get_hotpug_handler(MachineState *machine, > DeviceState *dev) > {
So this is just a stub, your follow-up patches replace it with something more useful? Why do we need the stub stage though? Why not just add whatever's going to be there eventually? > @@ -1809,6 +1816,7 @@ static void pc_machine_class_init(ObjectClass *oc, void > *data) > pcmc->get_hotplug_handler = mc->get_hotplug_handler; > mc->get_hotplug_handler = pc_get_hotpug_handler; > hc->plug = pc_machine_device_plug_cb; > + hc->unplug_request = pc_machine_device_unplug_request_cb; > } > > static const TypeInfo pc_machine_info = { > -- > 1.9.3