signals: send_group_sigqueue: don't take tasklist_lock
handle_stop_signal() was changed, now send_group_sigqueue() doesn't need tasklist_lock. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: Roland McGrath <roland@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f8c5b5c06f
commit
c99fcf28b8
@ -1335,7 +1335,6 @@ send_group_sigqueue(int sig, struct sigqueue *q, struct task_struct *p)
|
|||||||
|
|
||||||
BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
|
BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
|
||||||
|
|
||||||
read_lock(&tasklist_lock);
|
|
||||||
/* Since it_lock is held, p->sighand cannot be NULL. */
|
/* Since it_lock is held, p->sighand cannot be NULL. */
|
||||||
spin_lock_irqsave(&p->sighand->siglock, flags);
|
spin_lock_irqsave(&p->sighand->siglock, flags);
|
||||||
|
|
||||||
@ -1344,7 +1343,7 @@ send_group_sigqueue(int sig, struct sigqueue *q, struct task_struct *p)
|
|||||||
__group_complete_signal(sig, p);
|
__group_complete_signal(sig, p);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&p->sighand->siglock, flags);
|
spin_unlock_irqrestore(&p->sighand->siglock, flags);
|
||||||
read_unlock(&tasklist_lock);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user