diff options
author | Christoph Hellwig <hch@lst.de> | 2007-06-04 15:15:51 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-06-14 22:29:58 +1000 |
commit | db277e9a67b9d81b9d6cd74edf0c3e1a0ef2aa4b (patch) | |
tree | 288e98873d04c9a89b437f1a4a961acaebb90958 /arch/powerpc/kernel/signal.c | |
parent | 69d15f6b352a681f1db9bc70219a3e8e9d503dbf (diff) |
[POWERPC] Consolidate restore_sigmask
restore_sigmask is exactly the same on 32 and 64bit, so move it to
common code. Also move _BLOCKABLE to signal.h to avoid defining it
multiple times.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/signal.c')
-rw-r--r-- | arch/powerpc/kernel/signal.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c index 325d260abd4e..f92856b98b70 100644 --- a/arch/powerpc/kernel/signal.c +++ b/arch/powerpc/kernel/signal.c @@ -13,6 +13,21 @@ #include <linux/signal.h> #include <asm/unistd.h> +#include "signal.h" + + +/* + * Restore the user process's signal mask + */ +void restore_sigmask(sigset_t *set) +{ + sigdelsetmask(set, ~_BLOCKABLE); + spin_lock_irq(¤t->sighand->siglock); + current->blocked = *set; + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); +} + void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) { |