Commit 52cba1a2 authored by Christian Brauner's avatar Christian Brauner Committed by Linus Torvalds

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.ioSigned-off-by: default avatarChristian Brauner <christian@brauner.io>
Reviewed-by: default avatarAndrew 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f423420c
...@@ -314,7 +314,7 @@ int force_sig_pkuerr(void __user *addr, u32 pkey); ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment