[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 20/96] acpi, ich9: Add unplug cb for ich9.
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 20/96] acpi, ich9: Add unplug cb for ich9. |
Date: |
Wed, 18 Feb 2015 22:46:04 +0100 |
From: Tang Chen <address@hidden>
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 ich9, which memory and CPU
hot unplug will use it.
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Tang Chen <address@hidden>
Signed-off-by: Zhu Guihua <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
include/hw/acpi/ich9.h | 2 ++
hw/acpi/ich9.c | 7 +++++++
hw/isa/lpc_ich9.c | 9 +++++++++
3 files changed, 18 insertions(+)
diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
index eaef0c3..c2d3dba 100644
--- a/include/hw/acpi/ich9.h
+++ b/include/hw/acpi/ich9.h
@@ -65,6 +65,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 */
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index 5fe1eb8..5352e19 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -404,6 +404,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;
}
--
MST
- [Qemu-devel] [PULL 10/96] pcnet: Convert to realize, (continued)
- [Qemu-devel] [PULL 10/96] pcnet: Convert to realize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 11/96] serial-pci: Convert to realize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 12/96] ide/ich: Convert to realize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 13/96] cirrus-vga: Convert to realize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 14/96] qxl: Convert to realize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 15/96] pci-assign: Convert to realize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 17/96] acpi, pc: Add hotunplug request cb for pc machine., Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 16/96] qdev: Don't exit when running into bad -global, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 18/96] acpi, ich9: Add hotunplug request cb for ich9., Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 19/96] acpi, pc: Add unplug cb for pc machine., Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 20/96] acpi, ich9: Add unplug cb for ich9.,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 21/96] acpi, piix4: Add unplug cb for piix4., Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 22/96] vl.c: Fix error messages when parsing maxmem parameters, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 23/96] pc: memory: Validate alignment of maxram_size to page size, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 24/96] acpi: update RSDP on guest access, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 25/96] pc: acpi-build: update linker on guest access, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 26/96] pc: acpi-build: migrate RSDP table, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 27/96] exec: round up size on MR resize, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 28/96] acpi-build: fix ACPI RAM management, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 29/96] acpi: has_immutable_rsdp->!rsdp_in_ram, Michael S. Tsirkin, 2015/02/18
- [Qemu-devel] [PULL 30/96] acpi-build: simplify rsdp management for legacy, Michael S. Tsirkin, 2015/02/18