diff options
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r-- | kernel/sched_rt.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index ffd02720b58f..95f36f61ae1d 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
@@ -277,9 +277,6 @@ static int find_lowest_rq(struct task_struct *task) | |||
277 | for_each_cpu_mask(cpu, *cpu_mask) { | 277 | for_each_cpu_mask(cpu, *cpu_mask) { |
278 | struct rq *rq = cpu_rq(cpu); | 278 | struct rq *rq = cpu_rq(cpu); |
279 | 279 | ||
280 | if (cpu == rq->cpu) | ||
281 | continue; | ||
282 | |||
283 | /* We look for lowest RT prio or non-rt CPU */ | 280 | /* We look for lowest RT prio or non-rt CPU */ |
284 | if (rq->rt.highest_prio >= MAX_RT_PRIO) { | 281 | if (rq->rt.highest_prio >= MAX_RT_PRIO) { |
285 | lowest_rq = rq; | 282 | lowest_rq = rq; |
@@ -307,7 +304,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, | |||
307 | for (tries = 0; tries < RT_MAX_TRIES; tries++) { | 304 | for (tries = 0; tries < RT_MAX_TRIES; tries++) { |
308 | cpu = find_lowest_rq(task); | 305 | cpu = find_lowest_rq(task); |
309 | 306 | ||
310 | if (cpu == -1) | 307 | if ((cpu == -1) || (cpu == rq->cpu)) |
311 | break; | 308 | break; |
312 | 309 | ||
313 | lowest_rq = cpu_rq(cpu); | 310 | lowest_rq = cpu_rq(cpu); |