• Mahesh Salgaonkar's avatar
    powerpc: Fix kdump hang issue on p8 with relocation on exception enabled. · 429d2e83
    Mahesh Salgaonkar authored
    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: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    429d2e83
sections.h 1.22 KB