From: Eric W. Biederman Date: Thu, 7 Feb 2019 17:01:20 +0000 (-0600) Subject: signal: Factor force_sig_info_to_task out of force_sig_info X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=59c0e696a6c0fe6a8d718a43aecd72347db6a7f0;p=linux.git signal: Factor force_sig_info_to_task out of force_sig_info All callers of force_sig_info pass info.si_signo in for the signal by definition as well as in practice. Further all callers of force_sig_info except force_sig_fault_to_task pass current as the target task to force_sig_info. Factor out a static force_sig_info_to_task that force_sig_fault_to_task can call. This prepares the way for force_sig_info to have it's task and signal parameters removed. Signed-off-by: "Eric W. Biederman" --- diff --git a/kernel/signal.c b/kernel/signal.c index d5f9ed5da9c55..0984158cd41a6 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1294,12 +1294,13 @@ int do_send_sig_info(int sig, struct kernel_siginfo *info, struct task_struct *p * We don't want to have recursive SIGSEGV's etc, for example, * that is why we also clear SIGNAL_UNKILLABLE. */ -int -force_sig_info(int sig, struct kernel_siginfo *info, struct task_struct *t) +static int +force_sig_info_to_task(struct kernel_siginfo *info, struct task_struct *t) { unsigned long int flags; int ret, blocked, ignored; struct k_sigaction *action; + int sig = info->si_signo; spin_lock_irqsave(&t->sighand->siglock, flags); action = &t->sighand->action[sig-1]; @@ -1324,6 +1325,11 @@ force_sig_info(int sig, struct kernel_siginfo *info, struct task_struct *t) return ret; } +int force_sig_info(int sig, struct kernel_siginfo *info, struct task_struct *t) +{ + return force_sig_info_to_task(info, t); +} + /* * Nuke all other threads in the group. */ @@ -1656,7 +1662,7 @@ int force_sig_fault_to_task(int sig, int code, void __user *addr info.si_flags = flags; info.si_isr = isr; #endif - return force_sig_info(info.si_signo, &info, t); + return force_sig_info_to_task(&info, t); } int force_sig_fault(int sig, int code, void __user *addr