From 6e09c5679e1874094812c4b8a185a462edd479a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 30 Jul 2007 11:54:11 +0000 Subject: [PATCH] area_for() in the kernel can now also find user areas in case you are coming from a user team. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21746 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/vm.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 8289d45ed3..e06144d318 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -4073,7 +4073,17 @@ get_memory_map(const void *address, ulong numBytes, physical_entry *table, long area_id area_for(void *address) { - return vm_area_for(vm_kernel_address_space_id(), (addr_t)address); + team_id space; + + if (IS_USER_ADDRESS(address)) { + // we try the user team address space, if any + space = vm_current_user_address_space_id(); + if (space < B_OK) + return space; + } else + space = vm_kernel_address_space_id(); + + return vm_area_for(space, (addr_t)address); }