Message ID | 1420613385-13679-4-git-send-email-tangchen@cn.fujitsu.com |
---|---|
State | New |
Headers | show |
On Wed, 7 Jan 2015 14:49:43 +0800 Tang Chen <tangchen@cn.fujitsu.com> wrote: > Memory and CPU hot unplug are both asynchronize procedures. s/asynchronize/asynchronous/ > When the unplug operation happens, unplug request cb is called first. > And when ghest OS finished handling unplug, unplug cb will be called s/ghest/guest/ > to do the real removal of device. > > This patch adds hotunplug cb for pc machine, and memory and CPU s/for/to/ s/and memory/which memory/ > hot unplug will base on it. s/base on it/use/ > --- > hw/i386/pc.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index 312f8cf..0f3b1e0 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -1717,6 +1717,13 @@ static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev, > " type: %s", object_get_typename(OBJECT(dev))); > } > > +static void pc_machine_device_unplug_cb(HotplugHandler *hotplug_dev, > + DeviceState *dev, Error **errp) > +{ > + error_setg(errp, "acpi: device unplug for not supported device" > + " type: %s", object_get_typename(OBJECT(dev))); > +} > + > static HotplugHandler *pc_get_hotpug_handler(MachineState *machine, > DeviceState *dev) > { > @@ -1847,6 +1854,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) > mc->get_hotplug_handler = pc_get_hotpug_handler; > hc->plug = pc_machine_device_plug_cb; > hc->unplug_request = pc_machine_device_unplug_request_cb; > + hc->unplug = pc_machine_device_unplug_cb; > } > > static const TypeInfo pc_machine_info = {
diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 312f8cf..0f3b1e0 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1717,6 +1717,13 @@ static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev, " type: %s", object_get_typename(OBJECT(dev))); } +static void pc_machine_device_unplug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + error_setg(errp, "acpi: device unplug for not supported device" + " type: %s", object_get_typename(OBJECT(dev))); +} + static HotplugHandler *pc_get_hotpug_handler(MachineState *machine, DeviceState *dev) { @@ -1847,6 +1854,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data) mc->get_hotplug_handler = pc_get_hotpug_handler; hc->plug = pc_machine_device_plug_cb; hc->unplug_request = pc_machine_device_unplug_request_cb; + hc->unplug = pc_machine_device_unplug_cb; } static const TypeInfo pc_machine_info = {