patch-2.4.0-test11 linux/mm/vmscan.c

Next file: linux/net/Makefile
Previous file: linux/mm/vmalloc.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test10/linux/mm/vmscan.c linux/mm/vmscan.c
@@ -185,6 +185,8 @@
 	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 @@
 	/* 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.  */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)