--- Net2/vm/vm_fault.c 2018/04/24 18:04:41 1.1.1.2 +++ Net2/vm/vm_fault.c 2018/04/24 18:09:15 1.1.1.3 @@ -62,7 +62,7 @@ * rights to redistribute these changes. */ -static char rcsid[] = "$Header: /var/lib/cvsd/net2/Net2/vm/vm_fault.c,v 1.1.1.2 2018/04/24 18:04:41 root Exp $"; +static char rcsid[] = "$Header: /var/lib/cvsd/net2/Net2/vm/vm_fault.c,v 1.1.1.3 2018/04/24 18:09:15 root Exp $"; /* * Page fault handling module. @@ -246,6 +246,7 @@ vm_fault(map, vaddr, fault_type, change_ PAGE_ASSERT_WAIT(m, !change_wiring); UNLOCK_THINGS; +thread_wakeup(&vm_pages_needed); /* XXX! -- what does this do? */ thread_block(); wait_result = current_thread()->wait_result; vm_object_deallocate(first_object); @@ -279,6 +280,7 @@ thread_wakeup(&vm_pages_needed); /* XXX! PAGE_ASSERT_WAIT(m, !change_wiring); UNLOCK_THINGS; +thread_wakeup(&vm_pages_needed); /* XXX! -- what does this do? */ thread_block(); wait_result = current_thread()->wait_result; vm_object_deallocate(first_object); @@ -528,7 +530,7 @@ thread_wakeup(&vm_pages_needed); /* XXX */ vm_page_lock_queues(); - vm_page_deactivate(m); + vm_page_activate(m); pmap_page_protect(VM_PAGE_TO_PHYS(m), VM_PROT_NONE); vm_page_unlock_queues(); @@ -625,6 +627,7 @@ thread_wakeup(&vm_pages_needed); /* XXX copy_object->ref_count--; vm_object_unlock(copy_object); UNLOCK_THINGS; +thread_wakeup(&vm_pages_needed); /* XXX! -- what does this do? */ thread_block(); wait_result = current_thread()->wait_result; vm_object_deallocate(first_object);