summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2025-06-03 23:08:31 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2025-06-03 23:08:33 +0200
commitdd50871dc76c4b9ea5f127924f02ec082d88b165 (patch)
tree47e19931dacbdcbae4d5f6c721a7dcf1d59b5012
parent2fa69c06ee0a02687100d159801eaba9c1597943 (diff)
thread_create: Inherit vm_privilege between threads of the same task
So that e.g. all rumpdisk threads get vm_privilege
-rw-r--r--kern/thread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kern/thread.c b/kern/thread.c
index 69d24eaa..deb9688d 100644
--- a/kern/thread.c
+++ b/kern/thread.c
@@ -428,6 +428,9 @@ kern_return_t thread_create(
*/
new_thread->task = parent_task;
+ if (parent_task && current_thread() && current_task() != kernel_task &&
+ parent_task == current_task() && current_thread()->vm_privilege)
+ new_thread->vm_privilege = 1;
simple_lock_init(&new_thread->lock);
new_thread->sched_stamp = sched_tick;
thread_timeout_setup(new_thread);