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" <ebiederm@xmission.com>
This commit is contained in:
Родитель
ffafd23b2c
Коммит
59c0e696a6
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче