aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-04-27 13:58:59 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-06-01 12:58:51 -0400
commit77097ae503b170120ab66dd1d547f8577193f91f (patch)
treebee5b2e8d91b9ec8ab74c58cbec1796c7bacc2e5 /arch/arm
parentedd63a2763bdae0daa4f0a4d4c5d61d1154352a5 (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/arm')
-rw-r--r--arch/arm/kernel/signal.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 7f9abd75fc2e..c126eba8411d 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -22,8 +22,6 @@
22 22
23#include "signal.h" 23#include "signal.h"
24 24
25#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
26
27/* 25/*
28 * For ARM syscalls, we encode the syscall number into the instruction. 26 * For ARM syscalls, we encode the syscall number into the instruction.
29 */ 27 */
@@ -210,10 +208,8 @@ static int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf)
210 int err; 208 int err;
211 209
212 err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set)); 210 err = __copy_from_user(&set, &sf->uc.uc_sigmask, sizeof(set));
213 if (err == 0) { 211 if (err == 0)
214 sigdelsetmask(&set, ~_BLOCKABLE);
215 set_current_blocked(&set); 212 set_current_blocked(&set);
216 }
217 213
218 __get_user_error(regs->ARM_r0, &sf->uc.uc_mcontext.arm_r0, err); 214 __get_user_error(regs->ARM_r0, &sf->uc.uc_mcontext.arm_r0, err);
219 __get_user_error(regs->ARM_r1, &sf->uc.uc_mcontext.arm_r1, err); 215 __get_user_error(regs->ARM_r1, &sf->uc.uc_mcontext.arm_r1, err);