All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] vl.c: fix -usb option assertion failure in qemu_opt_get_bool_helper()
@ 2015-01-05 11:22 Stefan Hajnoczi
  2015-01-05 11:37 ` Jan Kiszka
  0 siblings, 1 reply; 14+ messages in thread
From: Stefan Hajnoczi @ 2015-01-05 11:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Tiejun Chen, Peter Maydell, Marcel Apfelbaum, Stefan Hajnoczi,
	plucinski.mariusz

Commit 49d2e648e8087d154d8bf8b91f27c8e05e79d5a6 ("machine: remove
qemu_machine_opts global list") removed option descriptions from the
-machine QemuOptsList to avoid repeating MachineState's QOM properties.

This change broke vl.c:usb_enabled() because qemu_opt_get_bool() cannot
be used on QemuOptsList without option descriptions since QemuOpts
doesn't know the type and therefore left an unparsed string value.

This patch avoids calling qemu_opt_get_bool() to fix the assertion
failure:

  $ qemu-system-x86_64 -usb
  qemu_opt_get_bool_helper: Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.

Test the presence of -usb using qemu_opt_find() but use the
MachineState->usb field instead of qemu_opt_get_bool().

Cc: Marcel Apfelbaum <marcel.a@redhat.com>
Cc: Tiejun Chen <tiejun.chen@intel.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 vl.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/vl.c b/vl.c
index bea9656..6e8889c 100644
--- a/vl.c
+++ b/vl.c
@@ -999,8 +999,11 @@ static int parse_name(QemuOpts *opts, void *opaque)
 
 bool usb_enabled(bool default_usb)
 {
-    return qemu_opt_get_bool(qemu_get_machine_opts(), "usb",
-                             has_defaults && default_usb);
+    if (qemu_opt_find(qemu_get_machine_opts(), "usb")) {
+        return current_machine->usb;
+    } else {
+        return has_defaults && default_usb;
+    }
 }
 
 #ifndef _WIN32
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-02-04 14:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-05 11:22 [Qemu-devel] [PATCH] vl.c: fix -usb option assertion failure in qemu_opt_get_bool_helper() Stefan Hajnoczi
2015-01-05 11:37 ` Jan Kiszka
2015-01-05 11:50   ` Stefan Hajnoczi
2015-01-05 12:14     ` Marcel Apfelbaum
2015-01-05 18:18       ` Laszlo Ersek
2015-01-06  2:37       ` Chen, Tiejun
2015-01-06  6:20         ` Shannon Zhao
2015-01-06  9:01           ` Chen, Tiejun
2015-01-06 16:53             ` Marcel Apfelbaum
2015-01-06 14:58         ` Stefan Hajnoczi
2015-01-31  9:23   ` Jan Kiszka
2015-02-02 10:02     ` Marcel Apfelbaum
2015-02-04 14:18       ` Christian Borntraeger
2015-02-04 14:27         ` Marcel Apfelbaum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.