diff options
| -rw-r--r-- | sys/vm/vm_page.c | 17 |
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; } |
