diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched.c | 2 | ||||
-rw-r--r-- | kernel/sched_fair.c | 10 | ||||
-rw-r--r-- | kernel/sched_rt.c | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 3b104635a8e..e1f784f4b4d 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4537,7 +4537,7 @@ asmlinkage long sys_sched_yield(void) struct rq *rq = this_rq_lock(); schedstat_inc(rq, yld_cnt); - current->sched_class->yield_task(rq, current); + current->sched_class->yield_task(rq); /* * Since we are going to call schedule() anyway, there's diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 827a0636525..4dd256d4685 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -722,11 +722,11 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int sleep) * * If compat_yield is turned on then we requeue to the end of the tree. */ -static void yield_task_fair(struct rq *rq, struct task_struct *p) +static void yield_task_fair(struct rq *rq) { - struct cfs_rq *cfs_rq = task_cfs_rq(p); + struct cfs_rq *cfs_rq = &rq->cfs; struct rb_node **link = &cfs_rq->tasks_timeline.rb_node; - struct sched_entity *rightmost, *se = &p->se; + struct sched_entity *rightmost, *se = &rq->curr->se; struct rb_node *parent; /* @@ -741,8 +741,8 @@ static void yield_task_fair(struct rq *rq, struct task_struct *p) * Dequeue and enqueue the task to update its * position within the tree: */ - dequeue_entity(cfs_rq, &p->se, 0); - enqueue_entity(cfs_rq, &p->se, 0); + dequeue_entity(cfs_rq, se, 0); + enqueue_entity(cfs_rq, se, 0); return; } diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 45b339f56ae..b86944c20f9 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c @@ -59,9 +59,9 @@ static void requeue_task_rt(struct rq *rq, struct task_struct *p) } static void -yield_task_rt(struct rq *rq, struct task_struct *p) +yield_task_rt(struct rq *rq) { - requeue_task_rt(rq, p); + requeue_task_rt(rq, rq->curr); } /* |