diff --git a/kernel/cpu.c b/kernel/cpu.c index deff2e693766..9a1ba77d6a50 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -692,10 +692,12 @@ void set_cpu_present(unsigned int cpu, bool present) void set_cpu_online(unsigned int cpu, bool online) { - if (online) + if (online) { cpumask_set_cpu(cpu, to_cpumask(cpu_online_bits)); - else + cpumask_set_cpu(cpu, to_cpumask(cpu_active_bits)); + } else { cpumask_clear_cpu(cpu, to_cpumask(cpu_online_bits)); + } } void set_cpu_active(unsigned int cpu, bool active) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 823c9d7c0dee..9a8a1fc76268 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5075,7 +5075,6 @@ static int sched_cpu_active(struct notifier_block *nfb, unsigned long action, void *hcpu) { switch (action & ~CPU_TASKS_FROZEN) { - case CPU_STARTING: case CPU_DOWN_FAILED: set_cpu_active((long)hcpu, true); return NOTIFY_OK;