1.1 --- a/libexec/lib/src/process_creating.cc Mon Mar 06 16:04:23 2023 +0100
1.2 +++ b/libexec/lib/src/process_creating.cc Mon Mar 06 16:05:44 2023 +0100
1.3 @@ -109,12 +109,16 @@
1.4
1.5 long ProcessCreating::configure_task(l4_cap_idx_t pager)
1.6 {
1.7 - l4_cap_idx_t rparent;
1.8 - long err = _process.configure_task();
1.9 + l4_cap_idx_t task, rtask;
1.10 + long err = _process.configure_task(&task, &rtask);
1.11
1.12 if (err)
1.13 return err;
1.14
1.15 + _exec_pager->set_task(task, rtask);
1.16 +
1.17 + l4_cap_idx_t rparent;
1.18 +
1.19 err = _process.set_parent(pager, &rparent);
1.20
1.21 if (err)
1.22 @@ -135,6 +139,7 @@
1.23 if (l4_is_invalid_cap(_ipc_gate))
1.24 return -L4_ENOMEM;
1.25
1.26 + _exec_pager->set_gate(_ipc_gate);
1.27 return l4_error(l4_factory_create_gate(l4re_env()->factory, _ipc_gate, L4_INVALID_CAP, 0));
1.28 }
1.29
1.30 @@ -323,11 +328,6 @@
1.31 if (err)
1.32 return err;
1.33
1.34 - /* Note the task and IPC gate on the pager object. */
1.35 -
1.36 - _exec_pager->set_task(_process.get_task());
1.37 - _exec_pager->set_gate(_ipc_gate);
1.38 -
1.39 /* Discard instances created to initialise the process. The region mapper
1.40 relies on resources associated with its payload and stack and so these
1.41 cannot be deleted immediately.