summaryrefslogtreecommitdiff
path: root/fs/exec.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2002-09-08 06:04:56 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-09-08 06:04:56 -0700
commit49ba178cfe9cac97498bf83c25d34317cf207afb (patch)
treea645170f5e54c3acd61ead0c2340c1b5f6ad4f62 /fs/exec.c
parent86ee4c5d3de53c3b62c1e312777c16760e70a076 (diff)
[PATCH] Re: pinpointed: PANIC caused by dequeue_signal() in current Linus
This fixes the bootup crash. There were two initialization bugs: - INIT_SIGNAL needs to set shared_pending. - exec() needs to set up newsig properly. the second one caused the crash Anton saw.
Diffstat (limited to 'fs/exec.c')
-rw-r--r--fs/exec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/exec.c b/fs/exec.c
index 9c00b733fcee..9344e1ec3894 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -514,6 +514,8 @@ static inline int make_private_signals(void)
spin_lock_init(&newsig->siglock);
atomic_set(&newsig->count, 1);
memcpy(newsig->action, current->sig->action, sizeof(newsig->action));
+ init_sigpending(&newsig->shared_pending);
+
spin_lock_irq(&current->sigmask_lock);
current->sig = newsig;
spin_unlock_irq(&current->sigmask_lock);