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>
This commit is contained in:
Abhimanyu Kapur 2014-04-02 20:32:59 -07:00 committed by David Keitel
parent f237941bd1
commit dc8d0cdaf7

View file

@ -724,6 +724,7 @@ static void ipi_cpu_stop(unsigned int cpu, struct pt_regs *regs)
set_cpu_active(cpu, false); set_cpu_active(cpu, false);
flush_cache_all();
local_irq_disable(); local_irq_disable();
while (1) while (1)