diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 9657c7de5f576a17c4f7c878dde383bef03d8938..1ad79aaaaf936280ec8c93bdfd2e0f68f8d5ed51 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6355,6 +6355,8 @@ static int select_idle_smt(struct task_struct *p, int target) int cpu; for_each_cpu_and(cpu, cpu_smt_mask(target), p->cpus_ptr) { + if (cpu == target) + continue; if (available_idle_cpu(cpu) || sched_idle_cpu(cpu)) return cpu; }