From: Ingo Molnar Teach special (recursive) locking code to the lock validator. Has no effect on non-lockdep kernels. Signed-off-by: Ingo Molnar Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton --- mm/memory.c | 2 +- mm/mremap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN mm/memory.c~lockdep-annotate-mm mm/memory.c --- a/mm/memory.c~lockdep-annotate-mm +++ a/mm/memory.c @@ -504,7 +504,7 @@ again: return -ENOMEM; src_pte = pte_offset_map_nested(src_pmd, addr); src_ptl = pte_lockptr(src_mm, src_pmd); - spin_lock(src_ptl); + spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING); do { /* diff -puN mm/mremap.c~lockdep-annotate-mm mm/mremap.c --- a/mm/mremap.c~lockdep-annotate-mm +++ a/mm/mremap.c @@ -97,7 +97,7 @@ static void move_ptes(struct vm_area_str new_pte = pte_offset_map_nested(new_pmd, new_addr); new_ptl = pte_lockptr(mm, new_pmd); if (new_ptl != old_ptl) - spin_lock(new_ptl); + spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING); for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE, new_pte++, new_addr += PAGE_SIZE) { _