[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less device
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices |
Date: |
Thu, 9 Jul 2015 18:51:31 +0200 |
Devices that don't live on a bus aren't caught by the normal device
reset logic. Let's register a reset handler for those devices during
device realization that calls the reset handler for the associated
device class.
Suggested-by: Peter Crosthwaite <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/core/qdev.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index b2f404a..5c7c27b 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -1018,6 +1018,13 @@ static bool device_get_realized(Object *obj, Error
**errp)
return dev->realized;
}
+static void do_device_reset(void *opaque)
+{
+ DeviceState *dev = opaque;
+
+ device_reset(dev);
+}
+
static void device_set_realized(Object *obj, bool value, Error **errp)
{
DeviceState *dev = DEVICE(obj);
@@ -1061,6 +1068,11 @@ static void device_set_realized(Object *obj, bool value,
Error **errp)
goto post_realize_fail;
}
+ if (!dev->parent_bus) {
+ /* Make sure that reset is called for bus-less devices. */
+ qemu_register_reset(do_device_reset, dev);
+ }
+
if (qdev_get_vmsd(dev)) {
vmstate_register_with_alias_id(dev, -1, qdev_get_vmsd(dev), dev,
dev->instance_id_alias,
@@ -1094,6 +1106,9 @@ static void device_set_realized(Object *obj, bool value,
Error **errp)
}
dev->pending_deleted_event = true;
DEVICE_LISTENER_CALL(unrealize, Reverse, dev);
+ if (!dev->parent_bus) {
+ qemu_unregister_reset(do_device_reset, dev);
+ }
}
if (local_err != NULL) {
--
2.3.8
- [Qemu-devel] [PATCH for-2.4 0/2] reset for bus-less devices, Cornelia Huck, 2015/07/09
- [Qemu-devel] [PATCH for-2.4 2/2] watchdog/diag288: handle subsystem resets correctly, Cornelia Huck, 2015/07/09
- [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices,
Cornelia Huck <=
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Christian Borntraeger, 2015/07/13
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Cornelia Huck, 2015/07/13
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Andreas Färber, 2015/07/13
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Christian Borntraeger, 2015/07/13
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Andreas Färber, 2015/07/13
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Cornelia Huck, 2015/07/13
- Re: [Qemu-devel] [PATCH for-2.4 1/2] core: reset handler for bus-less devices, Andreas Färber, 2015/07/13