In uvm_pager_dropcluster in the PG_RELEASED case we specifically unbusy the page so that uvm_anfree will free it.
in uvm_anfree, it will pmap_page_protect a page that it is going to free, so there is no need to do so beforehand ourselves. ok? -0- Index: uvm/uvm_pager.c =================================================================== RCS file: /cvs/src/sys/uvm/uvm_pager.c,v retrieving revision 1.57 diff -u -p -r1.57 uvm_pager.c --- uvm/uvm_pager.c 24 Jul 2010 15:40:39 -0000 1.57 +++ uvm/uvm_pager.c 1 Apr 2011 21:35:23 -0000 @@ -749,7 +747,6 @@ uvm_pager_dropcluster(struct uvm_object PG_BUSY); UVM_PAGE_OWN(ppsp[lcv], NULL); - pmap_page_protect(ppsp[lcv], VM_PROT_NONE); simple_unlock(&ppsp[lcv]->uanon->an_lock); /* kills anon and frees pg */ uvm_anfree(ppsp[lcv]->uanon); -- While anyone can admit to themselves they were wrong, the true test is admission to someone else.