summaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-11-28 03:58:46 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-11-28 03:58:46 +0000
commitb63ad0882a16a5d28003e57f2b0b81dee3fb322b (patch)
tree0a343ce219e2b8b38a5d702d66032c57b83d9720 /mm/vmscan.c
parenta9d7bff9a84dba79609a0002e5321b74c4d64c64 (diff)
Merge with 2.4.0-test11.
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index d7fd0aca8..dd92afecc 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -185,6 +185,8 @@ drop_pte:
if (!entry.val)
goto out_unlock_restore; /* No swap space left */
+ /* Make sure to flush the TLB _before_ we start copying things.. */
+ flush_tlb_page(vma, address);
if (!(page = prepare_highmem_swapout(page)))
goto out_swap_free;
@@ -196,7 +198,6 @@ drop_pte:
/* Put the swap entry into the pte after the page is in swapcache */
mm->rss--;
set_pte(page_table, swp_entry_to_pte(entry));
- flush_tlb_page(vma, address);
spin_unlock(&mm->page_table_lock);
/* OK, do a physical asynchronous write to swap. */