aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched.c9
-rw-r--r--kernel/sched_fair.c4
2 files changed, 8 insertions, 5 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index f3030709d826..61452e86c73b 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -5522,8 +5522,15 @@ again:
5522 goto out; 5522 goto out;
5523 5523
5524 yielded = curr->sched_class->yield_to_task(rq, p, preempt); 5524 yielded = curr->sched_class->yield_to_task(rq, p, preempt);
5525 if (yielded) 5525 if (yielded) {
5526 schedstat_inc(rq, yld_count); 5526 schedstat_inc(rq, yld_count);
5527 /*
5528 * Make p's CPU reschedule; pick_next_entity takes care of
5529 * fairness.
5530 */
5531 if (preempt && rq != p_rq)
5532 resched_task(p_rq->curr);
5533 }
5527 5534
5528out: 5535out:
5529 double_rq_unlock(rq, p_rq); 5536 double_rq_unlock(rq, p_rq);
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 1438e13cf8be..3f7ec9e27ee1 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -1987,10 +1987,6 @@ static bool yield_to_task_fair(struct rq *rq, struct task_struct *p, bool preemp
1987 /* Tell the scheduler that we'd really like pse to run next. */ 1987 /* Tell the scheduler that we'd really like pse to run next. */
1988 set_next_buddy(se); 1988 set_next_buddy(se);
1989 1989
1990 /* Make p's CPU reschedule; pick_next_entity takes care of fairness. */
1991 if (preempt)
1992 resched_task(rq->curr);
1993
1994 yield_task_fair(rq); 1990 yield_task_fair(rq);
1995 1991
1996 return true; 1992 return true;