On 7 May 2018 at 11:10, Gerd Hoffmann <kra...@redhat.com> wrote: > ... to a virtual machine. Without that we fail a ramblock register > sanity check, leading to a abort(), which isn't exactly user friendly. > > https://bugzilla.redhat.com/show_bug.cgi?id=1206037 > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> > --- > hw/display/vga.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/display/vga.c b/hw/display/vga.c > index 72181330b8..328b6413ad 100644 > --- a/hw/display/vga.c > +++ b/hw/display/vga.c > @@ -2184,6 +2184,14 @@ void vga_common_init(VGACommonState *s, Object *obj, > bool global_vmstate) > } > s->vbe_size_mask = s->vbe_size - 1; > > + if (global_vmstate) { > + static int have_vga; > + if (have_vga) { > + error_report("only one vga device is supported"); > + exit(1); > + } > + have_vga = true; > + } > s->is_vbe_vmstate = 1; > memory_region_init_ram_nomigrate(&s->vram, obj, "vga.vram", s->vram_size, > &error_fatal); > -- > 2.9.3 >
This seems like a bit of an irritating reason to refuse to allow multiple VGA devices though, since we could make them work by having the vmstate be not-global. Which is exactly what it ought to be -- we're only defaulting to "use global" here for migration compatibility, I think. Since multiple VGA devices didn't work before, there's no old configs we need to migrate from, and so I think we could just say "the second and subsequent VGA devices get non-global ram vmstate" ? thanks -- PMM