]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc: Fix kdump hang issue on p8 with relocation on exception enabled.
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Thu, 30 Jan 2014 19:01:04 +0000 (00:31 +0530)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 11 Feb 2014 00:24:47 +0000 (11:24 +1100)
commitb2e2d7fb7d65abf512f17d9aad18b81e5bf84125
tree291d3bcb329161fd4d92faa3286cd604062c2319
parent730d7579f57cc4af32b1941862b35bf43535ea5f
powerpc: Fix kdump hang issue on p8 with relocation on exception enabled.

On p8 systems, with relocation on exception feature enabled we are seeing
kdump kernel hang at interrupt vector 0xc*4400. The reason is, with this
feature enabled, exception are raised with MMU (IR=DR=1) ON with the
default offset of 0xc*4000. Since exception is raised in virtual mode it
requires the vector region to be executable without which it fails to
fetch and execute instruction at 0xc*4xxx. For default kernel since kernel
is loaded at real 0, the htab mappings sets the entire kernel text region
executable. But for relocatable kernel (e.g. kdump case) we only copy
interrupt vectors down to real 0 and never marked that region as
executable because in p7 and below we always get exception in real mode.

This patch fixes this issue by marking htab mapping range as executable
that overlaps with the interrupt vector region for relocatable kernel.

Thanks to Ben who helped me to debug this issue and find the root cause.

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/sections.h
arch/powerpc/mm/hash_utils_64.c