aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2019-08-27 15:54:56 +0100
committerWill Deacon <will@kernel.org>2019-08-27 17:37:05 +0100
commitebef746543fd1aa162216b0e484eb9062b65741d (patch)
tree507feaa5b91fb00abfba642341fec367c3b4bc86 /arch/arm64
parentarm64: smp: Don't enter kernel with NULL stack pointer or task struct (diff)
downloadlinux-dev-ebef746543fd1aa162216b0e484eb9062b65741d.tar.xz
linux-dev-ebef746543fd1aa162216b0e484eb9062b65741d.zip
arm64: smp: Treat unknown boot failures as being 'stuck in kernel'
When we fail to bring a secondary CPU online and it fails in an unknown state, we should assume the worst and increment 'cpus_stuck_in_kernel' so that things like kexec() are disabled. Reviewed-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/kernel/smp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 1f8aeb77cba5..dc9fe879c279 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -147,6 +147,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle)
default:
pr_err("CPU%u: failed in unknown state : 0x%lx\n",
cpu, status);
+ cpus_stuck_in_kernel++;
break;
case CPU_KILL_ME:
if (!op_cpu_kill(cpu)) {