|
@@ -2101,10 +2101,11 @@ long do_no_restart_syscall(struct restart_block *param)
|
|
|
int sigprocmask(int how, sigset_t *set, sigset_t *oldset)
|
|
|
{
|
|
|
int error;
|
|
|
- sigset_t old_block;
|
|
|
|
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
|
- old_block = current->blocked;
|
|
|
+ if (oldset)
|
|
|
+ *oldset = current->blocked;
|
|
|
+
|
|
|
error = 0;
|
|
|
switch (how) {
|
|
|
case SIG_BLOCK:
|
|
@@ -2121,8 +2122,7 @@ int sigprocmask(int how, sigset_t *set, sigset_t *oldset)
|
|
|
}
|
|
|
recalc_sigpending();
|
|
|
spin_unlock_irq(¤t->sighand->siglock);
|
|
|
- if (oldset)
|
|
|
- *oldset = old_block;
|
|
|
+
|
|
|
return error;
|
|
|
}
|
|
|
|