diff options
author | neal <neal> | 2008-06-20 08:55:00 +0000 |
---|---|---|
committer | neal <neal> | 2008-06-20 08:55:00 +0000 |
commit | f91025d06a22726ffa59fd657c354252b8b845b5 (patch) | |
tree | 364765e5f62c78f4cc5006c48f13748c8fe5b105 /libhurd-mm/map.c | |
parent | 82b453e5938ad1f4ef78999209ceaef2af06b1be (diff) |
2008-06-20 Neal H. Walfield <neal@gnu.org>
* map.c (map_split): Update SECOND->OFFSET.
Diffstat (limited to 'libhurd-mm/map.c')
-rw-r--r-- | libhurd-mm/map.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/libhurd-mm/map.c b/libhurd-mm/map.c index 6ae951a..4c3ebb2 100644 --- a/libhurd-mm/map.c +++ b/libhurd-mm/map.c @@ -250,12 +250,13 @@ map_split (struct map *map, uintptr_t offset) second->region.start = map->region.start + offset; second->region.length = map->region.length - offset; + second->offset += offset; /* This is kosher: it does not change the ordering of the mapping in the tree. */ map->region.length = offset; - debug (0, "%x+%x, %x+%x", + debug (5, "%x+%x, %x+%x", map->region.start, map->region.length, second->region.start, second->region.length); @@ -329,15 +330,17 @@ map_fault (addr_t fault_addr, uintptr_t ip, struct exception_info info) struct map *map = map_find (region); if (! map) { - debug (0, "No map covers " ADDR_FMT "(" EXCEPTION_INFO_FMT ")", - ADDR_PRINTF (fault_addr), - EXCEPTION_INFO_PRINTF (info)); - - for (map = hurd_btree_map_first (&maps); - map; - map = hurd_btree_map_next (map)) - debug (0, MAP_FMT, MAP_PRINTF (map)); - + do_debug (5) + { + debug (0, "No map covers " ADDR_FMT "(" EXCEPTION_INFO_FMT ")", + ADDR_PRINTF (fault_addr), + EXCEPTION_INFO_PRINTF (info)); + for (map = hurd_btree_map_first (&maps); + map; + map = hurd_btree_map_next (map)) + debug (0, MAP_FMT, MAP_PRINTF (map)); + } + maps_lock_unlock (); return false; } @@ -364,7 +367,7 @@ map_fault (addr_t fault_addr, uintptr_t ip, struct exception_info info) bool r = pager->fault (pager, offset, 1, ro, (uintptr_t) ADDR_TO_PTR (fault_addr), ip, info); if (! r) - debug (0, "Map did not resolve fault at " ADDR_FMT, + debug (5, "Map did not resolve fault at " ADDR_FMT, ADDR_PRINTF (fault_addr)); return r; |