diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 3aaa5c8cb421..4e2f60335656 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5622,10 +5622,10 @@ static int __migrate_task(struct task_struct *p, int src_cpu, int dest_cpu) | |||
5622 | double_rq_lock(rq_src, rq_dest); | 5622 | double_rq_lock(rq_src, rq_dest); |
5623 | /* Already moved. */ | 5623 | /* Already moved. */ |
5624 | if (task_cpu(p) != src_cpu) | 5624 | if (task_cpu(p) != src_cpu) |
5625 | goto out; | 5625 | goto done; |
5626 | /* Affinity changed (again). */ | 5626 | /* Affinity changed (again). */ |
5627 | if (!cpu_isset(dest_cpu, p->cpus_allowed)) | 5627 | if (!cpu_isset(dest_cpu, p->cpus_allowed)) |
5628 | goto out; | 5628 | goto fail; |
5629 | 5629 | ||
5630 | on_rq = p->se.on_rq; | 5630 | on_rq = p->se.on_rq; |
5631 | if (on_rq) | 5631 | if (on_rq) |
@@ -5636,8 +5636,9 @@ static int __migrate_task(struct task_struct *p, int src_cpu, int dest_cpu) | |||
5636 | activate_task(rq_dest, p, 0); | 5636 | activate_task(rq_dest, p, 0); |
5637 | check_preempt_curr(rq_dest, p); | 5637 | check_preempt_curr(rq_dest, p); |
5638 | } | 5638 | } |
5639 | done: | ||
5639 | ret = 1; | 5640 | ret = 1; |
5640 | out: | 5641 | fail: |
5641 | double_rq_unlock(rq_src, rq_dest); | 5642 | double_rq_unlock(rq_src, rq_dest); |
5642 | return ret; | 5643 | return ret; |
5643 | } | 5644 | } |
@@ -5887,6 +5888,7 @@ static void migrate_dead_tasks(unsigned int dead_cpu) | |||
5887 | next = pick_next_task(rq, rq->curr); | 5888 | next = pick_next_task(rq, rq->curr); |
5888 | if (!next) | 5889 | if (!next) |
5889 | break; | 5890 | break; |
5891 | next->sched_class->put_prev_task(rq, next); | ||
5890 | migrate_dead(dead_cpu, next); | 5892 | migrate_dead(dead_cpu, next); |
5891 | 5893 | ||
5892 | } | 5894 | } |
@@ -8501,6 +8503,9 @@ int sched_group_set_rt_period(struct task_group *tg, long rt_period_us) | |||
8501 | rt_period = (u64)rt_period_us * NSEC_PER_USEC; | 8503 | rt_period = (u64)rt_period_us * NSEC_PER_USEC; |
8502 | rt_runtime = tg->rt_bandwidth.rt_runtime; | 8504 | rt_runtime = tg->rt_bandwidth.rt_runtime; |
8503 | 8505 | ||
8506 | if (rt_period == 0) | ||
8507 | return -EINVAL; | ||
8508 | |||
8504 | return tg_set_bandwidth(tg, rt_period, rt_runtime); | 8509 | return tg_set_bandwidth(tg, rt_period, rt_runtime); |
8505 | } | 8510 | } |
8506 | 8511 | ||