p->sched_class->set_cpus_allowed(p, new_mask);
 
-       if (running)
-               p->sched_class->set_curr_task(rq);
        if (queued)
                enqueue_task(rq, p, ENQUEUE_RESTORE);
+       if (running)
+               p->sched_class->set_curr_task(rq);
 }
 
 /*
 
        p->prio = prio;
 
-       if (running)
-               p->sched_class->set_curr_task(rq);
        if (queued)
                enqueue_task(rq, p, queue_flag);
+       if (running)
+               p->sched_class->set_curr_task(rq);
 
        check_class_changed(rq, p, prev_class, oldprio);
 out_unlock:
        prev_class = p->sched_class;
        __setscheduler(rq, p, attr, pi);
 
-       if (running)
-               p->sched_class->set_curr_task(rq);
        if (queued) {
                /*
                 * We enqueue to tail when the priority of a task is
 
                enqueue_task(rq, p, queue_flags);
        }
+       if (running)
+               p->sched_class->set_curr_task(rq);
 
        check_class_changed(rq, p, prev_class, oldprio);
        preempt_disable(); /* avoid rq from going away on us */
 
        p->numa_preferred_nid = nid;
 
-       if (running)
-               p->sched_class->set_curr_task(rq);
        if (queued)
                enqueue_task(rq, p, ENQUEUE_RESTORE);
+       if (running)
+               p->sched_class->set_curr_task(rq);
        task_rq_unlock(rq, p, &rf);
 }
 #endif /* CONFIG_NUMA_BALANCING */
 
        sched_change_group(tsk, TASK_MOVE_GROUP);
 
-       if (unlikely(running))
-               tsk->sched_class->set_curr_task(rq);
        if (queued)
                enqueue_task(rq, tsk, ENQUEUE_RESTORE | ENQUEUE_MOVE);
+       if (unlikely(running))
+               tsk->sched_class->set_curr_task(rq);
 
        task_rq_unlock(rq, tsk, &rf);
 }