summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-06-14 00:10:30 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-06-14 00:10:30 -0700
commit9936b07d04c17f9d438ae9b404d042c8da329e96 (patch)
tree69c3da285a5871db99751ab7b9130d38a187aa9e
parent40d45b93e39c96fe3aa8dbc7d9441dd695af6bfe (diff)
[PATCH] fix deadlock over proc_lock
From: Manfred Spraul <manfred@colorfullife.com> Martin found out what caused the deadlocks with 2.5.70 and SDET: I forgot to initialize proc_lock during fork(). Usually this works, because the parent lock is unlocked. But a proc lookup during fork can cause it to be locked, and then the system locks up.
-rw-r--r--kernel/fork.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 7fe73cf41ac5..fba722be316e 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -846,6 +846,7 @@ struct task_struct *copy_process(unsigned long clone_flags,
p->vfork_done = NULL;
spin_lock_init(&p->alloc_lock);
spin_lock_init(&p->switch_lock);
+ spin_lock_init(&p->proc_lock);
clear_tsk_thread_flag(p, TIF_SIGPENDING);
init_sigpending(&p->pending);