diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2018-07-20 14:30:23 -0500 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2018-07-21 10:43:12 -0500 |
commit | 24122c7f4969adeeaeca3fb1656a31569e9aa59b (patch) | |
tree | 723eaf26f05f49f54df40fc6af0155f5eb880738 /include/linux/sched/signal.h | |
parent | 2118e1f53f6f0973a1d9a6a7dc9296959bf39ec0 (diff) | |
download | lwn-24122c7f4969adeeaeca3fb1656a31569e9aa59b.tar.gz lwn-24122c7f4969adeeaeca3fb1656a31569e9aa59b.zip |
signal: Pass pid and pid type into send_sigqueue
Make the code more maintainable by performing more of the signal
related work in send_sigqueue.
A quick inspection of do_timer_create will show that this code path
does not lookup a thread group by a thread's pid. Making it safe
to find the task pointed to by it_pid with "pid_task(it_pid, type)";
This supports the changes needed in fork to tell if a signal was sent
to a single process or a group of processes.
Having the pid to task transition in signal.c will also make it easier
to sort out races with de_thread and and the thread group leader
exiting when it comes time to address that.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'include/linux/sched/signal.h')
-rw-r--r-- | include/linux/sched/signal.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h index ee30a5ba475f..94558ffa82ab 100644 --- a/include/linux/sched/signal.h +++ b/include/linux/sched/signal.h @@ -330,7 +330,7 @@ extern int send_sig(int, struct task_struct *, int); extern int zap_other_threads(struct task_struct *p); extern struct sigqueue *sigqueue_alloc(void); extern void sigqueue_free(struct sigqueue *); -extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group); +extern int send_sigqueue(struct sigqueue *, struct pid *, enum pid_type); extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); static inline int restart_syscall(void) |