[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] exec: fix regression by making system-memory region
From: |
Marcel Apfelbaum |
Subject: |
[Qemu-devel] [PATCH] exec: fix regression by making system-memory region UINT64_MAX size |
Date: |
Sun, 3 Nov 2013 22:48:43 +0200 |
The commit:
Commit: a53ae8e934cd54686875b5bcfc2f434244ee55d6
Author: Marcel Apfelbaum <address@hidden>
Date: Mon Sep 16 11:21:16 2013 +0300
hw/pci: partially handle pci master abort
introduced a regression on make check:
qemu-system-mips64el: /home/andreas/QEMU/qemu-cpu/exec.c:802:
register_subpage: Assertion `existing->mr->subpage || existing->mr ==
&io_mem_unassigned' failed.
The problem appears when a root memory region within an
address space with size < UINT64_MAX has overlapping children
with the same size. If the size of the root memory region is UINT64_MAX
everyting is ok.
Solved the regression by making the system-memory region
of size UINT64_MAX instead of INT64_MAX.
Signed-off-by: Marcel Apfelbaum <address@hidden>
---
In the mean time I am investigating why the
root memory region has to be UINT64_MAX size in order
to have overlapping children
exec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/exec.c b/exec.c
index b453713..8715cf4 100644
--- a/exec.c
+++ b/exec.c
@@ -1741,7 +1741,7 @@ void address_space_destroy_dispatch(AddressSpace *as)
static void memory_map_init(void)
{
system_memory = g_malloc(sizeof(*system_memory));
- memory_region_init(system_memory, NULL, "system", INT64_MAX);
+ memory_region_init(system_memory, NULL, "system", UINT64_MAX);
address_space_init(&address_space_memory, system_memory, "memory");
system_io = g_malloc(sizeof(*system_io));
--
1.8.3.1