diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2018-07-20 15:49:17 -0500 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2018-07-21 12:57:35 -0500 |
commit | b213984bd3987e6f5bf96b7847d151b7b42e1efd (patch) | |
tree | 81af46e8475ad4d67426d847cf1310c720cc6fa9 /kernel/signal.c | |
parent | 40b3b02535621027f56d248139e0e467573c3098 (diff) | |
download | linux-b213984bd3987e6f5bf96b7847d151b7b42e1efd.tar.gz linux-b213984bd3987e6f5bf96b7847d151b7b42e1efd.tar.bz2 linux-b213984bd3987e6f5bf96b7847d151b7b42e1efd.zip |
signal: Push pid type down into send_signal
This information is already available in the callers and by pushing it
down it makes the code a little clearer, and allows better group
signal behavior in fork.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 2c09e6143dd8..8decc70c1dc2 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1103,7 +1103,7 @@ ret: } static int send_signal(int sig, struct siginfo *info, struct task_struct *t, - int group) + enum pid_type type) { int from_ancestor_ns = 0; @@ -1112,7 +1112,7 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t, !task_pid_nr_ns(current, task_active_pid_ns(t)); #endif - return __send_signal(sig, info, t, group, from_ancestor_ns); + return __send_signal(sig, info, t, type != PIDTYPE_PID, from_ancestor_ns); } static void print_fatal_signal(int signr) @@ -1151,13 +1151,13 @@ __setup("print-fatal-signals=", setup_print_fatal_signals); int __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) { - return send_signal(sig, info, p, 1); + return send_signal(sig, info, p, PIDTYPE_TGID); } static int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) { - return send_signal(sig, info, t, 0); + return send_signal(sig, info, t, PIDTYPE_PID); } int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p, @@ -1167,7 +1167,7 @@ int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p, int ret = -ESRCH; if (lock_task_sighand(p, &flags)) { - ret = send_signal(sig, info, p, type != PIDTYPE_PID); + ret = send_signal(sig, info, p, type); unlock_task_sighand(p, &flags); } @@ -3966,7 +3966,7 @@ void kdb_send_sig(struct task_struct *t, int sig) "the deadlock.\n"); return; } - ret = send_signal(sig, SEND_SIG_PRIV, t, false); + ret = send_signal(sig, SEND_SIG_PRIV, t, PIDTYPE_PID); spin_unlock(&t->sighand->siglock); if (ret) kdb_printf("Fail to deliver Signal %d to process %d.\n", |