summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
authorCon Kolivas <kernel@kolivas.org>2016-10-20 06:35:33 +1100
committerCon Kolivas <kernel@kolivas.org>2016-10-20 06:36:03 +1100
commit1815857edb3cb5d7c9a6c72e0479cc5d87bf7cd3 (patch)
tree1fdcdc87285beec1ec8ea6e1b19fe36ecb3a3de2 /kernel/sched
parent2460840c1bc37a42bac0c2a212520dce24a13ebd (diff)
Send hotplug boot threads to their correct CPU even if the CPU is considered offline for it will bring them up
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/MuQSS.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c
index e8101a32192f..3fb5d02cbf22 100644
--- a/kernel/sched/MuQSS.c
+++ b/kernel/sched/MuQSS.c
@@ -1029,7 +1029,7 @@ static inline int queued_notrunning(void)
/* Entered with rq locked */
static inline void resched_if_idle(struct rq *rq)
{
- if (rq_idle(rq) && rq->online)
+ if (rq_idle(rq))
resched_task(rq->curr);
}
@@ -1943,8 +1943,9 @@ static int valid_task_cpu(struct task_struct *p)
cpumask_and(&valid_mask, tsk_cpus_allowed(p), cpu_active_mask);
if (unlikely(!cpumask_weight(&valid_mask))) {
+ /* Hotplug boot threads do this before the CPU is up */
WARN_ON(sched_smp_initialized);
- return smp_processor_id();
+ return cpumask_any(tsk_cpus_allowed(p));
}
return cpumask_any(&valid_mask);
}