[PATCH] Drop page table lock before calling migrate_page_add()
migrate_page_add cannot be called with a spinlock held (calls isolate_lru_page which calles schedule_on_each_cpu). Drop ptl lock in check_pte_range before calling migrate_page_add(). Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
1a75a6c825
commit
132beacf97
1 changed files with 4 additions and 1 deletions
|
@ -259,8 +259,11 @@ static int check_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
|
|||
|
||||
if (flags & MPOL_MF_STATS)
|
||||
gather_stats(page, private);
|
||||
else if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))
|
||||
else if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) {
|
||||
spin_unlock(ptl);
|
||||
migrate_page_add(vma, page, private, flags);
|
||||
spin_lock(ptl);
|
||||
}
|
||||
else
|
||||
break;
|
||||
} while (pte++, addr += PAGE_SIZE, addr != end);
|
||||
|
|
Loading…
Reference in a new issue