From a5283283f6199a58c14dbd84f422c8957922f059 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Fri, 9 Jan 2026 00:00:18 +0100 Subject: [PATCH] Hold proc->lock while killing the process --- kernel/proc/proc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/kernel/proc/proc.c b/kernel/proc/proc.c index 1c1c4c9..1c3e95b 100644 --- a/kernel/proc/proc.c +++ b/kernel/proc/proc.c @@ -24,12 +24,6 @@ #include #endif -/* - * Lock ordering: - * 1. proc_tree_lock - * 2. [cpu]->lock - */ - static struct rb_node_link* proc_tree = NULL; static spin_lock_t proc_tree_lock = SPIN_LOCK_INIT; @@ -266,7 +260,9 @@ void proc_kill (struct proc* proc) { atomic_store (&proc->state, PROC_DEAD); spin_lock (&proc_tree_lock); + spin_lock (&proc->lock); rbtree_delete (&proc_tree, &proc->proc_tree_link); + spin_unlock (&proc->lock); spin_unlock (&proc_tree_lock); struct cpu* cpu = proc->cpu;