Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Oct 2009 17:39:56 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r198721 - head/sys/vm
Message-ID:  <200910311739.n9VHdu6T097561@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: alc
Date: Sat Oct 31 17:39:56 2009
New Revision: 198721
URL: http://svn.freebsd.org/changeset/base/198721

Log:
  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

Modified:
  head/sys/vm/vm_fault.c

Modified: head/sys/vm/vm_fault.c
==============================================================================
--- head/sys/vm/vm_fault.c	Sat Oct 31 17:28:08 2009	(r198720)
+++ head/sys/vm/vm_fault.c	Sat Oct 31 17:39:56 2009	(r198721)
@@ -1179,7 +1179,7 @@ vm_fault_copy_entry(vm_map_t dst_map, vm
 		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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910311739.n9VHdu6T097561>