mirror of
https://github.com/qemu/qemu.git
synced 2025-08-09 19:15:32 +00:00
cirrus: wrap memory update in a transaction
This prevents spurious unmapping and remapping of the vga windows, which reduces performance. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
a4911d6425
commit
64c048f4a8
@ -2424,6 +2424,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
|
|||||||
{
|
{
|
||||||
unsigned mode;
|
unsigned mode;
|
||||||
|
|
||||||
|
memory_region_transaction_begin();
|
||||||
if ((s->vga.sr[0x17] & 0x44) == 0x44) {
|
if ((s->vga.sr[0x17] & 0x44) == 0x44) {
|
||||||
goto generic_io;
|
goto generic_io;
|
||||||
} else if (s->cirrus_srcptr != s->cirrus_srcptr_end) {
|
} else if (s->cirrus_srcptr != s->cirrus_srcptr_end) {
|
||||||
@ -2443,6 +2444,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
|
|||||||
unmap_linear_vram(s);
|
unmap_linear_vram(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
memory_region_transaction_commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user