diff --git a/repos/base-nova/include/nova/util.h b/repos/base-nova/include/nova/util.h index 37d4b5d65..28c0c1597 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 45777efa8..d25479fd9 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;