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. -- Eduardo