diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-27 13:58:59 -0400 | 
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-01 12:58:51 -0400 | 
| commit | 77097ae503b170120ab66dd1d547f8577193f91f (patch) | |
| tree | bee5b2e8d91b9ec8ab74c58cbec1796c7bacc2e5 /arch/sparc/kernel | |
| parent | edd63a2763bdae0daa4f0a4d4c5d61d1154352a5 (diff) | |
| download | olio-linux-3.10-77097ae503b170120ab66dd1d547f8577193f91f.tar.xz olio-linux-3.10-77097ae503b170120ab66dd1d547f8577193f91f.zip  | |
most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set
Only 3 out of 63 do not.  Renamed the current variant to __set_current_blocked(),
added set_current_blocked() that will exclude unblockable signals, switched
open-coded instances to it.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sparc/kernel')
| -rw-r--r-- | arch/sparc/kernel/signal32.c | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/signal_32.c | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/signal_64.c | 4 | 
3 files changed, 0 insertions, 12 deletions
diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c index 8c93c00922a..ba3dbfcdb28 100644 --- a/arch/sparc/kernel/signal32.c +++ b/arch/sparc/kernel/signal32.c @@ -32,8 +32,6 @@  #include "sigutil.h" -#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) -  /* This magic should be in g_upper[0] for all upper parts   * to be valid.   */ @@ -274,7 +272,6 @@ void do_sigreturn32(struct pt_regs *regs)  		case 2: set.sig[1] = seta[2] + (((long)seta[3]) << 32);  		case 1: set.sig[0] = seta[0] + (((long)seta[1]) << 32);  	} -	sigdelsetmask(&set, ~_BLOCKABLE);  	set_current_blocked(&set);  	return; @@ -376,7 +373,6 @@ asmlinkage void do_rt_sigreturn32(struct pt_regs *regs)  		case 2: set.sig[1] = seta.sig[2] + (((long)seta.sig[3]) << 32);  		case 1: set.sig[0] = seta.sig[0] + (((long)seta.sig[1]) << 32);  	} -	sigdelsetmask(&set, ~_BLOCKABLE);  	set_current_blocked(&set);  	return;  segv: diff --git a/arch/sparc/kernel/signal_32.c b/arch/sparc/kernel/signal_32.c index f6722427203..1bfa854be60 100644 --- a/arch/sparc/kernel/signal_32.c +++ b/arch/sparc/kernel/signal_32.c @@ -29,8 +29,6 @@  #include "sigutil.h" -#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) -  extern void fpsave(unsigned long *fpregs, unsigned long *fsr,  		   void *fpqueue, unsigned long *fpqdepth);  extern void fpload(unsigned long *fpregs, unsigned long *fsr); @@ -130,7 +128,6 @@ asmlinkage void do_sigreturn(struct pt_regs *regs)  	if (err)  		goto segv_and_exit; -	sigdelsetmask(&set, ~_BLOCKABLE);  	set_current_blocked(&set);  	return; @@ -197,7 +194,6 @@ asmlinkage void do_rt_sigreturn(struct pt_regs *regs)  			goto segv;  	} -	sigdelsetmask(&set, ~_BLOCKABLE);  	set_current_blocked(&set);  	return;  segv: diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c index febbc4b697b..23b60caa6c4 100644 --- a/arch/sparc/kernel/signal_64.c +++ b/arch/sparc/kernel/signal_64.c @@ -38,8 +38,6 @@  #include "systbls.h"  #include "sigutil.h" -#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) -  /* {set, get}context() needed for 64-bit SparcLinux userland. */  asmlinkage void sparc64_set_context(struct pt_regs *regs)  { @@ -71,7 +69,6 @@ asmlinkage void sparc64_set_context(struct pt_regs *regs)  			if (__copy_from_user(&set, &ucp->uc_sigmask, sizeof(sigset_t)))  				goto do_sigsegv;  		} -		sigdelsetmask(&set, ~_BLOCKABLE);  		set_current_blocked(&set);  	}  	if (test_thread_flag(TIF_32BIT)) { @@ -315,7 +312,6 @@ void do_rt_sigreturn(struct pt_regs *regs)  	/* Prevent syscall restart.  */  	pt_regs_clear_syscall(regs); -	sigdelsetmask(&set, ~_BLOCKABLE);  	set_current_blocked(&set);  	return;  segv:  |