Correct an error in vm_fault_copy_entry() that has existed since the first

version of this file.  When a process forks, any wired pages are immediately
copied because copy-on-write is not supported for wired pages.  In other
words, the child process is given its own private copy of each wired page
from its parent's address space.  Unfortunately, to date, these copied pages
have been mapped into the child's address space with the wrong permissions,
typically VM_PROT_ALL.  This change corrects the permissions.

Reviewed by:	kib
This commit is contained in:
alc 2009-10-31 17:39:56 +00:00
parent b44c3ebbbe
commit b6a248b75a

View File

@ -1179,7 +1179,7 @@ vm_fault_copy_entry(vm_map_t dst_map, vm_map_t src_map,
dst_object->uip = dst_entry->uip;
dst_entry->uip = NULL;
}
access = prot = dst_entry->max_protection;
access = prot = dst_entry->protection;
/*
* If not an upgrade, then enter the mappings in the pmap as
* read and/or execute accesses. Otherwise, enter them as