diff mbox

[RESEND,v1,3/5] acpi, pc: Add unplug cb for pc machine.

Message ID 1420613385-13679-4-git-send-email-tangchen@cn.fujitsu.com
State New
Headers show

Commit Message

Tang Chen Jan. 7, 2015, 6:49 a.m. UTC
Memory and CPU hot unplug are both asynchronize procedures.
When the unplug operation happens, unplug request cb is called first.
And when ghest OS finished handling unplug, unplug cb will be called
to do the real removal of device.

This patch adds hotunplug cb for pc machine, and memory and CPU
hot unplug will base on it.
---
 hw/i386/pc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Igor Mammedov Jan. 19, 2015, 5:29 p.m. UTC | #1
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 mbox

Patch

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 = {