Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/uvm/uvm_fault.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/uvm/uvm_fault.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.125.6.1 retrieving revision 1.125.6.1.4.2 diff -u -p -r1.125.6.1 -r1.125.6.1.4.2 --- src/sys/uvm/uvm_fault.c 2009/02/02 18:31:37 1.125.6.1 +++ src/sys/uvm/uvm_fault.c 2011/05/25 23:58:49 1.125.6.1.4.2 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_fault.c,v 1.125.6.1 2009/02/02 18:31:37 snj Exp $ */ +/* uvm_fault.c,v 1.125.6.1.4.1 2010/01/26 21:26:28 matt Exp */ /* * @@ -39,7 +39,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.125.6.1 2009/02/02 18:31:37 snj Exp $"); +__KERNEL_RCSID(0, "uvm_fault.c,v 1.125.6.1.4.1 2010/01/26 21:26:28 matt Exp"); #include "opt_uvmhist.h" @@ -361,8 +361,9 @@ uvmfault_anonget(struct uvm_faultinfo *u /* * no page, we must try and bring it in. */ - - pg = uvm_pagealloc(NULL, 0, anon, 0); + KASSERT(ufi != NULL); + pg = uvm_pagealloc(NULL, ufi->orig_rvaddr, + NULL, UVM_FLAG_COLORMATCH); if (pg == NULL) { /* out of RAM. */ uvmfault_unlockall(ufi, amap, NULL, anon); uvmexp.fltnoram++; @@ -620,8 +621,8 @@ uvmfault_promote(struct uvm_faultinfo *u * so have uvm_pagealloc() do that for us. */ - pg = uvm_pagealloc(NULL, 0, anon, - (opg == NULL) ? UVM_PGA_ZERO : 0); + pg = uvm_pagealloc(NULL, ufi->orig_rvaddr, anon, + UVM_FLAG_COLORMATCH | (opg == NULL ? UVM_PGA_ZERO : 0)); } else { pg = NULL; } @@ -1266,7 +1267,8 @@ ReFault: if (anon->an_ref == 1) { /* get new un-owned replacement page */ - pg = uvm_pagealloc(NULL, 0, NULL, 0); + pg = uvm_pagealloc(NULL, ufi.orig_rvaddr, + NULL, UVM_FLAG_COLORMATCH); if (pg == NULL) { uvmfault_unlockall(&ufi, amap, uobj, anon);