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