aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_rt.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r--kernel/sched_rt.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index b8435fd47f78..0749c1837b10 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -438,12 +438,11 @@ static int find_lowest_rq(struct task_struct *task)
438} 438}
439 439
440/* Will lock the rq it finds */ 440/* Will lock the rq it finds */
441static struct rq *find_lock_lowest_rq(struct task_struct *task, 441static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq)
442 struct rq *rq)
443{ 442{
444 struct rq *lowest_rq = NULL; 443 struct rq *lowest_rq = NULL;
445 int cpu;
446 int tries; 444 int tries;
445 int cpu;
447 446
448 for (tries = 0; tries < RT_MAX_TRIES; tries++) { 447 for (tries = 0; tries < RT_MAX_TRIES; tries++) {
449 cpu = find_lowest_rq(task); 448 cpu = find_lowest_rq(task);
@@ -462,9 +461,11 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task,
462 * Also make sure that it wasn't scheduled on its rq. 461 * Also make sure that it wasn't scheduled on its rq.
463 */ 462 */
464 if (unlikely(task_rq(task) != rq || 463 if (unlikely(task_rq(task) != rq ||
465 !cpu_isset(lowest_rq->cpu, task->cpus_allowed) || 464 !cpu_isset(lowest_rq->cpu,
465 task->cpus_allowed) ||
466 task_running(rq, task) || 466 task_running(rq, task) ||
467 !task->se.on_rq)) { 467 !task->se.on_rq)) {
468
468 spin_unlock(&lowest_rq->lock); 469 spin_unlock(&lowest_rq->lock);
469 lowest_rq = NULL; 470 lowest_rq = NULL;
470 break; 471 break;