qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]