Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e1e6dd9 authored by Abhimanyu Kapur's avatar Abhimanyu Kapur
Browse files

arm64: smp: Jump back to secondary start kernel for onlined CPUs



Add a call to secondary start kernel for cpus which have been
onlined via the hotplug path for wfi based hotplug solution
where the return path from cpu_die should not return to the
idle thread. Update the cpu_die definition with a __ref to
allow referencing a __cpuinit call (secondary_start_kernel)
from it.

Change-Id: I7c083effda3928b562ea0d601833ceb8d5178d43
Signed-off-by: default avatarAbhimanyu Kapur <abhimany@codeaurora.org>
parent c92e3648
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -244,7 +244,7 @@ void __cpu_die(unsigned int cpu)
 * of the other hotplug-cpu capable cores, so presumably coming
 * out of idle fixes this.
 */
void cpu_die(void)
void __ref cpu_die(void)
{
	unsigned int cpu = smp_processor_id();

@@ -262,7 +262,16 @@ void cpu_die(void)
	 */
	cpu_ops[cpu]->cpu_die(cpu);

	BUG();
	/*
	 * Do not return to the idle loop - jump back to the secondary
	 * cpu initialisation.  There's some initialisation which needs
	 * to be repeated to undo the effects of taking the CPU offline.
	 */

	asm volatile("mov       sp, %0\n"
		     "mov       x29, #0\n"
		     "b         secondary_start_kernel"
		     : : "r" (task_stack_page(current) + THREAD_START_SP));
}
#endif