summaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/smp.c
diff options
context:
space:
mode:
authorAbhimanyu Kapur <abhimany@codeaurora.org>2014-04-02 20:32:59 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:10:16 -0700
commitdc8d0cdaf7dcdd56a854c48a8893039aa305a418 (patch)
tree8c39d7c96b111749a846548c2166437bcf2d1df0 /arch/arm64/kernel/smp.c
parentf237941bd14f9d014fcb74b186de3178a5f9de42 (diff)
ARM64: Flush the caches for non panicking CPUs in case of a kernel panic
In case of a kernel panic, only the panicking CPU does an entire cache flush. This means that certain dirty cache lines in the caches of the other CPUs may never get flushed. This gives us improper RAM dumps. Add cache flushing for all the online CPUs. The outer domain is not flushed since it is already being done by the panicking CPU. Change-Id: I03cf14f49334e45c145a17b06d0c623575b653e8 Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org> [satyap: trivial merge conflict resolution] Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Diffstat (limited to 'arch/arm64/kernel/smp.c')
-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 ae6e7995263b..0b49a587965d 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -724,6 +724,7 @@ static void ipi_cpu_stop(unsigned int cpu, struct pt_regs *regs)
set_cpu_active(cpu, false);
+ flush_cache_all();
local_irq_disable();
while (1)