svn commit: r227289 - projects/armv6/sys/arm/arm

Olivier Houchard cognet at FreeBSD.org
Mon Nov 7 00:27:26 UTC 2011


Author: cognet
Date: Mon Nov  7 00:27:25 2011
New Revision: 227289
URL: http://svn.freebsd.org/changeset/base/227289

Log:
  In pmap_modify_pv(), if we're removing the PVF_WRITE flag, don't forget
  to check if there's any writable mapping left for the page, and remove the
  PGA_WRITEABLE flag if there's not any.

Modified:
  projects/armv6/sys/arm/arm/pmap-v6.c

Modified: projects/armv6/sys/arm/arm/pmap-v6.c
==============================================================================
--- projects/armv6/sys/arm/arm/pmap-v6.c	Mon Nov  7 00:12:16 2011	(r227288)
+++ projects/armv6/sys/arm/arm/pmap-v6.c	Mon Nov  7 00:27:25 2011	(r227289)
@@ -1103,6 +1103,16 @@ pmap_modify_pv(struct vm_page *pg, pmap_
 		else
 			--pm->pm_stats.wired_count;
 	}
+	if ((oflags & PVF_WRITE) && !(flags & PVF_WRITE)) {
+		TAILQ_FOREACH(npv, &pg->md.pv_list, pv_list) {
+			if (npv->pv_flags & PVF_WRITE)
+				break;
+		}
+		if (!npv) {
+			pg->md.pvh_attrs &= ~PVF_MOD;
+			vm_page_aflag_clear(pg, PGA_WRITEABLE);
+		}
+	}
 
 	return (oflags);
 }


More information about the svn-src-projects mailing list