From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41083) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WIjBO-0003xe-LW for qemu-devel@nongnu.org; Wed, 26 Feb 2014 13:26:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WIjBJ-0007dN-O5 for qemu-devel@nongnu.org; Wed, 26 Feb 2014 13:26:14 -0500 Received: from mx1.redhat.com ([209.132.183.28]:23971) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WIjBJ-0007dI-GI for qemu-devel@nongnu.org; Wed, 26 Feb 2014 13:26:09 -0500 From: Alex Williamson Date: Wed, 26 Feb 2014 11:26:06 -0700 Message-ID: <20140226182606.8018.26997.stgit@bling.home> In-Reply-To: <20140226182246.8018.81349.stgit@bling.home> References: <20140226182246.8018.81349.stgit@bling.home> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 3/4] qdev-monitor: set DeviceState opts before calling realize List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@redhat.com Cc: Bandan Das , Andreas =?utf-8?q?F=C3=A4rber?= , qemu-devel@nongnu.org From: Bandan Das Setting opts before the realize property is set allows the following patch to make decisions based on whether the user specified "rombar". This also avoids having to create a new tristate property especially for this purpose Reviewed-by: Andreas F=C3=A4rber Signed-off-by: Bandan Das Signed-off-by: Alex Williamson --- qdev-monitor.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qdev-monitor.c b/qdev-monitor.c index 3a7dc0d..6673e3c 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -548,16 +548,18 @@ DeviceState *qdev_device_add(QemuOpts *opts) OBJECT(dev), NULL); g_free(name); } + + dev->opts =3D opts; object_property_set_bool(OBJECT(dev), true, "realized", &err); if (err !=3D NULL) { qerror_report_err(err); error_free(err); + dev->opts =3D NULL; object_unparent(OBJECT(dev)); object_unref(OBJECT(dev)); qerror_report(QERR_DEVICE_INIT_FAILED, driver); return NULL; } - dev->opts =3D opts; return dev; } =20