qxl: call dpy_gfx_resize when entering vga mode
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 30 Oct 2012 13:55:12 +0000 (14:55 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 5 Nov 2012 10:49:22 +0000 (11:49 +0100)
When entering vga mode the display size likely changes,
notify all displaychangelisteners about this.

Probably went unnoticed for a while as one if the first
things the guest does after leaving qxl native mode and
entering qxl vga mode is to set the vga video mode.  But
there is still a small window where qemu can operate on
stale data, leading to crashes now and then.

https://bugzilla.redhat.com/show_bug.cgi?id=865767

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/qxl.c

index 063970dc2875b7268d60146c03c9f42b8e7724cb..e7bf3a11a72f02efaa0ee297473e06fcb2c499dd 100644 (file)
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -1069,7 +1069,7 @@ static void qxl_enter_vga_mode(PCIQXLDevice *d)
     trace_qxl_enter_vga_mode(d->id);
     qemu_spice_create_host_primary(&d->ssd);
     d->mode = QXL_MODE_VGA;
-    memset(&d->ssd.dirty, 0, sizeof(d->ssd.dirty));
+    dpy_gfx_resize(d->ssd.ds);
     vga_dirty_log_start(&d->vga);
 }