From 7660bcab825777d46038e1b7eacb085598e2a7eb Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Thu, 16 Apr 2026 22:00:42 +0200 Subject: [PATCH] proc_wait_for () lock wait_proc to avoid races --- kernel/proc/proc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/proc/proc.c b/kernel/proc/proc.c index 8b326f9..80baef1 100644 --- a/kernel/proc/proc.c +++ b/kernel/proc/proc.c @@ -378,7 +378,11 @@ void proc_kill (struct proc* proc, struct reschedule_ctx* rctx) { } void proc_wait_for (struct proc* proc, struct reschedule_ctx* rctx, struct proc* wait_proc) { + uint64_t fwp; + + spin_lock (&wait_proc->lock, &fwp); proc_sq_suspend (proc, &wait_proc->done_sq, NULL, 0, rctx, NULL, NULL); + spin_unlock (&wait_proc->lock, fwp); } void proc_irq_sched (void* arg, void* regs, bool user, struct reschedule_ctx* rctx) {