Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 11825
b: refs/heads/master
c: 19a4fcb
h: refs/heads/master
i:
  11823: 18cce6f
v: v3
  • Loading branch information
Oleg Nesterov authored and Linus Torvalds committed Oct 31, 2005
1 parent 09858dc commit 2879c26
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 932aeafbe8521a9a9d790152d66020e0fef2029b
refs/heads/master: 19a4fcb531659f2f7d18b5d04cee039176e9540d
1 change: 0 additions & 1 deletion trunk/include/linux/signal.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

struct sigqueue {
struct list_head list;
spinlock_t *lock;
int flags;
siginfo_t info;
struct user_struct *user;
Expand Down
10 changes: 4 additions & 6 deletions trunk/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,6 @@ static struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags,
} else {
INIT_LIST_HEAD(&q->list);
q->flags = 0;
q->lock = NULL;
q->user = get_uid(t->user);
}
return(q);
Expand Down Expand Up @@ -1371,11 +1370,12 @@ void sigqueue_free(struct sigqueue *q)
* pending queue.
*/
if (unlikely(!list_empty(&q->list))) {
read_lock(&tasklist_lock);
spin_lock_irqsave(q->lock, flags);
spinlock_t *lock = &current->sighand->siglock;
read_lock(&tasklist_lock);
spin_lock_irqsave(lock, flags);
if (!list_empty(&q->list))
list_del_init(&q->list);
spin_unlock_irqrestore(q->lock, flags);
spin_unlock_irqrestore(lock, flags);
read_unlock(&tasklist_lock);
}
q->flags &= ~SIGQUEUE_PREALLOC;
Expand Down Expand Up @@ -1414,7 +1414,6 @@ send_sigqueue(int sig, struct sigqueue *q, struct task_struct *p)
goto out;
}

q->lock = &p->sighand->siglock;
list_add_tail(&q->list, &p->pending.list);
sigaddset(&p->pending.signal, sig);
if (!sigismember(&p->blocked, sig))
Expand Down Expand Up @@ -1462,7 +1461,6 @@ send_group_sigqueue(int sig, struct sigqueue *q, struct task_struct *p)
* We always use the shared queue for process-wide signals,
* to avoid several races.
*/
q->lock = &p->sighand->siglock;
list_add_tail(&q->list, &p->signal->shared_pending.list);
sigaddset(&p->signal->shared_pending.signal, sig);

Expand Down

0 comments on commit 2879c26

Please sign in to comment.