On Wed, Jan 28, 2015 at 04:33:02PM +0800, Zhu Guihua wrote: > On Wed, 2015-01-28 at 10:02 +0200, Michael S. Tsirkin wrote: > > 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? > > > > This function will be used in memory hot-unplug > [RESEND PATCH v1 07/13] pc-dimm: Add memory hot unplug request support > for pc-dimm. > https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg00592.html > > and cpu hot-unplug > [PATCH v2 05/11] pc: add cpu hot unplug request callback support > https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01562.html > > Regards, > Zhu
OK, so the point is to make it easier to resolve conflicts between the two series? > > > > > @@ -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 >