On Wed, Jan 22, 2014 at 6:25 AM, Wang Nan <wangnan0@xxxxxxxxxx> wrote:
ARM's kdump is actually corrupted (at least for omap4460), mainly because of
cache problem: flush_icache_range can't reliably ensure the copied data
correctly goes into RAM. After mmu turned off and jump to the trampoline, kexec
always failed due to random undef instructions.
This patch use ioremap to make sure the destnation of all memcpy() is
uncachable memory, including copying of target kernel and trampoline.
AFAIK ioremap on RAM in forbidden in ARM and device memory that ioremap()
ends up creating is not meant for executable code.
Doesn't this trigger the WARN_ON() in _arm_ioremap_pfn_caller)?