summaryrefslogtreecommitdiffstats
path: root/hw
diff options
context:
space:
mode:
authorAvi Kivity2011-08-01 10:03:42 +0200
committerAvi Kivity2011-08-25 09:56:33 +0200
commitcf9182e2290732be9f8d4f73ba3d6f3484380450 (patch)
tree31d076bf7d9f71bde7047a65b64532de6d90c2e3 /hw
parentleon3: convert to memory API (diff)
downloadqemu-cf9182e2290732be9f8d4f73ba3d6f3484380450.tar.gz
qemu-cf9182e2290732be9f8d4f73ba3d6f3484380450.tar.xz
qemu-cf9182e2290732be9f8d4f73ba3d6f3484380450.zip
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>
Diffstat (limited to 'hw')
-rw-r--r--hw/cirrus_vga.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 4d0ef0d54c..ec7ea8207b 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -2424,6 +2424,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
{
unsigned mode;
+ memory_region_transaction_begin();
if ((s->vga.sr[0x17] & 0x44) == 0x44) {
goto generic_io;
} 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);
}
}
+ memory_region_transaction_commit();
}