sched/fair: Introduce set_curr_task() helper
authorPeter Zijlstra <peterz@infradead.org>
Tue, 20 Sep 2016 20:00:38 +0000 (22:00 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 30 Sep 2016 09:03:28 +0000 (11:03 +0200)
Now that the ia64 only set_curr_task() symbol is gone, provide a
helper just like put_prev_task().

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/core.c
kernel/sched/sched.h

index 6ec0cfe56ddd0a0b8ca8f9fc958ad1472b237667..ce69fc7eaf19031d8c42675500285ff809911f54 100644 (file)
@@ -1112,7 +1112,7 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
        if (queued)
                enqueue_task(rq, p, ENQUEUE_RESTORE);
        if (running)
-               p->sched_class->set_curr_task(rq);
+               set_curr_task(rq, p);
 }
 
 /*
@@ -3710,7 +3710,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio)
        if (queued)
                enqueue_task(rq, p, queue_flag);
        if (running)
-               p->sched_class->set_curr_task(rq);
+               set_curr_task(rq, p);
 
        check_class_changed(rq, p, prev_class, oldprio);
 out_unlock:
@@ -4274,7 +4274,7 @@ change:
                enqueue_task(rq, p, queue_flags);
        }
        if (running)
-               p->sched_class->set_curr_task(rq);
+               set_curr_task(rq, p);
 
        check_class_changed(rq, p, prev_class, oldprio);
        preempt_disable(); /* avoid rq from going away on us */
@@ -5442,7 +5442,7 @@ void sched_setnuma(struct task_struct *p, int nid)
        if (queued)
                enqueue_task(rq, p, ENQUEUE_RESTORE);
        if (running)
-               p->sched_class->set_curr_task(rq);
+               set_curr_task(rq, p);
        task_rq_unlock(rq, p, &rf);
 }
 #endif /* CONFIG_NUMA_BALANCING */
@@ -7952,7 +7952,7 @@ void sched_move_task(struct task_struct *tsk)
        if (queued)
                enqueue_task(rq, tsk, ENQUEUE_RESTORE | ENQUEUE_MOVE);
        if (unlikely(running))
-               tsk->sched_class->set_curr_task(rq);
+               set_curr_task(rq, tsk);
 
        task_rq_unlock(rq, tsk, &rf);
 }
index 01b5189235f28757676eba02cb9ee4fd6354ad03..fc6ae04ec080501beb4d38a4b17eff9c3b36c888 100644 (file)
@@ -1274,6 +1274,11 @@ static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
        prev->sched_class->put_prev_task(rq, prev);
 }
 
+static inline void set_curr_task(struct rq *rq, struct task_struct *curr)
+{
+       curr->sched_class->set_curr_task(rq);
+}
+
 #define sched_class_highest (&stop_sched_class)
 #define for_each_class(class) \
    for (class = sched_class_highest; class; class = class->next)