aboutsummaryrefslogtreecommitdiffstats
path: root/mm/mempolicy.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/mempolicy.c')
-rw-r--r--mm/mempolicy.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 11d824f282f1..902d4c9eccdc 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -228,9 +228,9 @@ static int check_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
228{ 228{
229 pte_t *orig_pte; 229 pte_t *orig_pte;
230 pte_t *pte; 230 pte_t *pte;
231 spinlock_t *ptl;
231 232
232 spin_lock(&vma->vm_mm->page_table_lock); 233 orig_pte = pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
233 orig_pte = pte = pte_offset_map(pmd, addr);
234 do { 234 do {
235 unsigned long pfn; 235 unsigned long pfn;
236 unsigned int nid; 236 unsigned int nid;
@@ -246,8 +246,7 @@ static int check_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
246 if (!node_isset(nid, *nodes)) 246 if (!node_isset(nid, *nodes))
247 break; 247 break;
248 } while (pte++, addr += PAGE_SIZE, addr != end); 248 } while (pte++, addr += PAGE_SIZE, addr != end);
249 pte_unmap(orig_pte); 249 pte_unmap_unlock(orig_pte, ptl);
250 spin_unlock(&vma->vm_mm->page_table_lock);
251 return addr != end; 250 return addr != end;
252} 251}
253 252