diff options
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r-- | kernel/sched_fair.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index e9f5daee12c7..c163a285bf05 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1403,7 +1403,6 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag | |||
1403 | new_cpu = prev_cpu; | 1403 | new_cpu = prev_cpu; |
1404 | } | 1404 | } |
1405 | 1405 | ||
1406 | rcu_read_lock(); | ||
1407 | for_each_domain(cpu, tmp) { | 1406 | for_each_domain(cpu, tmp) { |
1408 | /* | 1407 | /* |
1409 | * If power savings logic is enabled for a domain, see if we | 1408 | * If power savings logic is enabled for a domain, see if we |
@@ -1484,10 +1483,8 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag | |||
1484 | update_shares(tmp); | 1483 | update_shares(tmp); |
1485 | } | 1484 | } |
1486 | 1485 | ||
1487 | if (affine_sd && wake_affine(affine_sd, p, sync)) { | 1486 | if (affine_sd && wake_affine(affine_sd, p, sync)) |
1488 | new_cpu = cpu; | 1487 | return cpu; |
1489 | goto out; | ||
1490 | } | ||
1491 | 1488 | ||
1492 | while (sd) { | 1489 | while (sd) { |
1493 | int load_idx = sd->forkexec_idx; | 1490 | int load_idx = sd->forkexec_idx; |
@@ -1528,8 +1525,6 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag | |||
1528 | /* while loop will break here if sd == NULL */ | 1525 | /* while loop will break here if sd == NULL */ |
1529 | } | 1526 | } |
1530 | 1527 | ||
1531 | out: | ||
1532 | rcu_read_unlock(); | ||
1533 | return new_cpu; | 1528 | return new_cpu; |
1534 | } | 1529 | } |
1535 | #endif /* CONFIG_SMP */ | 1530 | #endif /* CONFIG_SMP */ |