Memory and CPU hot unplug are both asynchronize procedures.
They both need unplug request cb when the unplug operation happens.

This patch adds hotunplug request cb for pc machine, and memory and CPU
hot unplug will base on it.

Signed-off-by: Tang Chen <tangc...@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 1205db8..5c48435 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1647,6 +1647,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)
 {
@@ -1753,6 +1760,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.8.4.2


Reply via email to