diff --git a/[refs] b/[refs] index b4fa8224b58d..3bb7f0969e14 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3dee386e14045484a6c41c8f03a263f9d79de740 +refs/heads/master: e7c38cb49c6cc05bc11f70d9e9889da1c4a0d37f diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index f55ce5adac55..589e55a42214 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -1273,18 +1273,18 @@ static int try_to_wake_up(task_t *p, unsigned int state, int sync) * sleep_avg beyond just interactive state. */ p->sleep_type = SLEEP_NONINTERACTIVE; - } + } else /* * Tasks that have marked their sleep as noninteractive get - * woken up without updating their sleep average. (i.e. their - * sleep is handled in a priority-neutral manner, no priority - * boost and no penalty.) + * woken up with their sleep average not weighted in an + * interactive way. */ - if (old_state & TASK_NONINTERACTIVE) - __activate_task(p, rq); - else - activate_task(p, rq, cpu == this_cpu); + if (old_state & TASK_NONINTERACTIVE) + p->sleep_type = SLEEP_NONINTERACTIVE; + + + activate_task(p, rq, cpu == this_cpu); /* * Sync wakeups (i.e. those types of wakeups where the waker * has indicated that it will leave the CPU in short order)