linux/arch/powerpc/mm
Mahesh Salgaonkar 429d2e8342 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>
2014-02-11 11:24:47 +11:00
..
40x_mmu.c
44x_mmu.c
dma-noncoherent.c mm/arch: use __free_reserved_page() to simplify the code 2013-11-13 12:09:03 +09:00
fault.c arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
fsl_booke_mmu.c powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
gup.c powerpc: Fix __get_user_pages_fast() irq handling 2013-11-21 10:33:37 +11:00
hash_low_32.S
hash_low_64.S powerpc/mm: Free up _PAGE_COHERENCE for numa fault use later 2013-12-09 11:40:28 +11:00
hash_native_64.c powerpc: Book 3S MMU little endian support 2013-10-11 16:48:26 +11:00
hash_utils_64.c powerpc: Fix kdump hang issue on p8 with relocation on exception enabled. 2014-02-11 11:24:47 +11:00
highmem.c
hugepage-hash64.c powerpc/mm: Free up _PAGE_COHERENCE for numa fault use later 2013-12-09 11:40:28 +11:00
hugetlbpage-book3e.c powerpc/fsl-book3e-64: Use paca for hugetlb TLB1 entry selection 2014-01-09 17:52:20 -06:00
hugetlbpage-hash64.c powerpc/mm: Free up _PAGE_COHERENCE for numa fault use later 2013-12-09 11:40:28 +11:00
hugetlbpage.c powerpc/hugetlb: Replace __get_cpu_var with get_cpu_var 2014-01-29 17:02:26 +11:00
icswx_pid.c
icswx.c
icswx.h
init_32.c powerpc/8xx: Fixing memory init issue with CONFIG_PIN_TLB 2013-10-28 21:11:22 -05:00
init_64.c powerpc: Prepare to support kernel handling of IOMMU map/unmap 2013-10-11 17:24:39 +11:00
Makefile
mem.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
mmap.c
mmu_context_hash32.c
mmu_context_hash64.c
mmu_context_nohash.c
mmu_decl.h powerpc/fsl_booke: smp support for booting a relocatable kernel above 64M 2014-01-09 17:52:18 -06:00
numa.c powerpc/numa: Fix decimal permissions 2014-01-29 16:58:48 +11:00
pgtable_32.c powerpc: add barrier after writing kernel PTE 2014-01-09 17:52:19 -06:00
pgtable_64.c Merge remote-tracking branch 'scott/next' into next 2014-01-15 14:22:35 +11:00
pgtable.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
ppc_mmu_32.c
slb_low.S
slb.c
slice.c powerpc/mm: Fix mmap errno when MAP_FIXED is set and mapping exceeds the allowed address space 2014-01-29 17:02:25 +11:00
stab.c
subpage-prot.c
tlb_hash32.c
tlb_hash64.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
tlb_low_64e.S powerpc/booke64: Guard e6500 tlb handler with CONFIG_PPC_FSL_BOOK3E 2014-01-17 18:43:14 -06:00
tlb_nohash_low.S powerpc/fsl_booke: smp support for booting a relocatable kernel above 64M 2014-01-09 17:52:18 -06:00
tlb_nohash.c powerpc/booke64: Guard e6500 tlb handler with CONFIG_PPC_FSL_BOOK3E 2014-01-17 18:43:14 -06:00