diff options
Diffstat (limited to 'softmmu/vl.c')
| -rw-r--r-- | softmmu/vl.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/softmmu/vl.c b/softmmu/vl.c index 6c2427262b..b0b96f67fa 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)) { @@ -1283,6 +1294,13 @@ static void qemu_disable_default_devices(void) default_monitor = 0; default_net = 0; default_vga = 0; + } else { + if (default_net && machine_class->default_nic && + !module_object_class_by_name(machine_class->default_nic)) { + warn_report("Default NIC '%s' is not available in this binary", + machine_class->default_nic); + default_net = 0; + } } } |