aboutsummaryrefslogtreecommitdiff
path: root/memory.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2011-08-29 09:12:49 +0300
committerAvi Kivity <avi@redhat.com>2011-08-29 11:52:09 +0300
commitb5fe14cc7efa4e3ef58f591728e69203287a9de4 (patch)
treeb935b9b4b5031423b499b7c7c249177eee3e43f8 /memory.c
parent75f5941cb583712b37a557ce61b95eeba91f520e (diff)
memory: fix rom_device I/O mode
When adding a rom_device in I/O mode, we incorrectly masked off the low bits, resulting in a pure RAM map. Fix my masking off the high bits and IO_MEM_ROMD, yielding a pure I/O map. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'memory.c')
-rw-r--r--memory.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/memory.c b/memory.c
index 1491a396ec..eb31fa8e58 100644
--- a/memory.c
+++ b/memory.c
@@ -304,7 +304,7 @@ static void as_memory_range_add(AddressSpace *as, FlatRange *fr)
}
if (!fr->readable) {
- phys_offset &= TARGET_PAGE_MASK;
+ phys_offset &= ~TARGET_PAGE_MASK & ~IO_MEM_ROMD;
}
cpu_register_physical_memory_log(fr->addr.start,