[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 02/15] do_device_add(): look up "device" opts
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH v2 02/15] do_device_add(): look up "device" opts list with qemu_find_opts_err() |
Date: |
Thu, 7 Feb 2013 15:01:36 -0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Feb 05, 2013 at 09:39:15PM +0100, Laszlo Ersek wrote:
> 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 <address@hidden>
> ---
> 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);
> + }
Is this really worth the extra code complexity, if the "device"
QemuOptsList is supposed to be always registered by QEMU? I would be
happy enough with a simple "assert(list)" inside qemu_opts_from_qdict().
> 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;
> --
> 1.7.1
>
>
--
Eduardo