svn commit: r255607 - head/sys/amd64/amd64

Konstantin Belousov kib at FreeBSD.org
Mon Sep 16 06:15:16 UTC 2013


Author: kib
Date: Mon Sep 16 06:15:15 2013
New Revision: 255607
URL: http://svnweb.freebsd.org/changeset/base/255607

Log:
  In pmap_copy(), when the copied region is mapped with superpage but does
  not cover entire superpage, avoid copying.  Doing partial copy would
  require demotion, which is incompatible with the already held locks.
  
  Reported by:    cperciva
  Reviewed by:    alc
  Sponsored by:	The FreeBSD Foundation
  MFC after:      1 week
  Approved by:	re (delphij)

Modified:
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Mon Sep 16 02:01:36 2013	(r255606)
+++ head/sys/amd64/amd64/pmap.c	Mon Sep 16 06:15:15 2013	(r255607)
@@ -4356,6 +4356,8 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pm
 			continue;
 			
 		if (srcptepaddr & PG_PS) {
+			if ((addr & PDRMASK) != 0 || addr + NBPDR > end_addr)
+				continue;
 			dstmpde = pmap_allocpde(dst_pmap, addr, NULL);
 			if (dstmpde == NULL)
 				break;


More information about the svn-src-head mailing list