diff mbox series

[02/18] softmmu/vl.c: Check for the availability of the VGA device before using it

Message ID 20230512124033.502654-3-thuth@redhat.com
State New
Headers show
Series Allow qtests with --without-default-devices (part 1) | expand

Commit Message

Thomas Huth May 12, 2023, 12:40 p.m. UTC
In case the user disabled the default VGA device in the binary (e.g.
with the "--without-default-devices" configure switch), we should
not try to use it by default if QEMU is running with the default
devices, otherwise it aborts when trying to use it. Simply emit a
warning instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 softmmu/vl.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/softmmu/vl.c b/softmmu/vl.c
index 6c2427262b..43d3b972da 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -957,7 +957,18 @@  static const char *
 get_default_vga_model(const MachineClass *machine_class)
 {
     if (machine_class->default_display) {
-        return machine_class->default_display;
+        for (int t = 0; t < VGA_TYPE_MAX; t++) {
+            const VGAInterfaceInfo *ti = &vga_interfaces[t];
+
+            if (ti->opt_name && vga_interface_available(t) &&
+                g_str_equal(ti->opt_name, machine_class->default_display)) {
+                return machine_class->default_display;
+            }
+        }
+
+        warn_report_once("Default display '%s' is not available in this binary",
+                         machine_class->default_display);
+        return NULL;
     } else if (vga_interface_available(VGA_CIRRUS)) {
         return "cirrus";
     } else if (vga_interface_available(VGA_STD)) {