goto badframe;
 
        sigdelsetmask(&set, ~_BLOCKABLE);
-       spin_lock_irq(¤t->sighand->siglock);
-       current->blocked = set;
-       recalc_sigpending();
-       spin_unlock_irq(¤t->sighand->siglock);
+       set_current_blocked(&set);
 
        sig = restore_sigcontext(regs, &frame->rs_uc.uc_mcontext);
        if (sig < 0)
         */
        ret = setup_rt_frame(ka, regs, sig, oldset, info);
 
-       if (ret == 0) {
-               spin_lock_irq(¤t->sighand->siglock);
-               sigorsets(¤t->blocked, ¤t->blocked, &ka->sa.sa_mask);
-               if (!(ka->sa.sa_flags & SA_NODEFER))
-                       sigaddset(¤t->blocked, sig);
-               recalc_sigpending();
-               spin_unlock_irq(¤t->sighand->siglock);
-       }
+       if (ret == 0)
+               block_sigmask(ka, sig);
 
        return ret;
 }