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

Commit cf9c2855 authored by Maria Yu's avatar Maria Yu Committed by Teng Fei Fan
Browse files

ARM: smp: Use common outgoing-CPU-notification code



This commit removes the open-coded CPU-offline notification with new
common code. In particular, this change avoids calling scheduler code
using RCU from an offline CPU that RCU is ignoring. This is a minimal
change. A more intrusive change might invoke the cpu_check_up_prepare()
and cpu_set_state_online() functions at CPU-online time, which would
allow onlining throw an error if the CPU did not go offline properly.

Change-Id: I333b5ac50bb080134922727c1918182203af39ad
Signed-off-by: default avatarMaria Yu <aiquny@codeaurora.org>
Signed-off-by: default avatarTeng Fei Fan <tengfei@codeaurora.org>
parent d77ce925
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -239,15 +239,13 @@ int __cpu_disable(void)
	return 0;
}

static DECLARE_COMPLETION(cpu_died);

/*
 * called on the thread which is asking for a CPU to be shutdown -
 * waits until shutdown has completed, or it is timed out.
 */
void __cpu_die(unsigned int cpu)
{
	if (!wait_for_completion_timeout(&cpu_died, msecs_to_jiffies(5000))) {
	if (!cpu_wait_death(cpu, 5)) {
		pr_err("CPU%u: cpu didn't die\n", cpu);
		return;
	}
@@ -293,7 +291,7 @@ void arch_cpu_idle_dead(void)
	 * this returns, power and/or clocks can be removed at any point
	 * from this CPU and its cache by platform_cpu_kill().
	 */
	complete(&cpu_died);
	(void)cpu_report_death();

	/*
	 * Ensure that the cache lines associated with that completion are