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

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.

Message-Id: <20230512124033.502654-3-thuth@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2023-05-10 18:54:33 +02:00
parent d11b791890
commit d563cc84cd

View File

@ -957,7 +957,18 @@ static const char *
get_default_vga_model(const MachineClass *machine_class) get_default_vga_model(const MachineClass *machine_class)
{ {
if (machine_class->default_display) { 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)) { } else if (vga_interface_available(VGA_CIRRUS)) {
return "cirrus"; return "cirrus";
} else if (vga_interface_available(VGA_STD)) { } else if (vga_interface_available(VGA_STD)) {