diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index bfb8ad8ed171..2c65bf29d133 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -4159,12 +4159,10 @@ need_resched_nonpreemptible: | |||
4159 | clear_tsk_need_resched(prev); | 4159 | clear_tsk_need_resched(prev); |
4160 | 4160 | ||
4161 | if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { | 4161 | if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { |
4162 | if (unlikely((prev->state & TASK_INTERRUPTIBLE) && | 4162 | if (unlikely(signal_pending_state(prev->state, prev))) |
4163 | signal_pending(prev))) { | ||
4164 | prev->state = TASK_RUNNING; | 4163 | prev->state = TASK_RUNNING; |
4165 | } else { | 4164 | else |
4166 | deactivate_task(rq, prev, 1); | 4165 | deactivate_task(rq, prev, 1); |
4167 | } | ||
4168 | switch_count = &prev->nvcsw; | 4166 | switch_count = &prev->nvcsw; |
4169 | } | 4167 | } |
4170 | 4168 | ||