|
@@ -1922,6 +1922,8 @@ int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka,
|
|
sigset_t *mask = ¤t->blocked;
|
|
sigset_t *mask = ¤t->blocked;
|
|
int signr = 0;
|
|
int signr = 0;
|
|
|
|
|
|
|
|
+ try_to_freeze();
|
|
|
|
+
|
|
relock:
|
|
relock:
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
for (;;) {
|
|
for (;;) {
|
|
@@ -2307,7 +2309,6 @@ sys_rt_sigtimedwait(const sigset_t __user *uthese,
|
|
|
|
|
|
timeout = schedule_timeout_interruptible(timeout);
|
|
timeout = schedule_timeout_interruptible(timeout);
|
|
|
|
|
|
- try_to_freeze();
|
|
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
sig = dequeue_signal(current, &these, &info);
|
|
sig = dequeue_signal(current, &these, &info);
|
|
current->blocked = current->real_blocked;
|
|
current->blocked = current->real_blocked;
|