|
@@ -1240,6 +1240,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
|
|
* effect of the currently running task from the load
|
|
* effect of the currently running task from the load
|
|
* of the current CPU:
|
|
* of the current CPU:
|
|
*/
|
|
*/
|
|
|
|
+ rcu_read_lock();
|
|
if (sync) {
|
|
if (sync) {
|
|
tg = task_group(current);
|
|
tg = task_group(current);
|
|
weight = current->se.load.weight;
|
|
weight = current->se.load.weight;
|
|
@@ -1275,6 +1276,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync)
|
|
balanced = this_eff_load <= prev_eff_load;
|
|
balanced = this_eff_load <= prev_eff_load;
|
|
} else
|
|
} else
|
|
balanced = true;
|
|
balanced = true;
|
|
|
|
+ rcu_read_unlock();
|
|
|
|
|
|
/*
|
|
/*
|
|
* If the currently running task will sleep within
|
|
* If the currently running task will sleep within
|