Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Nov 2011 00:27:25 +0000 (UTC)
From:      Olivier Houchard <cognet@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r227289 - projects/armv6/sys/arm/arm
Message-ID:  <201111070027.pA70RPW3048940@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



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