summaryrefslogtreecommitdiff
path: root/mm/memory.c
diff options
context:
space:
mode:
authorKanoj Sarcar <kanoj@vger.kernel.org>2002-04-23 08:19:51 -0400
committerDavid S. Miller <davem@nuts.ninka.net>2002-04-23 08:19:51 -0400
commit30746bbd9545ec11346d515e419878ea265bb4d7 (patch)
treea612c66c2a131f3961562c453773f0db08b65b3c /mm/memory.c
parent45fbecb1147007167ea78399f165ceae775d86e7 (diff)
cachetlb.txt, locking, fork.c, mremap.c, mprotect.c, memory.c:
Make sure that flush_tlb_range is called with PTL held. Also, make sure no new threads can start up in user mode while a tlb_gather_mmu is in progress.
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/memory.c b/mm/memory.c
index d72dc2efe5c7..0bad3cf9636c 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -839,8 +839,8 @@ int zeromap_page_range(struct vm_area_struct *vma, unsigned long address, unsign
address = (address + PGDIR_SIZE) & PGDIR_MASK;
dir++;
} while (address && (address < end));
- spin_unlock(&mm->page_table_lock);
flush_tlb_range(vma, beg, end);
+ spin_unlock(&mm->page_table_lock);
return error;
}
@@ -922,8 +922,8 @@ int remap_page_range(struct vm_area_struct *vma, unsigned long from, unsigned lo
from = (from + PGDIR_SIZE) & PGDIR_MASK;
dir++;
} while (from && (from < end));
- spin_unlock(&mm->page_table_lock);
flush_tlb_range(vma, beg, end);
+ spin_unlock(&mm->page_table_lock);
return error;
}