VIGS: Fix bad DisplaySurface access 58/18558/1
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Wed, 26 Mar 2014 06:01:04 +0000 (10:01 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Wed, 26 Mar 2014 06:05:15 +0000 (10:05 +0400)
vigs_server_update_display may update DisplaySurface,
so vigs_hw_update must fetch it again

Change-Id: Iaabe9be4d3467d96a0b8c5360360437bc9dbb2a2
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
hw/vigs/vigs_device.c

index 7b16d3af520d41141236ad2a457de4d8812127d3..f9e2da884a19feaa34b1f05169a0955483127487 100644 (file)
@@ -121,6 +121,12 @@ static void vigs_hw_update(void *opaque)
 
     vigs_server_update_display(s->server);
 
+    /*
+     * 'vigs_server_update_display' could have updated the surface,
+     * so fetch it again.
+     */
+    ds = qemu_console_surface(s->con);
+
     dpy_gfx_update(s->con, 0, 0, surface_width(ds), surface_height(ds));
 
     if (s->reg_con & VIGS_REG_CON_VBLANK_ENABLE) {