]> Git Repo - qemu.git/commitdiff
Warn user if the vga flag is passed but no vga device is created
authorGautam Agrawal <[email protected]>
Sun, 1 May 2022 12:25:05 +0000 (17:55 +0530)
committerThomas Huth <[email protected]>
Mon, 9 May 2022 06:21:14 +0000 (08:21 +0200)
A global boolean variable "vga_interface_created"(declared in softmmu/globals.c)
has been used to track the creation of vga interface. If the vga flag is passed
in the command line "default_vga"(declared in softmmu/vl.c) variable is set to 0.
To warn user, the condition checks if vga_interface_created is false
and default_vga is equal to 0. If "-vga none" is passed, this patch will not warn the
user regarding the creation of VGA device.

The warning "A -vga option was passed but this
machine type does not use that option; no VGA device has been created"
is logged if vga flag is passed but no vga device is created.

This patch has been tested for x86_64, i386, sparc, sparc64 and arm boards.

Signed-off-by: Gautam Agrawal <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/581
Message-Id: <20220501122505[email protected]>
[thuth: Fix wrong warning with "-device" in some cases as reported by Paolo]
Signed-off-by: Thomas Huth <[email protected]>
hw/hppa/machine.c
hw/isa/isa-bus.c
hw/mips/fuloong2e.c
hw/pci/pci.c
hw/ppc/spapr.c
hw/sparc/sun4m.c
hw/sparc64/sun4u.c
hw/xenpv/xen_machine_pv.c
include/sysemu/sysemu.h
softmmu/globals.c
softmmu/vl.c

index ae0bc07e75affb421ec6381e1d82a0c7cb37dd71..4d054ca86946c9e75f52579b33c9dba7c2bf6682 100644 (file)
@@ -265,6 +265,7 @@ static void machine_hppa_init(MachineState *machine)
 
     /* Graphics setup. */
     if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
+        vga_interface_created = true;
         dev = qdev_new("artist");
         s = SYS_BUS_DEVICE(dev);
         sysbus_realize_and_unref(s, &error_fatal);
index 0ad1c5fd6542ada0957a623a3033386a75b06657..cd5ad3687d404f0626e0397e76a394be8571212a 100644 (file)
@@ -166,6 +166,7 @@ bool isa_realize_and_unref(ISADevice *dev, ISABus *bus, Error **errp)
 
 ISADevice *isa_vga_init(ISABus *bus)
 {
+    vga_interface_created = true;
     switch (vga_interface_type) {
     case VGA_CIRRUS:
         return isa_create_simple(bus, "isa-cirrus-vga");
index 7b13098f9b1b3c0fd792500fd2ac47507902a9db..5ee546f5f6a1edb73c5d64a8944d75127f4f4a04 100644 (file)
@@ -320,6 +320,7 @@ static void mips_fuloong2e_init(MachineState *machine)
 
     /* GPU */
     if (vga_interface_type != VGA_NONE) {
+        vga_interface_created = true;
         pci_dev = pci_new(-1, "ati-vga");
         dev = DEVICE(pci_dev);
         qdev_prop_set_uint32(dev, "vgamem_mb", 16);
index e99417e501105eaabffc812821fcb1fa58d26537..9c58f02853d9194b17a68575a1e6329e3b412c79 100644 (file)
@@ -2037,6 +2037,7 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
 
 PCIDevice *pci_vga_init(PCIBus *bus)
 {
+    vga_interface_created = true;
     switch (vga_interface_type) {
     case VGA_CIRRUS:
         return pci_create_simple(bus, -1, "cirrus-vga");
index fe9937e8118996bd6f1ea9f2168ef1fdf3f82d9b..8bbae68e1b63774788fc1f8614c8d5ebc1f46be2 100644 (file)
@@ -1742,6 +1742,7 @@ static void spapr_rtc_create(SpaprMachineState *spapr)
 /* Returns whether we want to use VGA or not */
 static bool spapr_vga_init(PCIBus *pci_bus, Error **errp)
 {
+    vga_interface_created = true;
     switch (vga_interface_type) {
     case VGA_NONE:
         return false;
index fccaed1eb4446fb5328e50d16720ca7622fbeef5..b693eea0e0598203c87dc22fd51b2ffd9f96e6e4 100644 (file)
@@ -920,6 +920,7 @@ static void sun4m_hw_init(MachineState *machine)
             /* sbus irq 5 */
             cg3_init(hwdef->tcx_base, slavio_irq[11], 0x00100000,
                      graphic_width, graphic_height, graphic_depth);
+            vga_interface_created = true;
         } else {
             /* If no display specified, default to TCX */
             if (graphic_depth != 8 && graphic_depth != 24) {
@@ -935,6 +936,7 @@ static void sun4m_hw_init(MachineState *machine)
 
             tcx_init(hwdef->tcx_base, slavio_irq[11], 0x00100000,
                      graphic_width, graphic_height, graphic_depth);
+            vga_interface_created = true;
         }
     }
 
index 6fd08e2298a6ebda60a0212faf936cc8ad9e66c9..7c461d194a880950816208bf09dbd34b5bc0794d 100644 (file)
@@ -632,6 +632,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
     switch (vga_interface_type) {
     case VGA_STD:
         pci_create_simple(pci_busA, PCI_DEVFN(2, 0), "VGA");
+        vga_interface_created = true;
         break;
     case VGA_NONE:
         break;
index 8df575a457c89ad308698718b223506154b91e1c..20c9611d718181c08a555ca0ed41705918667197 100644 (file)
@@ -63,6 +63,7 @@ static void xen_init_pv(MachineState *machine)
     if (vga_interface_type == VGA_XENFB) {
         xen_config_dev_vfb(0, "vnc");
         xen_config_dev_vkbd(0);
+        vga_interface_created = true;
     }
 
     /* configure disks */
index 10e283c170643a48bfc7323b3113a7199d233675..360a408edf2e537186cab1263ca2736aa4445969 100644 (file)
@@ -34,6 +34,7 @@ typedef enum {
 } VGAInterfaceType;
 
 extern int vga_interface_type;
+extern bool vga_interface_created;
 
 extern int graphic_width;
 extern int graphic_height;
index 3ebd718e35da4f9de9aa7b3b6b5265fdf50cf754..98b64e0492ae87498e671896a65337ce30d94afb 100644 (file)
@@ -40,6 +40,7 @@ int nb_nics;
 NICInfo nd_table[MAX_NICS];
 int autostart = 1;
 int vga_interface_type = VGA_NONE;
+bool vga_interface_created;
 Chardev *parallel_hds[MAX_PARALLEL_PORTS];
 int win2k_install_hack;
 int singlestep;
index ad886fb878bddfb4fda68355c0e2f3720d244b75..488cc4d09e1fe7467d860bf566e53d4944afc039 100644 (file)
@@ -1353,6 +1353,7 @@ static void qemu_disable_default_devices(void)
 
     if (!vga_model && !default_vga) {
         vga_interface_type = VGA_DEVICE;
+        vga_interface_created = true;
     }
     if (!has_defaults || machine_class->no_serial) {
         default_serial = 0;
@@ -2736,6 +2737,12 @@ static void qemu_machine_creation_done(void)
     if (foreach_device_config(DEV_GDB, gdbserver_start) < 0) {
         exit(1);
     }
+    if (!vga_interface_created && !default_vga &&
+        vga_interface_type != VGA_NONE) {
+        warn_report("A -vga option was passed but this machine "
+                    "type does not use that option; "
+                    "No VGA device has been created");
+    }
 }
 
 void qmp_x_exit_preconfig(Error **errp)
This page took 0.048909 seconds and 4 git commands to generate.