|
@@ -2528,11 +2528,8 @@ static void __set_task_blocked(struct task_struct *tsk, const sigset_t *newset)
|
|
|
*/
|
|
|
void set_current_blocked(sigset_t *newset)
|
|
|
{
|
|
|
- struct task_struct *tsk = current;
|
|
|
sigdelsetmask(newset, sigmask(SIGKILL) | sigmask(SIGSTOP));
|
|
|
- spin_lock_irq(&tsk->sighand->siglock);
|
|
|
- __set_task_blocked(tsk, newset);
|
|
|
- spin_unlock_irq(&tsk->sighand->siglock);
|
|
|
+ __set_current_blocked(newset);
|
|
|
}
|
|
|
|
|
|
void __set_current_blocked(const sigset_t *newset)
|
|
@@ -3204,7 +3201,6 @@ SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, nset,
|
|
|
if (nset) {
|
|
|
if (copy_from_user(&new_set, nset, sizeof(*nset)))
|
|
|
return -EFAULT;
|
|
|
- new_set &= ~(sigmask(SIGKILL) | sigmask(SIGSTOP));
|
|
|
|
|
|
new_blocked = current->blocked;
|
|
|
|
|
@@ -3222,7 +3218,7 @@ SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, nset,
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- __set_current_blocked(&new_blocked);
|
|
|
+ set_current_blocked(&new_blocked);
|
|
|
}
|
|
|
|
|
|
if (oset) {
|