From patchwork Tue Feb 5 20:39:15 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v2, 02/15] do_device_add(): look up "device" opts list with qemu_find_opts_err() From: Laszlo Ersek X-Patchwork-Id: 218337 Message-Id: <1360096768-8863-3-git-send-email-lersek@redhat.com> To: aliguori@us.ibm.com, pbonzini@redhat.com, afaerber@suse.de, lcapitulino@redhat.com, stefanha@linux.vnet.ibm.com, xiawenc@linux.vnet.ibm.com, kwolf@redhat.com, ehabkost@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org Date: Tue, 5 Feb 2013 21:39:15 +0100 Conversion status (call chains covered or substituted by error propagation marked with square brackets): do_device_add -> [qemu_find_opts -> error_report] do_device_add -> qdev_device_add -> qerror_report do_device_add -> qdev_device_add -> qbus_find -> qbus_find_recursive -> qerror_report do_device_add -> qdev_device_add -> qbus_find -> qerror_report do_device_add -> qdev_device_add -> set_property -> qdev_prop_parse -> qerror_report_err Signed-off-by: Laszlo Ersek --- hw/qdev-monitor.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index 56d66c3..bbdc90f 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -590,15 +590,20 @@ void do_info_qdm(Monitor *mon, const QDict *qdict) int do_device_add(Monitor *mon, const QDict *qdict, QObject **ret_data) { Error *local_err = NULL; + QemuOptsList *list; QemuOpts *opts; DeviceState *dev; - opts = qemu_opts_from_qdict(qemu_find_opts("device"), qdict, &local_err); + list = qemu_find_opts_err("device", &local_err); + if (!error_is_set(&local_err)) { + opts = qemu_opts_from_qdict(list, qdict, &local_err); + } if (error_is_set(&local_err)) { qerror_report_err(local_err); error_free(local_err); return -1; } + if (!monitor_cur_is_qmp() && qdev_device_help(opts)) { qemu_opts_del(opts); return 0;