diff options
| author | Andrew Morton <akpm@digeo.com> | 2003-06-14 00:10:30 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-06-14 00:10:30 -0700 |
| commit | 9936b07d04c17f9d438ae9b404d042c8da329e96 (patch) | |
| tree | 69c3da285a5871db99751ab7b9130d38a187aa9e | |
| parent | 40d45b93e39c96fe3aa8dbc7d9441dd695af6bfe (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.c | 1 |
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); |
