summaryrefslogtreecommitdiffstats
path: root/include/hw/acpi
diff options
context:
space:
mode:
authorDavid Hildenbrand2018-12-12 10:16:19 +0100
committerMichael S. Tsirkin2018-12-20 17:19:12 +0100
commitc97adf3ccfbfbe6885fd9de7293162489d293d44 (patch)
tree1903a7597717802612ca9752d3506714b41bfc25 /include/hw/acpi
parentpci/pcihp: overwrite hotplug handler recursively from the start (diff)
downloadqemu-c97adf3ccfbfbe6885fd9de7293162489d293d44.tar.gz
qemu-c97adf3ccfbfbe6885fd9de7293162489d293d44.tar.xz
qemu-c97adf3ccfbfbe6885fd9de7293162489d293d44.zip
pci/pcihp: perform unplug via the hotplug handler
Introduce and use the "unplug" callback. This is a preparation for multi-stage hotplug handlers, whereby the bus hotplug handler is overwritten by the machine hotplug handler. This handler will then pass control to the bus hotplug handler. So to get this running cleanly, we also have to make sure to go via the hotplug handler chain when actually unplugging a device after an unplug request. Lookup the hotplug handler and call "unplug". Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'include/hw/acpi')
-rw-r--r--include/hw/acpi/pcihp.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/hw/acpi/pcihp.h b/include/hw/acpi/pcihp.h
index ce31625850..8bc4a4c01d 100644
--- a/include/hw/acpi/pcihp.h
+++ b/include/hw/acpi/pcihp.h
@@ -62,6 +62,9 @@ void acpi_pcihp_device_plug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
DeviceState *dev, Error **errp);
void acpi_pcihp_device_unplug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
DeviceState *dev, Error **errp);
+void acpi_pcihp_device_unplug_request_cb(HotplugHandler *hotplug_dev,
+ AcpiPciHpState *s, DeviceState *dev,
+ Error **errp);
/* Called on reset */
void acpi_pcihp_reset(AcpiPciHpState *s);