Commit 8a93e519f32c40ebc41503fd18607dcaef1ddf7a

Authored by aliguori
1 parent 2e7d200b

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 <glommer@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6851 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 5 additions and 0 deletions
hw/cirrus_vga.c
... ... @@ -2637,11 +2637,16 @@ static void map_linear_vram(CirrusVGAState *s)
2637 2637  
2638 2638 s->lfb_vram_mapped = 0;
2639 2639  
  2640 + cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x8000,
  2641 + (s->vram_offset + s->cirrus_bank_base[0]) | IO_MEM_UNASSIGNED);
  2642 + cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000,
  2643 + (s->vram_offset + s->cirrus_bank_base[1]) | IO_MEM_UNASSIGNED);
2640 2644 if (!(s->cirrus_srcptr != s->cirrus_srcptr_end)
2641 2645 && !((s->sr[0x07] & 0x01) == 0)
2642 2646 && !((s->gr[0x0B] & 0x14) == 0x14)
2643 2647 && !(s->gr[0x0B] & 0x02)) {
2644 2648  
  2649 + vga_dirty_log_stop((VGAState *)s);
2645 2650 cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x8000,
2646 2651 (s->vram_offset + s->cirrus_bank_base[0]) | IO_MEM_RAM);
2647 2652 cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000,
... ...