summaryrefslogtreecommitdiff
path: root/sys/uvm
diff options
context:
space:
mode:
authorAriane van der Steldt <ariane@cvs.openbsd.org>2009-06-03 04:56:55 +0000
committerAriane van der Steldt <ariane@cvs.openbsd.org>2009-06-03 04:56:55 +0000
commit6436bda7a6fb5eddf85fe005e29f058aee42f6b3 (patch)
tree23014443ad05820964ca915562a980aedd466aaf /sys/uvm
parentaf386c180a0a13ef7a8a11cb259576123488448b (diff)
phys allocator fix: zeroed pages are not clean.
Diffstat (limited to 'sys/uvm')
-rw-r--r--sys/uvm/uvm_page.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/uvm/uvm_page.c b/sys/uvm/uvm_page.c
index 76ba5b1fe45..66a34526725 100644
--- a/sys/uvm/uvm_page.c
+++ b/sys/uvm/uvm_page.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uvm_page.c,v 1.84 2009/06/02 23:00:19 oga Exp $ */
+/* $OpenBSD: uvm_page.c,v 1.85 2009/06/03 04:56:54 ariane Exp $ */
/* $NetBSD: uvm_page.c,v 1.44 2000/11/27 08:40:04 chs Exp $ */
/*
@@ -822,7 +822,9 @@ uvm_pagealloc_strat(struct uvm_object *obj, voff_t off, struct vm_anon *anon,
pg->offset = off;
pg->uobject = obj;
pg->uanon = anon;
- pg->pg_flags = PG_BUSY|PG_CLEAN|PG_FAKE;
+ pg->pg_flags = PG_BUSY|PG_FAKE;
+ if (!(flags & UVM_PGA_ZERO))
+ atomic_setbits_int(&pg->pg_flags, PG_CLEAN);
if (anon) {
anon->an_page = pg;
atomic_setbits_int(&pg->pg_flags, PQ_ANON);