diff options
Diffstat (limited to 'kernel/signal.c')
| -rw-r--r-- | kernel/signal.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index d1258729a5f9..ca1186eef938 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
| @@ -213,7 +213,7 @@ static inline int has_pending_signals(sigset_t *signal, sigset_t *blocked) | |||
| 213 | fastcall void recalc_sigpending_tsk(struct task_struct *t) | 213 | fastcall void recalc_sigpending_tsk(struct task_struct *t) |
| 214 | { | 214 | { |
| 215 | if (t->signal->group_stop_count > 0 || | 215 | if (t->signal->group_stop_count > 0 || |
| 216 | (t->flags & PF_FREEZE) || | 216 | (freezing(t)) || |
| 217 | PENDING(&t->pending, &t->blocked) || | 217 | PENDING(&t->pending, &t->blocked) || |
| 218 | PENDING(&t->signal->shared_pending, &t->blocked)) | 218 | PENDING(&t->signal->shared_pending, &t->blocked)) |
| 219 | set_tsk_thread_flag(t, TIF_SIGPENDING); | 219 | set_tsk_thread_flag(t, TIF_SIGPENDING); |
| @@ -2231,8 +2231,7 @@ sys_rt_sigtimedwait(const sigset_t __user *uthese, | |||
| 2231 | current->state = TASK_INTERRUPTIBLE; | 2231 | current->state = TASK_INTERRUPTIBLE; |
| 2232 | timeout = schedule_timeout(timeout); | 2232 | timeout = schedule_timeout(timeout); |
| 2233 | 2233 | ||
| 2234 | if (current->flags & PF_FREEZE) | 2234 | try_to_freeze(); |
| 2235 | refrigerator(PF_FREEZE); | ||
| 2236 | spin_lock_irq(¤t->sighand->siglock); | 2235 | spin_lock_irq(¤t->sighand->siglock); |
| 2237 | sig = dequeue_signal(current, &these, &info); | 2236 | sig = dequeue_signal(current, &these, &info); |
| 2238 | current->blocked = current->real_blocked; | 2237 | current->blocked = current->real_blocked; |
