[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 50/58] qdev-monitor: Inline qdev_init() for device_ad
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PULL 50/58] qdev-monitor: Inline qdev_init() for device_add |
Date: |
Tue, 8 Oct 2013 19:44:48 +0200 |
For historic reasons, qdev_init() unparents the device on failure.
Inline this to make the error paths clearer and consistent.
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
qdev-monitor.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/qdev-monitor.c b/qdev-monitor.c
index f259e07..b7daab7 100644
--- a/qdev-monitor.c
+++ b/qdev-monitor.c
@@ -449,6 +449,7 @@ DeviceState *qdev_device_add(QemuOpts *opts)
const char *driver, *path, *id;
DeviceState *dev;
BusState *bus = NULL;
+ Error *err = NULL;
driver = qemu_opt_get(opts, "driver");
if (!driver) {
@@ -531,7 +532,11 @@ DeviceState *qdev_device_add(QemuOpts *opts)
OBJECT(dev), NULL);
g_free(name);
}
- if (qdev_init(dev) < 0) {
+ object_property_set_bool(OBJECT(dev), true, "realized", &err);
+ if (err != NULL) {
+ qerror_report_err(err);
+ error_free(err);
+ object_unparent(OBJECT(dev));
object_unref(OBJECT(dev));
qerror_report(QERR_DEVICE_INIT_FAILED, driver);
return NULL;
--
1.8.1.4
- [Qemu-devel] [PULL 25/58] a9mpcore: Embed A9SCUState, (continued)
- [Qemu-devel] [PULL 25/58] a9mpcore: Embed A9SCUState, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 43/58] arm11mpcore: Prepare for QOM embedding, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 57/58] ide: Drop ide_init2_with_non_qdev_drives(), Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 27/58] a9mpcore: Embed ARMMPTimerState, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 18/58] leon3: Don't enforce use of -bios with qtest, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 49/58] qdev-monitor: Avoid qdev as variable name, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 56/58] microdrive: Coding Style cleanups, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 37/58] arm11mpcore: Create container MemoryRegion in instance_init, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 58/58] pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 19/58] qtest: Prepare QOM machine tests, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 50/58] qdev-monitor: Inline qdev_init() for device_add,
Andreas Färber <=
- [Qemu-devel] [PULL 48/58] qdev: Drop misleading qdev_free() function, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 11/58] armv7m: Don't enforce use of kernel for qtest, Andreas Färber, 2013/10/08
- [Qemu-devel] [PULL 45/58] qdev-monitor: Clean up qdev_device_add() variable naming, Andreas Färber, 2013/10/08