From 13983fd93d53a1fbd85f345d0a6b916e4cece657 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Wed, 30 Apr 2008 00:52:51 -0700 Subject: [PATCH] --- yaml --- r: 95125 b: refs/heads/master c: 08d2c30ce98d274137f12b0a9b9c74137455922c h: refs/heads/master i: 95123: 4743849fb20401a5dc4c3e4d62064d30da56ac8d v: v3 --- [refs] | 2 +- trunk/kernel/signal.c | 11 +---------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 2d8dbc900d14..18d02e9e4af6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3547ff3aefbe092ca35506c60c02e2d17a4f2199 +refs/heads/master: 08d2c30ce98d274137f12b0a9b9c74137455922c diff --git a/trunk/kernel/signal.c b/trunk/kernel/signal.c index 13371d17358d..17859f0d8411 100644 --- a/trunk/kernel/signal.c +++ b/trunk/kernel/signal.c @@ -1138,8 +1138,7 @@ static int kill_something_info(int sig, struct siginfo *info, int pid) */ /* - * These two are the most common entry points. They send a signal - * just to the specific thread. + * The caller must ensure the task can't exit. */ int send_sig_info(int sig, struct siginfo *info, struct task_struct *p) @@ -1154,17 +1153,9 @@ send_sig_info(int sig, struct siginfo *info, struct task_struct *p) if (!valid_signal(sig)) return -EINVAL; - /* - * We need the tasklist lock even for the specific - * thread case (when we don't need to follow the group - * lists) in order to avoid races with "p->sighand" - * going away or changing from under us. - */ - read_lock(&tasklist_lock); spin_lock_irqsave(&p->sighand->siglock, flags); ret = specific_send_sig_info(sig, info, p); spin_unlock_irqrestore(&p->sighand->siglock, flags); - read_unlock(&tasklist_lock); return ret; }