signal: make force_sigsegv() void
Patch series "signal: refactor some functions", v3. This series refactors a bunch of functions in signal.c to simplify parts of the code. The greatest single change is declaring the static do_sigpending() helper as void which makes it possible to remove a bunch of unnecessary checks in the syscalls later on. This patch (of 17): force_sigsegv() returned 0 unconditionally so it doesn't make sense to have it return at all. In addition, there are no callers that check force_sigsegv()'s return value. Link: http://lkml.kernel.org/r/20180602103653.18181-2-christian@brauner.io Signed-off-by: Christian Brauner <christian@brauner.io> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: James Morris <james.morris@microsoft.com> Cc: Kees Cook <keescook@chromium.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephen Smalley <sds@tycho.nsa.gov> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f423420c23
commit
52cba1a274
|
@ -314,7 +314,7 @@ int force_sig_pkuerr(void __user *addr, u32 pkey);
|
||||||
int force_sig_ptrace_errno_trap(int errno, void __user *addr);
|
int force_sig_ptrace_errno_trap(int errno, void __user *addr);
|
||||||
|
|
||||||
extern int send_sig_info(int, struct siginfo *, struct task_struct *);
|
extern int send_sig_info(int, struct siginfo *, struct task_struct *);
|
||||||
extern int force_sigsegv(int, struct task_struct *);
|
extern void force_sigsegv(int sig, struct task_struct *p);
|
||||||
extern int force_sig_info(int, struct siginfo *, struct task_struct *);
|
extern int force_sig_info(int, struct siginfo *, struct task_struct *);
|
||||||
extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
|
extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
|
||||||
extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid);
|
extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid);
|
||||||
|
|
|
@ -1458,8 +1458,7 @@ send_sig(int sig, struct task_struct *p, int priv)
|
||||||
return send_sig_info(sig, __si_special(priv), p);
|
return send_sig_info(sig, __si_special(priv), p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void force_sig(int sig, struct task_struct *p)
|
||||||
force_sig(int sig, struct task_struct *p)
|
|
||||||
{
|
{
|
||||||
force_sig_info(sig, SEND_SIG_PRIV, p);
|
force_sig_info(sig, SEND_SIG_PRIV, p);
|
||||||
}
|
}
|
||||||
|
@ -1470,8 +1469,7 @@ force_sig(int sig, struct task_struct *p)
|
||||||
* the problem was already a SIGSEGV, we'll want to
|
* the problem was already a SIGSEGV, we'll want to
|
||||||
* make sure we don't even try to deliver the signal..
|
* make sure we don't even try to deliver the signal..
|
||||||
*/
|
*/
|
||||||
int
|
void force_sigsegv(int sig, struct task_struct *p)
|
||||||
force_sigsegv(int sig, struct task_struct *p)
|
|
||||||
{
|
{
|
||||||
if (sig == SIGSEGV) {
|
if (sig == SIGSEGV) {
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
@ -1480,7 +1478,6 @@ force_sigsegv(int sig, struct task_struct *p)
|
||||||
spin_unlock_irqrestore(&p->sighand->siglock, flags);
|
spin_unlock_irqrestore(&p->sighand->siglock, flags);
|
||||||
}
|
}
|
||||||
force_sig(SIGSEGV, p);
|
force_sig(SIGSEGV, p);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int force_sig_fault(int sig, int code, void __user *addr
|
int force_sig_fault(int sig, int code, void __user *addr
|
||||||
|
|
Loading…
Reference in New Issue