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/sh/kernel | |
| parent | edd63a2763bdae0daa4f0a4d4c5d61d1154352a5 (diff) | |
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/sh/kernel')
| -rw-r--r-- | arch/sh/kernel/signal_32.c | 4 | ||||
| -rw-r--r-- | arch/sh/kernel/signal_64.c | 4 |
2 files changed, 0 insertions, 8 deletions
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c index 2675a97f374..e4a531414e1 100644 --- a/arch/sh/kernel/signal_32.c +++ b/arch/sh/kernel/signal_32.c | |||
| @@ -32,8 +32,6 @@ | |||
| 32 | #include <asm/syscalls.h> | 32 | #include <asm/syscalls.h> |
| 33 | #include <asm/fpu.h> | 33 | #include <asm/fpu.h> |
| 34 | 34 | ||
| 35 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | ||
| 36 | |||
| 37 | struct fdpic_func_descriptor { | 35 | struct fdpic_func_descriptor { |
| 38 | unsigned long text; | 36 | unsigned long text; |
| 39 | unsigned long GOT; | 37 | unsigned long GOT; |
| @@ -226,7 +224,6 @@ asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, | |||
| 226 | sizeof(frame->extramask)))) | 224 | sizeof(frame->extramask)))) |
| 227 | goto badframe; | 225 | goto badframe; |
| 228 | 226 | ||
| 229 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
| 230 | set_current_blocked(&set); | 227 | set_current_blocked(&set); |
| 231 | 228 | ||
| 232 | if (restore_sigcontext(regs, &frame->sc, &r0)) | 229 | if (restore_sigcontext(regs, &frame->sc, &r0)) |
| @@ -256,7 +253,6 @@ asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, | |||
| 256 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) | 253 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) |
| 257 | goto badframe; | 254 | goto badframe; |
| 258 | 255 | ||
| 259 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
| 260 | set_current_blocked(&set); | 256 | set_current_blocked(&set); |
| 261 | 257 | ||
| 262 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &r0)) | 258 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &r0)) |
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c index 7075c63bfc6..75960ef6c1d 100644 --- a/arch/sh/kernel/signal_64.c +++ b/arch/sh/kernel/signal_64.c | |||
| @@ -41,8 +41,6 @@ | |||
| 41 | 41 | ||
| 42 | #define DEBUG_SIG 0 | 42 | #define DEBUG_SIG 0 |
| 43 | 43 | ||
| 44 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | ||
| 45 | |||
| 46 | static void | 44 | static void |
| 47 | handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, | 45 | handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, |
| 48 | struct pt_regs * regs); | 46 | struct pt_regs * regs); |
| @@ -330,7 +328,6 @@ asmlinkage int sys_sigreturn(unsigned long r2, unsigned long r3, | |||
| 330 | sizeof(frame->extramask)))) | 328 | sizeof(frame->extramask)))) |
| 331 | goto badframe; | 329 | goto badframe; |
| 332 | 330 | ||
| 333 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
| 334 | set_current_blocked(&set); | 331 | set_current_blocked(&set); |
| 335 | 332 | ||
| 336 | if (restore_sigcontext(regs, &frame->sc, &ret)) | 333 | if (restore_sigcontext(regs, &frame->sc, &ret)) |
| @@ -363,7 +360,6 @@ asmlinkage int sys_rt_sigreturn(unsigned long r2, unsigned long r3, | |||
| 363 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) | 360 | if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) |
| 364 | goto badframe; | 361 | goto badframe; |
| 365 | 362 | ||
| 366 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
| 367 | set_current_blocked(&set); | 363 | set_current_blocked(&set); |
| 368 | 364 | ||
| 369 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &ret)) | 365 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &ret)) |
