Commit 8a93e519f32c40ebc41503fd18607dcaef1ddf7a
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, | ... | ... |