summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2015-01-28 15:45:39 +0800
committerMichael S. Tsirkin <mst@redhat.com>2015-02-26 12:42:18 +0100
commit232391c19ec69e6781667c53cb3c3bc57932bb95 (patch)
tree330ec23c6b4f26a6a868f7787292bd8d8cc89b3f /hw
parent469b8ad283d748648960e2260a4a3c415b1b3956 (diff)
downloadqemu-232391c19ec69e6781667c53cb3c3bc57932bb95.tar.gz
qemu-232391c19ec69e6781667c53cb3c3bc57932bb95.tar.bz2
qemu-232391c19ec69e6781667c53cb3c3bc57932bb95.zip
acpi, pc: Add unplug cb for pc machine.
Memory and CPU hot unplug are both asynchronous procedures. When the unplug operation happens, unplug request cb is called first. And when guest OS finished handling unplug, unplug cb will be called to do the real removal of device. This patch adds hotunplug cb to pc machine, which memory and CPU hot unplug will use it. Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com> Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/i386/pc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ba0b04e963..60d4e02847 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1686,6 +1686,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)
{
@@ -1816,6 +1823,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 = {