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/mips | |
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/mips')
-rw-r--r-- | arch/mips/kernel/signal-common.h | 2 | ||||
-rw-r--r-- | arch/mips/kernel/signal.c | 2 | ||||
-rw-r--r-- | arch/mips/kernel/signal32.c | 2 | ||||
-rw-r--r-- | arch/mips/kernel/signal_n32.c | 1 |
4 files changed, 0 insertions, 7 deletions
diff --git a/arch/mips/kernel/signal-common.h b/arch/mips/kernel/signal-common.h index 10263b405981..9c60d09e62a7 100644 --- a/arch/mips/kernel/signal-common.h +++ b/arch/mips/kernel/signal-common.h | |||
@@ -19,8 +19,6 @@ | |||
19 | # define DEBUGP(fmt, args...) | 19 | # define DEBUGP(fmt, args...) |
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | ||
23 | |||
24 | /* | 22 | /* |
25 | * Determine which stack to use.. | 23 | * Determine which stack to use.. |
26 | */ | 24 | */ |
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index 896165757e6f..02e0cba24f82 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c | |||
@@ -339,7 +339,6 @@ asmlinkage void sys_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
339 | if (__copy_from_user(&blocked, &frame->sf_mask, sizeof(blocked))) | 339 | if (__copy_from_user(&blocked, &frame->sf_mask, sizeof(blocked))) |
340 | goto badframe; | 340 | goto badframe; |
341 | 341 | ||
342 | sigdelsetmask(&blocked, ~_BLOCKABLE); | ||
343 | set_current_blocked(&blocked); | 342 | set_current_blocked(&blocked); |
344 | 343 | ||
345 | sig = restore_sigcontext(®s, &frame->sf_sc); | 344 | sig = restore_sigcontext(®s, &frame->sf_sc); |
@@ -375,7 +374,6 @@ asmlinkage void sys_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
375 | if (__copy_from_user(&set, &frame->rs_uc.uc_sigmask, sizeof(set))) | 374 | if (__copy_from_user(&set, &frame->rs_uc.uc_sigmask, sizeof(set))) |
376 | goto badframe; | 375 | goto badframe; |
377 | 376 | ||
378 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
379 | set_current_blocked(&set); | 377 | set_current_blocked(&set); |
380 | 378 | ||
381 | sig = restore_sigcontext(®s, &frame->rs_uc.uc_mcontext); | 379 | sig = restore_sigcontext(®s, &frame->rs_uc.uc_mcontext); |
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index b4fe2eacbd5d..da1b56a39ac7 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -465,7 +465,6 @@ asmlinkage void sys32_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
465 | if (__copy_conv_sigset_from_user(&blocked, &frame->sf_mask)) | 465 | if (__copy_conv_sigset_from_user(&blocked, &frame->sf_mask)) |
466 | goto badframe; | 466 | goto badframe; |
467 | 467 | ||
468 | sigdelsetmask(&blocked, ~_BLOCKABLE); | ||
469 | set_current_blocked(&blocked); | 468 | set_current_blocked(&blocked); |
470 | 469 | ||
471 | sig = restore_sigcontext32(®s, &frame->sf_sc); | 470 | sig = restore_sigcontext32(®s, &frame->sf_sc); |
@@ -503,7 +502,6 @@ asmlinkage void sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
503 | if (__copy_conv_sigset_from_user(&set, &frame->rs_uc.uc_sigmask)) | 502 | if (__copy_conv_sigset_from_user(&set, &frame->rs_uc.uc_sigmask)) |
504 | goto badframe; | 503 | goto badframe; |
505 | 504 | ||
506 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
507 | set_current_blocked(&set); | 505 | set_current_blocked(&set); |
508 | 506 | ||
509 | sig = restore_sigcontext32(®s, &frame->rs_uc.uc_mcontext); | 507 | sig = restore_sigcontext32(®s, &frame->rs_uc.uc_mcontext); |
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c index 63ffac9af7c5..3574c145511b 100644 --- a/arch/mips/kernel/signal_n32.c +++ b/arch/mips/kernel/signal_n32.c | |||
@@ -109,7 +109,6 @@ asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | |||
109 | if (__copy_conv_sigset_from_user(&set, &frame->rs_uc.uc_sigmask)) | 109 | if (__copy_conv_sigset_from_user(&set, &frame->rs_uc.uc_sigmask)) |
110 | goto badframe; | 110 | goto badframe; |
111 | 111 | ||
112 | sigdelsetmask(&set, ~_BLOCKABLE); | ||
113 | set_current_blocked(&set); | 112 | set_current_blocked(&set); |
114 | 113 | ||
115 | sig = restore_sigcontext(®s, &frame->rs_uc.uc_mcontext); | 114 | sig = restore_sigcontext(®s, &frame->rs_uc.uc_mcontext); |