qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] exec: Fix walk_memory_regions


From: Toshiki Iwata
Subject: [Qemu-devel] [PATCH] exec: Fix walk_memory_regions
Date: Wed, 3 Oct 2012 04:01:25 +0900

This patch fixes strange output of page_dump.

Signed-off-by: Toshiki Iwata <address@hidden>
---
Example(in the case of TARGET_PAGE_BITS=12)
[Before]
start    end      size     prot
00000000-00001000 00001000 ---
00001000-00002000 00001000 r-x
00002000-00003000 00001000 rw-
00003000-00004000 00001000 r--
00040000-00041800 00001800 rw- <-- strange
[After]
start    end      size     prot
00000000-00001000 00001000 ---
00001000-00002000 00001000 r-x
00002000-00003000 00001000 rw-
00003000-00004000 00001000 r--
40000000-40801000 00801000 rw- <-- right

exec.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/exec.c b/exec.c
index bb6aa4a..ced8231 100644
--- a/exec.c
+++ b/exec.c
@@ -1991,8 +1991,9 @@ int walk_memory_regions(void *priv, walk_memory_regions_fn fn)
    data.prot = 0;

    for (i = 0; i < V_L1_SIZE; i++) {
- int rc = walk_memory_regions_1(&data, (abi_ulong)i << V_L1_SHIFT, - V_L1_SHIFT / L2_BITS - 1, l1_map + i);
+        int rc = walk_memory_regions_1(&data,
+ (abi_ulong)i << (TARGET_PAGE_BITS + V_L1_SHIFT),
+                                V_L1_SHIFT / L2_BITS - 1, l1_map + i);
        if (rc != 0) {
            return rc;
        }
--
1.7.11.4



reply via email to

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