On Wed, Jan 28, 2015 at 03:45:38PM +0800, Zhu Guihua wrote:
> From: Tang Chen <[email protected]>
>
> Memory and CPU hot unplug are both asynchronous procedures.
> They both need unplug request cb when the unplug operation happens.
>
> This patch adds hotunplug request cb for ich9, and memory and CPU
> hot unplug will share it.
>
> Reviewed-by: Igor Mammedov <[email protected]>
> Signed-off-by: Tang Chen <[email protected]>
> Signed-off-by: Zhu Guihua <[email protected]>
> ---
> hw/acpi/ich9.c | 7 +++++++
> hw/isa/lpc_ich9.c | 5 +++--
> include/hw/acpi/ich9.h | 2 ++
> 3 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
> index 884dab3..5fe1eb8 100644
> --- a/hw/acpi/ich9.c
> +++ b/hw/acpi/ich9.c
> @@ -397,6 +397,13 @@ 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)
> +{
> + error_setg(errp, "acpi: device unplug request for not supported device"
s/not supported/unsupported/
don't respin just for this.
> + " 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 530b074..d00b223 100644
> --- a/hw/isa/lpc_ich9.c
> +++ b/hw/isa/lpc_ich9.c
> @@ -610,8 +610,9 @@ static void ich9_device_plug_cb(HotplugHandler
> *hotplug_dev,
> static void ich9_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)));
> + ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> +
> + ich9_pm_device_unplug_request_cb(&lpc->pm, dev, errp);
> }
>
> static bool ich9_rst_cnt_needed(void *opaque)
> diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
> index 12d7a7a..eaef0c3 100644
> --- a/include/hw/acpi/ich9.h
> +++ b/include/hw/acpi/ich9.h
> @@ -63,6 +63,8 @@ extern const VMStateDescription vmstate_ich9_pm;
> 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_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
> #endif /* HW_ACPI_ICH9_H */
> --
> 1.9.3