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),
