ARC: Mark secondary cpu online only after all HW setup is done
In SMP setup, master loops for each_present_cpu calling cpu_up(). For ARC it returns as soon as new cpu's status becomes online, However secondary may still do HW initializing, machine or platform hook level. So turn secondary online only after all HW setup is done. Signed-off-by: Noam Camus <noamc@ezchip.com> Acked-by: Vineet Gupta <vgupta@synopsys.com>
This commit is contained in:
Родитель
2a1021fce8
Коммит
71f9cf8fdd
|
@ -126,11 +126,6 @@ void start_kernel_secondary(void)
|
||||||
current->active_mm = mm;
|
current->active_mm = mm;
|
||||||
cpumask_set_cpu(cpu, mm_cpumask(mm));
|
cpumask_set_cpu(cpu, mm_cpumask(mm));
|
||||||
|
|
||||||
notify_cpu_starting(cpu);
|
|
||||||
set_cpu_online(cpu, true);
|
|
||||||
|
|
||||||
pr_info("## CPU%u LIVE ##: Executing Code...\n", cpu);
|
|
||||||
|
|
||||||
/* Some SMP H/w setup - for each cpu */
|
/* Some SMP H/w setup - for each cpu */
|
||||||
if (plat_smp_ops.init_per_cpu)
|
if (plat_smp_ops.init_per_cpu)
|
||||||
plat_smp_ops.init_per_cpu(cpu);
|
plat_smp_ops.init_per_cpu(cpu);
|
||||||
|
@ -138,6 +133,11 @@ void start_kernel_secondary(void)
|
||||||
if (machine_desc->init_per_cpu)
|
if (machine_desc->init_per_cpu)
|
||||||
machine_desc->init_per_cpu(cpu);
|
machine_desc->init_per_cpu(cpu);
|
||||||
|
|
||||||
|
notify_cpu_starting(cpu);
|
||||||
|
set_cpu_online(cpu, true);
|
||||||
|
|
||||||
|
pr_info("## CPU%u LIVE ##: Executing Code...\n", cpu);
|
||||||
|
|
||||||
local_irq_enable();
|
local_irq_enable();
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
|
cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче