diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 217e4a9..50ec9ea 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -1241,6 +1241,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync) * effect of the currently running task from the load * of the current CPU: */ + rcu_read_lock(); if (sync) { tg = task_group(current); weight = current->se.load.weight; @@ -1250,6 +1251,7 @@ static int wake_affine(struct sched_domain *sd, struct task_struct *p, int sync) } tg = task_group(p); + rcu_read_unlock(); weight = p->se.load.weight; imbalance = 100 + (sd->imbalance_pct - 100) / 2;