Module Name: src Committed By: bouyer Date: Mon Feb 20 19:14:24 UTC 2012
Modified Files: src/sys/uvm: uvm_km.c uvm_kmguard.c uvm_map.c Log Message: When using uvm_km_pgremove_intrsafe() make sure mappings are removed before returning the pages to the free pool. Otherwise, under Xen, a page which still has a writable mapping could be allocated for a PDP by another CPU and the hypervisor would refuse it (this is PR port-xen/45975). For this, move the pmap_kremove() calls inside uvm_km_pgremove_intrsafe(), and do pmap_kremove()/uvm_pagefree() in batch of (at most) 16 entries (as suggested by Chuck Silvers on tech-kern@, see also http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012727.html and followups). To generate a diff of this commit: cvs rdiff -u -r1.121 -r1.122 src/sys/uvm/uvm_km.c cvs rdiff -u -r1.9 -r1.10 src/sys/uvm/uvm_kmguard.c cvs rdiff -u -r1.314 -r1.315 src/sys/uvm/uvm_map.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.