From 51489e2f82b39fd2c93fdf64185d313ccc2b3932 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Fri, 12 Dec 2014 20:15:02 +0100 Subject: [PATCH] vmm: fix overmap attempts by seoul and vbox If the debug branch of the nova kernel is used, following messages are printed by the kernel during vCPU setup phase: [0] overmap attempt OBJ - tree - ... Fixes #1324 --- repos/base-nova/include/nova/util.h | 4 ++-- repos/base-nova/src/base/thread/thread_nova.cc | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/repos/base-nova/include/nova/util.h b/repos/base-nova/include/nova/util.h index 37d4b5d656..28c0c15975 100644 --- a/repos/base-nova/include/nova/util.h +++ b/repos/base-nova/include/nova/util.h @@ -56,8 +56,8 @@ inline void request_event_portal(Genode::Native_capability const &cap, inline void request_native_ec_cap(Genode::Native_capability const &cap, - Genode::addr_t sel, unsigned pager_cap = 1) { - request_event_portal(cap, sel , ~0UL, pager_cap); } + Genode::addr_t sel, unsigned no_pager_cap = 0) { + request_event_portal(cap, sel , ~0UL, no_pager_cap); } inline void request_signal_sm_cap(Genode::Native_capability const &cap, diff --git a/repos/base-nova/src/base/thread/thread_nova.cc b/repos/base-nova/src/base/thread/thread_nova.cc index 45777efa89..d25479fd9b 100644 --- a/repos/base-nova/src/base/thread/thread_nova.cc +++ b/repos/base-nova/src/base/thread/thread_nova.cc @@ -85,8 +85,7 @@ void Thread_base::_init_platform_thread(size_t, Type type) _tid.exc_pt_sel = 0; _tid.ec_sel = Nova::PT_SEL_MAIN_EC; - enum { DONT_MAP_PAGER_CAP = 0 }; - request_native_ec_cap(_pager_cap, _tid.ec_sel, DONT_MAP_PAGER_CAP); + request_native_ec_cap(_pager_cap, _tid.ec_sel); return; } @@ -179,7 +178,9 @@ void Thread_base::start() if (_tid.ec_sel == Native_thread::INVALID_INDEX) throw Cpu_session::Thread_creation_failed(); - request_native_ec_cap(_pager_cap, _tid.ec_sel); + /* requested pager cap used by request_native_ec_cap in Signal_source_client */ + enum { MAP_PAGER_CAP = 1 }; + request_native_ec_cap(_pager_cap, _tid.ec_sel, MAP_PAGER_CAP); using namespace Nova;