diff --git a/repos/base-hw/src/lib/base/thread_bootstrap.cc b/repos/base-hw/src/lib/base/thread_bootstrap.cc index 48e0754f4a..df7e82e0e1 100644 --- a/repos/base-hw/src/lib/base/thread_bootstrap.cc +++ b/repos/base-hw/src/lib/base/thread_bootstrap.cc @@ -46,12 +46,15 @@ void prepare_init_main_thread() */ Native_utcb * utcb = Thread::myself()->utcb(); _parent_cap = Capability_space::import(utcb->cap_get(Native_utcb::PARENT)); + Kernel::ack_cap(Capability_space::capid(_parent_cap)); Untyped_capability ds_cap = Capability_space::import(utcb->cap_get(Native_utcb::UTCB_DATASPACE)); _main_thread_utcb_ds = reinterpret_cap_cast(ds_cap); + Kernel::ack_cap(Capability_space::capid(_main_thread_utcb_ds)); _main_thread_cap = Capability_space::import(utcb->cap_get(Native_utcb::THREAD_MYSELF)); + Kernel::ack_cap(Capability_space::capid(_main_thread_cap)); } @@ -83,4 +86,6 @@ void Thread::_thread_bootstrap() { Kernel::capid_t capid = myself()->utcb()->cap_get(Native_utcb::THREAD_MYSELF); native_thread().cap = Capability_space::import(capid); + if (native_thread().cap.valid()) + Kernel::ack_cap(Capability_space::capid(native_thread().cap)); }