linux/arch/powerpc/mm
Michael Neuling 1c2c25c787 powerpc: Fix call to subpage_protection()
In:
  powerpc/mm: Fix pgtable cache cleanup with CONFIG_PPC_SUBPAGE_PROT
  commit d28513bc7f
  Author: David Gibson <david@gibson.dropbear.id.au>

subpage_protection() was changed to to take an mm rather a pgdir but it
didn't change calling site in hashpage_preload().  The change wasn't
noticed at compile time since hashpage_preload() used a void* as the
parameter to subpage_protection().

This is obviously wrong and can trigger the following crash when
CONFIG_SLAB, CONFIG_DEBUG_SLAB, CONFIG_PPC_64K_PAGES
CONFIG_PPC_SUBPAGE_PROT are enabled.

Freeing unused kernel memory: 704k freed
Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6c49b7
Faulting instruction address: 0xc0000000000410f4
cpu 0x2: Vector: 300 (Data Access) at [c00000004233f590]
    pc: c0000000000410f4: .hash_preload+0x258/0x338
    lr: c000000000041054: .hash_preload+0x1b8/0x338
    sp: c00000004233f810
   msr: 8000000000009032
   dar: 6b6b6b6b6b6c49b7
 dsisr: 40000000
  current = 0xc00000007e2c0070
  paca    = 0xc000000007fe0500
    pid   = 1, comm = init
enter ? for help
[c00000004233f810] c000000000041020 .hash_preload+0x184/0x338 (unreliable)
[c00000004233f8f0] c00000000003ed98 .update_mmu_cache+0xb0/0xd0
[c00000004233f990] c000000000157754 .__do_fault+0x48c/0x5dc
[c00000004233faa0] c000000000158fd0 .handle_mm_fault+0x508/0xa8c
[c00000004233fb90] c0000000006acdd4 .do_page_fault+0x428/0x6ac
[c00000004233fe30] c000000000005260 handle_page_fault+0x20/0x74

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2010-11-18 14:54:23 +11:00
..
40x_mmu.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
44x_mmu.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
dma-noncoherent.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
fault.c powerpc: Check end of stack canary at oops time 2010-09-02 14:07:30 +10:00
fsl_booke_mmu.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-10-21 21:19:54 -07:00
gup.c powerpc/mm: Allow more flexible layouts for hugepage pagetables 2009-10-30 17:20:58 +11:00
hash_low_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
hash_low_64.S powerpc/mm: Move around testing of _PAGE_PRESENT in hash code 2010-07-23 08:53:23 +10:00
hash_native_64.c powerpc: Convert native_tlbie_lock to raw_spinlock 2010-02-19 14:52:30 +11:00
hash_utils_64.c powerpc: Fix call to subpage_protection() 2010-11-18 14:54:23 +11:00
highmem.c mm: fix race in kunmap_atomic() 2010-10-27 18:03:05 -07:00
hugetlbpage-hash64.c powerpc/mm: Add some debug output when hash insertion fails 2010-07-23 12:56:56 +10:00
hugetlbpage.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
init_32.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
init_64.c Merge commit 'v2.6.36-rc3' into x86/memblock 2010-08-31 09:45:46 +02:00
Makefile powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips 2010-10-14 00:55:14 -05:00
mem.c memblock, bootmem: Round pfn properly for memory and reserved regions 2010-10-12 15:37:51 -07:00
mmap_64.c powerpc: Use helpers for rlimits 2010-01-15 13:20:08 +11:00
mmu_context_hash32.c PPC: Split context init/destroy functions 2010-05-17 12:18:20 +03:00
mmu_context_hash64.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mmu_context_nohash.c powerpc/mm: Assume first cpu is boot_cpuid not 0 2010-09-02 14:07:34 +10:00
mmu_decl.h powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips 2010-10-14 00:55:14 -05:00
numa.c memblock, bootmem: Round pfn properly for memory and reserved regions 2010-10-12 15:37:51 -07:00
pgtable_32.c lmb: rename to memblock 2010-07-14 17:14:00 +10:00
pgtable_64.c lmb: rename to memblock 2010-07-14 17:14:00 +10:00
pgtable.c powerpc: Remove all rcu head initializations 2010-07-09 11:28:34 +10:00
ppc_mmu_32.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
slb_low.S powerpc/mm: Fix hang accessing top of vmalloc space 2009-10-14 16:58:36 +11:00
slb.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
slice.c powerpc: is_hugepage_only_range() must account for both 4kB and 64kB slices 2009-01-16 16:15:16 +11:00
stab.c lmb: rename to memblock 2010-07-14 17:14:00 +10:00
subpage-prot.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tlb_hash32.c powerpc: Removing dead CONFIG_SMP_750 2010-07-09 11:28:38 +10:00
tlb_hash64.c powerpc: Fix address masking bug in hpte_need_flush() 2010-02-10 13:58:06 +11:00
tlb_low_64e.S fix comment typo leve -> level in powerpc 2010-02-05 12:22:38 +01:00
tlb_nohash_low.S powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips 2010-10-14 00:55:14 -05:00
tlb_nohash.c powerpc/mm: Fix build error in setup_initial_memory_limit 2010-11-18 14:54:22 +11:00