--- /dev/null
+From 4f9b4fb7a2091eec339413a460b1665758401828 Mon Sep 17 00:00:00 2001
+From: Vijaya Kumar K <vijay.kilari@gmail.com>
+Date: Wed, 14 Aug 2013 13:28:28 +0100
+Subject: ARM: 7815/1: kexec: offline non panic CPUs on Kdump panic
+
+From: Vijaya Kumar K <vijay.kilari@gmail.com>
+
+commit 4f9b4fb7a2091eec339413a460b1665758401828 upstream.
+
+In case of normal kexec kernel load, all cpu's are offlined
+before calling machine_kexec().But in case crash panic cpus
+are relaxed in machine_crash_nonpanic_core() SMP function
+but not offlined.
+
+When crash kernel is loaded with kexec and on panic trigger
+machine_kexec() checks for number of cpus online.
+If more than one cpu is online machine_kexec() fails to load
+with below error
+
+kexec: error: multiple CPUs still online
+
+In machine_crash_nonpanic_core() SMP function, offline CPU
+before cpu_relax
+
+Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
+Acked-by: Stephen Warren <swarren@wwwdotorg.org>
+Acked-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Cc: l00221744 <sdu.liu@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/kernel/machine_kexec.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm/kernel/machine_kexec.c
++++ b/arch/arm/kernel/machine_kexec.c
+@@ -73,6 +73,7 @@ void machine_crash_nonpanic_core(void *u
+ crash_save_cpu(®s, smp_processor_id());
+ flush_cache_all();
+
++ set_cpu_online(smp_processor_id(), false);
+ atomic_dec(&waiting_for_crash_ipi);
+ while (1)
+ cpu_relax();