diff options
| author | Ingo Molnar <mingo@elte.hu> | 2002-09-08 06:04:56 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-09-08 06:04:56 -0700 |
| commit | 49ba178cfe9cac97498bf83c25d34317cf207afb (patch) | |
| tree | a645170f5e54c3acd61ead0c2340c1b5f6ad4f62 /fs/exec.c | |
| parent | 86ee4c5d3de53c3b62c1e312777c16760e70a076 (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.c | 2 |
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(¤t->sigmask_lock); current->sig = newsig; spin_unlock_irq(¤t->sigmask_lock); |
