From 29f49aa0c8eb7f37525d372e00d60c019d0a5746 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 13 Mar 2009 18:09:59 +0000 Subject: [PATCH] stop dirty logging while updating cirrus bank memory (Glauber Costa) Otherwise, slot tracking gets confused. This fixes a screen corruption bug with Ubuntu guest installation. Signed-off-by: Glauber Costa Signed-off-by: Avi Kivity Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6851 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/cirrus_vga.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index ec0297f..fb82189 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -2637,11 +2637,16 @@ static void map_linear_vram(CirrusVGAState *s) s->lfb_vram_mapped = 0; + cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x8000, + (s->vram_offset + s->cirrus_bank_base[0]) | IO_MEM_UNASSIGNED); + cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000, + (s->vram_offset + s->cirrus_bank_base[1]) | IO_MEM_UNASSIGNED); if (!(s->cirrus_srcptr != s->cirrus_srcptr_end) && !((s->sr[0x07] & 0x01) == 0) && !((s->gr[0x0B] & 0x14) == 0x14) && !(s->gr[0x0B] & 0x02)) { + vga_dirty_log_stop((VGAState *)s); cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x8000, (s->vram_offset + s->cirrus_bank_base[0]) | IO_MEM_RAM); cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000, -- 2.7.4