diff options
| author | Kanoj Sarcar <kanoj@vger.kernel.org> | 2002-04-23 08:19:51 -0400 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2002-04-23 08:19:51 -0400 |
| commit | 30746bbd9545ec11346d515e419878ea265bb4d7 (patch) | |
| tree | a612c66c2a131f3961562c453773f0db08b65b3c /mm/memory.c | |
| parent | 45fbecb1147007167ea78399f165ceae775d86e7 (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.c | 4 |
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; } |
