diff options
Diffstat (limited to 'kernel')
| -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 */ |
