linux-stable/arch/powerpc/mm
Aneesh Kumar K.V 69e044dd75 powerpc: Fix possible deadlock on page fault
stack_grow_into/14082 is trying to acquire lock:
  (&mm->mmap_sem){++++++}, at: [<c000000000206d28>] .might_fault+0x78/0xe0

 but task is already holding lock:
  (&mm->mmap_sem){++++++}, at: [<c0000000007ffd8c>] .do_page_fault+0x24c/0x910

 other info that might help us debug this:
  Possible unsafe locking scenario:

        CPU0
        ----
   lock(&mm->mmap_sem);
   lock(&mm->mmap_sem);

  *** DEADLOCK ***

  May be due to missing lock nesting notation

 1 lock held by stack_grow_into/14082:
  #0:  (&mm->mmap_sem){++++++}, at: [<c0000000007ffd8c>] .do_page_fault+0x24c/0x910

 stack backtrace:
 CPU: 21 PID: 14082 Comm: stack_grow_into Not tainted 3.10.0-10.el7.ppc64.debug #1
 Call Trace:
 [c0000003d396b850] [c000000000016e7c] .show_stack+0x7c/0x1f0 (unreliable)
 [c0000003d396b920] [c000000000813fc8] .dump_stack+0x28/0x3c
 [c0000003d396b990] [c000000000124b90] .__lock_acquire+0x1640/0x1800
 [c0000003d396bab0] [c00000000012570c] .lock_acquire+0xac/0x250
 [c0000003d396bb80] [c000000000206d54] .might_fault+0xa4/0xe0
 [c0000003d396bbf0] [c0000000007ffe2c] .do_page_fault+0x2ec/0x910
 [c0000003d396be30] [c0000000000092e8] handle_page_fault+0x10/0x30

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-09-11 11:39:37 +10:00
..
40x_mmu.c
44x_mmu.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
dma-noncoherent.c
fault.c powerpc: Fix possible deadlock on page fault 2013-09-11 11:39:37 +10:00
fsl_booke_mmu.c
gup.c powerpc: Implement __get_user_pages_fast() 2013-08-14 14:57:14 +10:00
hash_low_32.S
hash_low_64.S powerpc/mm: handle hugepage size correctly when invalidating hpte entries 2013-06-21 16:01:52 +10:00
hash_native_64.c powerpc/mm: Use the correct SLB(LLP) encoding in tlbie instruction 2013-07-24 14:42:24 +10:00
hash_utils_64.c powerpc: Fix a number of sparse warnings 2013-08-14 11:50:24 +10:00
highmem.c
hugepage-hash64.c powerpc: Make linux pagetable walk safe with THP enabled 2013-06-21 16:01:56 +10:00
hugetlbpage-book3e.c
hugetlbpage-hash64.c powerpc/mm: handle hugepage size correctly when invalidating hpte entries 2013-06-21 16:01:52 +10:00
hugetlbpage.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-07-04 10:29:23 -07:00
icswx.c powerpc: Fix typo "CONFIG_ICSWX_PID" 2013-04-18 13:03:54 +10:00
icswx.h
icswx_pid.c
init_32.c ppc: init_32: Fix error typo "CONFIG_START_KERNEL" 2013-08-20 13:07:31 +02:00
init_64.c powerpc/THP: Double the PMD table size for THP 2013-06-21 16:01:53 +10:00
Makefile powerpc/THP: Add code to handle HPTE faults for hugepages 2013-06-21 16:01:56 +10:00
mem.c powerpc/mm: Mark Memory Resources as busy 2013-08-27 14:35:11 +10:00
mmap.c mm: remove free_area_cache 2013-07-10 18:11:34 -07:00
mmu_context_hash32.c
mmu_context_hash64.c powerpc: Reduce PTE table memory wastage 2013-04-30 16:00:07 +10:00
mmu_context_nohash.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
mmu_decl.h
numa.c powerpc: Make NUMA device node code endian safe 2013-08-14 15:33:33 +10:00
pgtable.c powerpc: disable assert_pte_locked for collapse_huge_page 2013-06-21 16:01:57 +10:00
pgtable_32.c
pgtable_64.c powerpc: Optimize hugepage invalidate 2013-06-21 16:01:58 +10:00
ppc_mmu_32.c
slb.c powerpc: Fix little endian lppaca, slb_shadow and dtl_entry 2013-08-14 15:33:35 +10:00
slb_low.S powerpc: Rename USER_ESID_BITS* to ESID_BITS* 2013-03-17 12:45:44 +11:00
slice.c mm: use vm_unmapped_area() on powerpc architecture 2013-04-30 11:05:17 +10:00
stab.c
subpage-prot.c powerpc: Fix a number of sparse warnings 2013-08-14 11:50:24 +10:00
tlb_hash32.c
tlb_hash64.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-07-04 10:29:23 -07:00
tlb_low_64e.S
tlb_nohash.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
tlb_nohash_low.S