qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RESEND PATCH v1 4/5] acpi, ich9: Add unplug cb for ich


From: Igor Mammedov
Subject: Re: [Qemu-devel] [RESEND PATCH v1 4/5] acpi, ich9: Add unplug cb for ich9.
Date: Mon, 19 Jan 2015 18:34:40 +0100

On Wed, 7 Jan 2015 14:49:44 +0800
Tang Chen <address@hidden> 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 ich9, and memory and CPU
s/for/to/
s/and memory/which memory/
> hot unplug will base on it.
s/base on it/use/

> ---
>  hw/acpi/ich9.c         | 7 +++++++
>  hw/isa/lpc_ich9.c      | 9 +++++++++
>  include/hw/acpi/ich9.h | 2 ++
>  3 files changed, 18 insertions(+)
> 
> diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
> index 5ce3aaf..c48d176 100644
> --- a/hw/acpi/ich9.c
> +++ b/hw/acpi/ich9.c
> @@ -308,6 +308,13 @@ void ich9_pm_device_unplug_request_cb(ICH9LPCPMRegs *pm, 
> DeviceState *dev,
>                 " type: %s", object_get_typename(OBJECT(dev)));
>  }
>  
> +void ich9_pm_device_unplug_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
> +                              Error **errp)
> +{
> +    error_setg(errp, "acpi: device unplug for not supported device"
> +               " type: %s", object_get_typename(OBJECT(dev)));
> +}
> +
>  void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
>  {
>      ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
> diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
> index d00b223..16f5a0d 100644
> --- a/hw/isa/lpc_ich9.c
> +++ b/hw/isa/lpc_ich9.c
> @@ -615,6 +615,14 @@ static void ich9_device_unplug_request_cb(HotplugHandler 
> *hotplug_dev,
>      ich9_pm_device_unplug_request_cb(&lpc->pm, dev, errp);
>  }
>  
> +static void ich9_device_unplug_cb(HotplugHandler *hotplug_dev,
> +                                  DeviceState *dev, Error **errp)
> +{
> +    ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> +
> +    ich9_pm_device_unplug_cb(&lpc->pm, dev, errp);
> +}
> +
>  static bool ich9_rst_cnt_needed(void *opaque)
>  {
>      ICH9LPCState *lpc = opaque;
> @@ -678,6 +686,7 @@ static void ich9_lpc_class_init(ObjectClass *klass, void 
> *data)
>      dc->cannot_instantiate_with_device_add_yet = true;
>      hc->plug = ich9_device_plug_cb;
>      hc->unplug_request = ich9_device_unplug_request_cb;
> +    hc->unplug = ich9_device_unplug_cb;
>      adevc->ospm_status = ich9_pm_ospm_status;
>  }
>  
> diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
> index 86853c3..fc87dad 100644
> --- a/include/hw/acpi/ich9.h
> +++ b/include/hw/acpi/ich9.h
> @@ -61,6 +61,8 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm, 
> Error **errp);
>  void ich9_pm_device_plug_cb(ICH9LPCPMRegs *pm, DeviceState *dev, Error 
> **errp);
>  void ich9_pm_device_unplug_request_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
>                                        Error **errp);
> +void ich9_pm_device_unplug_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
> +                              Error **errp);
>  
>  void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
>  #endif /* HW_ACPI_ICH9_H */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]