diff --git a/[refs] b/[refs] index ecf0bcafe360..2bd896c6339a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 182a85f8a119c789610a9d464f4129ded9f3c107 +refs/heads/master: eb24073bc1fe3e569a855cf38d529fb650c35524 diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 5049d959bb26..969dfaef2465 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -2343,7 +2343,11 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, /* * In order to handle concurrent wakeups and release the rq->lock * we put the task in TASK_WAKING state. + * + * First fix up the nr_uninterruptible count: */ + if (task_contributes_to_load(p)) + rq->nr_uninterruptible--; p->state = TASK_WAKING; task_rq_unlock(rq, &flags);