summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/vm/vm_page.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index cac0a63e5ac3..e0a047acae88 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)vm_page.c 7.4 (Berkeley) 5/7/91
- * $Id: vm_page.c,v 1.17 1995/01/24 10:13:35 davidg Exp $
+ * $Id: vm_page.c,v 1.18 1995/02/02 09:09:05 davidg Exp $
*/
/*
@@ -755,10 +755,19 @@ again:
tmp_addr = addr = kmem_alloc_pageable(kernel_map, size);
for (i = start; i < (start + size / PAGE_SIZE); i++) {
- TAILQ_REMOVE(&vm_page_queue_free, &pga[i], pageq);
+ vm_page_t m = &pga[i];;
+
+ TAILQ_REMOVE(&vm_page_queue_free, m, pageq);
cnt.v_free_count--;
- vm_page_wire(&pga[i]);
- vm_page_set_clean(&pga[i], 0, PAGE_SIZE);
+ m->valid = VM_PAGE_BITS_ALL;
+ m->flags = 0;
+ m->dirty = 0;
+ m->wire_count = 0;
+ m->act_count = 0;
+ m->bmapped = 0;
+ m->busy = 0;
+ vm_page_insert(m, kernel_object, tmp_addr - VM_MIN_KERNEL_ADDRESS);
+ vm_page_wire(m);
pmap_kenter(tmp_addr, VM_PAGE_TO_PHYS(&pga[i]));
tmp_addr += PAGE_SIZE;
}