[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read |
Date: |
Fri, 24 May 2013 19:05:40 +0200 |
We will soon reach this case when doing (unaligned) accesses that
partly span past the end of memory. We do not want to crash in
that case.
unassigned_mem_ops and rom_mem_ops are now the same.
Signed-off-by: Paolo Bonzini <address@hidden>
---
exec.c | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/exec.c b/exec.c
index 7e22980..785eeeb 100644
--- a/exec.c
+++ b/exec.c
@@ -1412,18 +1412,6 @@ static const MemoryRegionOps unassigned_mem_ops = {
.endianness = DEVICE_NATIVE_ENDIAN,
};
-static uint64_t error_mem_read(void *opaque, hwaddr addr,
- unsigned size)
-{
- abort();
-}
-
-static const MemoryRegionOps rom_mem_ops = {
- .read = error_mem_read,
- .write = unassigned_mem_write,
- .endianness = DEVICE_NATIVE_ENDIAN,
-};
-
static void notdirty_mem_write(void *opaque, hwaddr ram_addr,
uint64_t val, unsigned size)
{
@@ -1455,7 +1443,7 @@ static void notdirty_mem_write(void *opaque, hwaddr
ram_addr,
}
static const MemoryRegionOps notdirty_mem_ops = {
- .read = error_mem_read,
+ .read = unassigned_mem_read,
.write = notdirty_mem_write,
.endianness = DEVICE_NATIVE_ENDIAN,
};
@@ -1676,7 +1664,7 @@ MemoryRegion *iotlb_to_region(hwaddr index)
static void io_mem_init(void)
{
- memory_region_init_io(&io_mem_rom, &rom_mem_ops, NULL, "rom", UINT64_MAX);
+ memory_region_init_io(&io_mem_rom, &unassigned_mem_ops, NULL, "rom",
UINT64_MAX);
memory_region_init_io(&io_mem_unassigned, &unassigned_mem_ops, NULL,
"unassigned", UINT64_MAX);
memory_region_init_io(&io_mem_notdirty, ¬dirty_mem_ops, NULL,
--
1.8.1.4
- [Qemu-devel] [PATCH 00/22] Memory/IOMMU patches, part 2: unassigned access detection, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 02/22] exec: drop useless #if, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 01/22] exec: eliminate io_mem_ram, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 03/22] cputlb: simplify tlb_set_page, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 04/22] exec: make io_mem_unassigned private, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 05/22] exec: do not use error_mem_read,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 06/22] memory: dispatch unassigned accesses based on .valid.accepts, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 08/22] memory: move unassigned_mem_ops to memory.c, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 07/22] memory: add address_space_translate, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 09/22] memory: assign MemoryRegionOps to all regions, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 11/22] exec: introduce memory_access_is_direct, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 12/22] exec: introduce memory_access_size, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 10/22] exec: expect mr->ops to be initialized for ROM, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 13/22] memory: export memory_region_access_valid to exec.c, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 14/22] exec: implement .valid.accepts for subpages, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 20/22] exec: just use io_mem_read/io_mem_write for 8-byte I/O accesses, Paolo Bonzini, 2013/05/24