diff options
-rw-r--r-- | arch/avr32/kernel/signal.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/arch/avr32/kernel/signal.c b/arch/avr32/kernel/signal.c index 9c075e105d60..06f4293f85d8 100644 --- a/arch/avr32/kernel/signal.c +++ b/arch/avr32/kernel/signal.c | |||
@@ -87,10 +87,7 @@ asmlinkage int sys_rt_sigreturn(struct pt_regs *regs) | |||
87 | goto badframe; | 87 | goto badframe; |
88 | 88 | ||
89 | sigdelsetmask(&set, ~_BLOCKABLE); | 89 | sigdelsetmask(&set, ~_BLOCKABLE); |
90 | spin_lock_irq(¤t->sighand->siglock); | 90 | set_current_blocked(&set); |
91 | current->blocked = set; | ||
92 | recalc_sigpending(); | ||
93 | spin_unlock_irq(¤t->sighand->siglock); | ||
94 | 91 | ||
95 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) | 92 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) |
96 | goto badframe; | 93 | goto badframe; |
@@ -226,6 +223,7 @@ static inline void | |||
226 | handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, | 223 | handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, |
227 | sigset_t *oldset, struct pt_regs *regs, int syscall) | 224 | sigset_t *oldset, struct pt_regs *regs, int syscall) |
228 | { | 225 | { |
226 | sigset_t blocked; | ||
229 | int ret; | 227 | int ret; |
230 | 228 | ||
231 | /* | 229 | /* |
@@ -246,13 +244,10 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, | |||
246 | /* | 244 | /* |
247 | * Block the signal if we were successful. | 245 | * Block the signal if we were successful. |
248 | */ | 246 | */ |
249 | spin_lock_irq(¤t->sighand->siglock); | 247 | sigorsets(&blocked, ¤t->blocked, &ka->sa.sa_mask); |
250 | sigorsets(¤t->blocked, ¤t->blocked, | ||
251 | &ka->sa.sa_mask); | ||
252 | if (!(ka->sa.sa_flags & SA_NODEFER)) | 248 | if (!(ka->sa.sa_flags & SA_NODEFER)) |
253 | sigaddset(¤t->blocked, sig); | 249 | sigaddset(&blocked, sig); |
254 | recalc_sigpending(); | 250 | set_current_blocked(&blocked); |
255 | spin_unlock_irq(¤t->sighand->siglock); | ||
256 | } | 251 | } |
257 | 252 | ||
258 | /* | 253 | /* |