diff options
Diffstat (limited to 'kernel/sched/deadline.c')
-rw-r--r-- | kernel/sched/deadline.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 726470d47f87..e0e9c2986976 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c | |||
@@ -1166,9 +1166,6 @@ static int find_later_rq(struct task_struct *task) | |||
1166 | * We have to consider system topology and task affinity | 1166 | * We have to consider system topology and task affinity |
1167 | * first, then we can look for a suitable cpu. | 1167 | * first, then we can look for a suitable cpu. |
1168 | */ | 1168 | */ |
1169 | cpumask_copy(later_mask, task_rq(task)->rd->span); | ||
1170 | cpumask_and(later_mask, later_mask, cpu_active_mask); | ||
1171 | cpumask_and(later_mask, later_mask, &task->cpus_allowed); | ||
1172 | best_cpu = cpudl_find(&task_rq(task)->rd->cpudl, | 1169 | best_cpu = cpudl_find(&task_rq(task)->rd->cpudl, |
1173 | task, later_mask); | 1170 | task, later_mask); |
1174 | if (best_cpu == -1) | 1171 | if (best_cpu == -1) |
@@ -1563,6 +1560,7 @@ static void rq_online_dl(struct rq *rq) | |||
1563 | if (rq->dl.overloaded) | 1560 | if (rq->dl.overloaded) |
1564 | dl_set_overload(rq); | 1561 | dl_set_overload(rq); |
1565 | 1562 | ||
1563 | cpudl_set_freecpu(&rq->rd->cpudl, rq->cpu); | ||
1566 | if (rq->dl.dl_nr_running > 0) | 1564 | if (rq->dl.dl_nr_running > 0) |
1567 | cpudl_set(&rq->rd->cpudl, rq->cpu, rq->dl.earliest_dl.curr, 1); | 1565 | cpudl_set(&rq->rd->cpudl, rq->cpu, rq->dl.earliest_dl.curr, 1); |
1568 | } | 1566 | } |
@@ -1574,6 +1572,7 @@ static void rq_offline_dl(struct rq *rq) | |||
1574 | dl_clear_overload(rq); | 1572 | dl_clear_overload(rq); |
1575 | 1573 | ||
1576 | cpudl_set(&rq->rd->cpudl, rq->cpu, 0, 0); | 1574 | cpudl_set(&rq->rd->cpudl, rq->cpu, 0, 0); |
1575 | cpudl_clear_freecpu(&rq->rd->cpudl, rq->cpu); | ||
1577 | } | 1576 | } |
1578 | 1577 | ||
1579 | void init_sched_dl_class(void) | 1578 | void init_sched_dl_class(void) |