From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH] fix stubdomain after DisplayState changes Date: Fri, 13 Mar 2009 18:24:32 +0000 Message-ID: <49BAA4E0.7000903@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel List-Id: xen-devel@lists.xenproject.org Hi all, 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 -r 4dc64c2e2dea hw/xenfb.c --- a/hw/xenfb.c Fri Mar 13 12:20:50 2009 +0000 +++ b/hw/xenfb.c Fri Mar 13 18:15:35 2009 +0000 @@ -741,7 +741,6 @@ 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 @@ 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 -r 4dc64c2e2dea xenfbfront.c --- a/xenfbfront.c Fri Mar 13 12:20:50 2009 +0000 +++ b/xenfbfront.c Fri Mar 13 18:15:35 2009 +0000 @@ -279,9 +279,11 @@ 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; }