[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 17/34] qdev: hotplug: drop HotplugHandler.post_plu
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL v2 17/34] qdev: hotplug: drop HotplugHandler.post_plug callback |
Date: |
Fri, 11 Nov 2016 20:10:53 +0200 |
From: Xiao Guangrong <address@hidden>
as nvdimm acpi is okay to build fit when the nvdimm device
has not been 'realized'
Suggested-by: Igor Mammedov <address@hidden>
Signed-off-by: Xiao Guangrong <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
---
include/hw/hotplug.h | 11 -----------
hw/acpi/nvdimm.c | 6 +-----
hw/core/hotplug.c | 11 -----------
hw/core/qdev.c | 20 ++++----------------
hw/i386/pc.c | 23 ++++-------------------
5 files changed, 9 insertions(+), 62 deletions(-)
diff --git a/include/hw/hotplug.h b/include/hw/hotplug.h
index 10ca5b6..1a0516a 100644
--- a/include/hw/hotplug.h
+++ b/include/hw/hotplug.h
@@ -47,7 +47,6 @@ typedef void (*hotplug_fn)(HotplugHandler *plug_handler,
* @parent: Opaque parent interface.
* @pre_plug: pre plug callback called at start of device.realize(true)
* @plug: plug callback called at end of device.realize(true).
- * @post_pug: post plug callback called after device is successfully plugged.
* @unplug_request: unplug request callback.
* Used as a means to initiate device unplug for devices that
* require asynchronous unplug handling.
@@ -62,7 +61,6 @@ typedef struct HotplugHandlerClass {
/* <public> */
hotplug_fn pre_plug;
hotplug_fn plug;
- hotplug_fn post_plug;
hotplug_fn unplug_request;
hotplug_fn unplug;
} HotplugHandlerClass;
@@ -86,15 +84,6 @@ void hotplug_handler_pre_plug(HotplugHandler *plug_handler,
Error **errp);
/**
- * hotplug_handler_post_plug:
- *
- * Call #HotplugHandlerClass.post_plug callback of @plug_handler.
- */
-void hotplug_handler_post_plug(HotplugHandler *plug_handler,
- DeviceState *plugged_dev,
- Error **errp);
-
-/**
* hotplug_handler_unplug_request:
*
* Calls #HotplugHandlerClass.unplug_request callback of @plug_handler.
diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
index 602ec54..623bb36 100644
--- a/hw/acpi/nvdimm.c
+++ b/hw/acpi/nvdimm.c
@@ -38,11 +38,7 @@ static int nvdimm_plugged_device_list(Object *obj, void
*opaque)
GSList **list = opaque;
if (object_dynamic_cast(obj, TYPE_NVDIMM)) {
- DeviceState *dev = DEVICE(obj);
-
- if (dev->realized) { /* only realized NVDIMMs matter */
- *list = g_slist_append(*list, DEVICE(obj));
- }
+ *list = g_slist_append(*list, DEVICE(obj));
}
object_child_foreach(obj, nvdimm_plugged_device_list, opaque);
diff --git a/hw/core/hotplug.c b/hw/core/hotplug.c
index ab34c19..17ac986 100644
--- a/hw/core/hotplug.c
+++ b/hw/core/hotplug.c
@@ -35,17 +35,6 @@ void hotplug_handler_plug(HotplugHandler *plug_handler,
}
}
-void hotplug_handler_post_plug(HotplugHandler *plug_handler,
- DeviceState *plugged_dev,
- Error **errp)
-{
- HotplugHandlerClass *hdc = HOTPLUG_HANDLER_GET_CLASS(plug_handler);
-
- if (hdc->post_plug) {
- hdc->post_plug(plug_handler, plugged_dev, errp);
- }
-}
-
void hotplug_handler_unplug_request(HotplugHandler *plug_handler,
DeviceState *plugged_dev,
Error **errp)
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index d835e62..5783442 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -945,21 +945,10 @@ static void device_set_realized(Object *obj, bool value,
Error **errp)
goto child_realize_fail;
}
}
-
if (dev->hotplugged) {
device_reset(dev);
}
dev->pending_deleted_event = false;
- dev->realized = value;
-
- if (hotplug_ctrl) {
- hotplug_handler_post_plug(hotplug_ctrl, dev, &local_err);
- }
-
- if (local_err != NULL) {
- dev->realized = value;
- goto post_realize_fail;
- }
} else if (!value && dev->realized) {
Error **local_errp = NULL;
QLIST_FOREACH(bus, &dev->child_bus, sibling) {
@@ -976,14 +965,13 @@ static void device_set_realized(Object *obj, bool value,
Error **errp)
}
dev->pending_deleted_event = true;
DEVICE_LISTENER_CALL(unrealize, Reverse, dev);
+ }
- if (local_err != NULL) {
- goto fail;
- }
-
- dev->realized = value;
+ if (local_err != NULL) {
+ goto fail;
}
+ dev->realized = value;
return;
child_realize_fail:
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 2c37a78..cebaad2 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1715,22 +1715,16 @@ static void pc_dimm_plug(HotplugHandler *hotplug_dev,
goto out;
}
+ if (object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)) {
+ nvdimm_acpi_hotplug(&pcms->acpi_nvdimm_state);
+ }
+
hhc = HOTPLUG_HANDLER_GET_CLASS(pcms->acpi_dev);
hhc->plug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &error_abort);
out:
error_propagate(errp, local_err);
}
-static void pc_dimm_post_plug(HotplugHandler *hotplug_dev,
- DeviceState *dev, Error **errp)
-{
- PCMachineState *pcms = PC_MACHINE(hotplug_dev);
-
- if (object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)) {
- nvdimm_acpi_hotplug(&pcms->acpi_nvdimm_state);
- }
-}
-
static void pc_dimm_unplug_request(HotplugHandler *hotplug_dev,
DeviceState *dev, Error **errp)
{
@@ -2008,14 +2002,6 @@ static void pc_machine_device_plug_cb(HotplugHandler
*hotplug_dev,
}
}
-static void pc_machine_device_post_plug_cb(HotplugHandler *hotplug_dev,
- DeviceState *dev, Error **errp)
-{
- if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
- pc_dimm_post_plug(hotplug_dev, dev, errp);
- }
-}
-
static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
DeviceState *dev, Error **errp)
{
@@ -2322,7 +2308,6 @@ static void pc_machine_class_init(ObjectClass *oc, void
*data)
mc->reset = pc_machine_reset;
hc->pre_plug = pc_machine_device_pre_plug_cb;
hc->plug = pc_machine_device_plug_cb;
- hc->post_plug = pc_machine_device_post_plug_cb;
hc->unplug_request = pc_machine_device_unplug_request_cb;
hc->unplug = pc_machine_device_unplug_cb;
nc->nmi_monitor_handler = x86_nmi;
--
MST
- [Qemu-devel] [PULL v2 08/34] virtio: rename virtqueue_discard to virtqueue_unpop, (continued)
- [Qemu-devel] [PULL v2 08/34] virtio: rename virtqueue_discard to virtqueue_unpop, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 07/34] intel_iommu: fixing source id during IOTLB hash key calculation, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 11/34] intel_iommu: fix several incorrect endianess and bit fields, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 09/34] virtio: make virtqueue_alloc_element static, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 12/34] intel_iommu: fix incorrect assert, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 10/34] virtio-crypto: tag as not hotpluggable and migration, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 13/34] acpi: fix DMAR device scope for IOAPIC, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 15/34] virtio-net: mark VIRTIO_NET_F_GSO as legacy, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 14/34] virtio: allow per-device-class legacy features, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 16/34] vhost: migration blocker only if shared log is used, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 17/34] qdev: hotplug: drop HotplugHandler.post_plug callback,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL v2 18/34] nvdimm acpi: drop the lock of fit buffer, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 19/34] pc: memhp: move nvdimm hotplug out of memory hotplug, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 20/34] pc: memhp: stop handling nvdimm hotplug in pc_dimm_unplug, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 21/34] nvdimm acpi: clean up nvdimm_build_acpi, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 22/34] docs: improve the doc of Read FIT method, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 23/34] nvdimm acpi: rename nvdimm_plugged_device_list, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 24/34] nvdimm acpi: cleanup nvdimm_build_fit, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 25/34] nvdimm acpi: rename nvdimm_acpi_hotplug, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 26/34] nvdimm acpi: define DSM return codes, Michael S. Tsirkin, 2016/11/11
- [Qemu-devel] [PULL v2 28/34] nvdimm acpi: rename nvdimm_dsm_reserved_root, Michael S. Tsirkin, 2016/11/11