]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/powerpc/kernel/signal_32.c
Merge branch 'for-armsoc' of git://git.linaro.org/people/rmk/linux-arm
[karo-tx-linux.git] / arch / powerpc / kernel / signal_32.c
index 836a5a19eb2c3a3e45d5cab542fdb7138a8142bd..e061ef5dd4490dc0dfb20da69ab1551b69767e48 100644 (file)
@@ -242,12 +242,13 @@ static inline int restore_general_regs(struct pt_regs *regs,
  */
 long sys_sigsuspend(old_sigset_t mask)
 {
-       mask &= _BLOCKABLE;
-       spin_lock_irq(&current->sighand->siglock);
+       sigset_t blocked;
+
        current->saved_sigmask = current->blocked;
-       siginitset(&current->blocked, mask);
-       recalc_sigpending();
-       spin_unlock_irq(&current->sighand->siglock);
+
+       mask &= _BLOCKABLE;
+       siginitset(&blocked, mask);
+       set_current_blocked(&blocked);
 
        current->state = TASK_INTERRUPTIBLE;
        schedule();