From: Ian Jackson Date: Mon, 23 Mar 2009 17:15:12 +0000 (+0000) Subject: fix stubdomain after DisplayState changes X-Git-Tag: xen-3.4.0-rc2~39 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=31fe45b8c0fe4588532cac92e36fe4d44c873e92;p=qemu-xen-3.4-testing.git fix stubdomain after DisplayState changes this patch fixes few stubdom issues arised after the recent DisplayState changes (not yet pushed to qemu-xen-unstable). The main problem is that we need to touch the newly allocated pages before sharing them, because minios allocates on first write. Signed-off-by: Stefano Stabellini --- diff --git a/hw/xenfb.c b/hw/xenfb.c index a0319eb5..31bc8f3d 100644 --- a/hw/xenfb.c +++ b/hw/xenfb.c @@ -741,7 +741,6 @@ static void xenfb_update(void *opaque) xenfb->c.ds->surface = qemu_create_displaysurface_from (xenfb->width, xenfb->height, xenfb->depth, xenfb->row_stride, xenfb->pixels + xenfb->offset); - dpy_resize(xenfb->c.ds); break; default: /* we must convert stuff */ @@ -750,6 +749,7 @@ static void xenfb_update(void *opaque) xenfb->depth, xenfb->row_stride); break; } + dpy_resize(xenfb->c.ds); xen_be_printf(&xenfb->c.xendev, 1, "update: resizing: %dx%d\n", xenfb->width, xenfb->height); xenfb->up_fullscreen = 1; diff --git a/xenfbfront.c b/xenfbfront.c index af8e0ae5..254458d4 100644 --- a/xenfbfront.c +++ b/xenfbfront.c @@ -279,9 +279,11 @@ static void xenfb_pv_display_allocator(void) fprintf(stderr, "xenfb_pv_display_allocator: could not allocate nonshared_vram\n"); exit(1); } + /* Touch the pages before sharing them */ + memset(xs->nonshared_vram, 0xff, vga_ram_size); ds = xenfb_create_displaysurface(ds_get_width(xs->ds), ds_get_height(xs->ds), ds_get_bits_per_pixel(xs->ds), ds_get_linesize(xs->ds)); - qemu_free_displaysurface(xs->ds); + defaultallocator_free_displaysurface(xs->ds->surface); xs->ds->surface = ds; }