mirror of
https://github.com/xemu-project/xemu.git
synced 2024-12-11 21:44:04 +00:00
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
This commit is contained in:
parent
2e7d200bff
commit
8a93e519f3
@ -2637,11 +2637,16 @@ static void map_linear_vram(CirrusVGAState *s)
|
|||||||
|
|
||||||
s->lfb_vram_mapped = 0;
|
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)
|
if (!(s->cirrus_srcptr != s->cirrus_srcptr_end)
|
||||||
&& !((s->sr[0x07] & 0x01) == 0)
|
&& !((s->sr[0x07] & 0x01) == 0)
|
||||||
&& !((s->gr[0x0B] & 0x14) == 0x14)
|
&& !((s->gr[0x0B] & 0x14) == 0x14)
|
||||||
&& !(s->gr[0x0B] & 0x02)) {
|
&& !(s->gr[0x0B] & 0x02)) {
|
||||||
|
|
||||||
|
vga_dirty_log_stop((VGAState *)s);
|
||||||
cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x8000,
|
cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x8000,
|
||||||
(s->vram_offset + s->cirrus_bank_base[0]) | IO_MEM_RAM);
|
(s->vram_offset + s->cirrus_bank_base[0]) | IO_MEM_RAM);
|
||||||
cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000,
|
cpu_register_physical_memory(isa_mem_base + 0xa8000, 0x8000,
|
||||||
|
Loading…
Reference in New Issue
Block a user