On Mon, Jul 09, 2018 at 06:08:33PM -0300, Eduardo Habkost wrote: > On Fri, Jul 06, 2018 at 08:53:42AM +0200, Gerd Hoffmann wrote: > > On Thu, Jul 05, 2018 at 01:35:01PM -0300, Eduardo Habkost wrote: > > > Do we have a list of all machine-types with default_display==NULL > > > that would be affected by this? > > > > There are not many which use the default vga thing in the first place. > > Workflow is this: > > > > (1) vl.c calls select_vgahw(vga_model) after setting vga_model. > > (2) select_hw() sets vga_interface_type. > > (3) isa_vga_init() and pci_vga_init() look at vga_interface_type. > > > > Checking where either vga_interface_type or *_vga_init() is used doesn't > > yield many places: > > > > # find -name "*.[ch]" | xargs egrep > > '((isa|pci)_vga_init|vga_interface_type)' > > ./hw/alpha/dp264.c: pci_vga_init(pci_bus); > > ./hw/i386/pc.c: PCIDevice *pcidev = pci_vga_init(pci_bus); > > ./hw/i386/pc.c: ISADevice *isadev = isa_vga_init(isa_bus); > > ./hw/isa/isa-bus.c:ISADevice *isa_vga_init(ISABus *bus) > > ./hw/isa/isa-bus.c: switch (vga_interface_type) { > > ./hw/mips/mips_malta.c: pci_vga_init(pci_bus); > > ./hw/mips/mips_r4k.c: isa_vga_init(isa_bus); > > ./hw/pci/pci.c:PCIDevice *pci_vga_init(PCIBus *bus) > > ./hw/pci/pci.c: switch (vga_interface_type) { > > ./hw/ppc/mac_newworld.c: pci_vga_init(pci_bus); > > ./hw/ppc/mac_oldworld.c: pci_vga_init(pci_bus); > > ./hw/ppc/spapr.c: switch (vga_interface_type) { > > ./hw/ppc/spapr.c: return pci_vga_init(pci_bus) != NULL; > > ./hw/ppc/prep.c: pci_vga_init(pci_bus); > > ./hw/ppc/prep.c: pci_vga_init(pci_bus); > > ./hw/sparc/sun4m.c: if (vga_interface_type == VGA_CG3) { > > ./include/hw/isa/isa.h:ISADevice *isa_vga_init(ISABus *bus); > > ./include/hw/pci/pci.h:PCIDevice *pci_vga_init(PCIBus *bus); > > ./include/sysemu/sysemu.h:extern int vga_interface_type; > > ./include/sysemu/sysemu.h:#define xenfb_enabled (vga_interface_type == > > VGA_XENFB) > > ./vl.c:int vga_interface_type = VGA_NONE; > > ./vl.c: assert(vga_interface_type == VGA_NONE); > > ./vl.c: vga_interface_type = t; > > ./vl.c: vga_interface_type = VGA_DEVICE; > > > > So it is alpha, mips, i386, ppc. > > Right, and all of them have both CONFIG_VGA_CIRRUS and > CONFIG_VGA_PCI enabled. This means all of them will be affected > by this patch if they have any machines with > default_display==NULL. > > At least on x86 we still have a few machines with > default_display==NULL: isapc, xenpv, xenfv. We need to fix them > before we apply this patch. > > I didn't check alpha/mips/ppc yet.
List of machines with default_display==NULL on those architectures: alpha: none empty machine mips: mipssim MIPS MIPSsim platform none empty machine ppc*: bamboo bamboo mpc8544ds mpc8544ds none empty machine powernv IBM PowerNV (Non-Virtualized) ppce500 generic paravirt e500 platform ref405ep ref405ep sam460ex aCube Sam460ex taihu taihu virtex-ml507 Xilinx Virtex ML507 reference design x86_64: isapc ISA-only PC none empty machine xenfv Xen Fully-virtualized PC xenpv Xen Para-virtualized PC Tested on qemu.git master after applying this series. List generated by hacking machine_parse(), so some machines may be missing if they are disabled at build time. -- Eduardo