Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Aug 2011 23:43:59 +0000 (UTC)
From:      Olivier Houchard <cognet@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r225238 - projects/armv6/sys/arm/arm
Message-ID:  <201108282343.p7SNhxd0071783@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cognet
Date: Sun Aug 28 23:43:58 2011
New Revision: 225238
URL: http://svn.freebsd.org/changeset/base/225238

Log:
  Only mark the page as dirty if it was mapped writable.
  While I'm there, remove some dead code, the page can't be NULL.

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

Modified: projects/armv6/sys/arm/arm/pmap-v6.c
==============================================================================
--- projects/armv6/sys/arm/arm/pmap-v6.c	Sun Aug 28 19:38:04 2011	(r225237)
+++ projects/armv6/sys/arm/arm/pmap-v6.c	Sun Aug 28 23:43:58 2011	(r225238)
@@ -2444,12 +2444,10 @@ pmap_protect(pmap_t pm, vm_offset_t sva,
 				pmap_set_prot(ptep, prot, !(pm == pmap_kernel()));
 				PTE_SYNC(ptep);
 
-				if (pg != NULL) {
-					f = pmap_modify_pv(pg, pm, sva,
-					    PVF_WRITE, 0);
+				f = pmap_modify_pv(pg, pm, sva,
+				    PVF_WRITE, 0);
+				if (f & PVF_WRITE)
 					vm_page_dirty(pg);
-				} else
-					f = PVF_REF | PVF_EXEC;
 
 				if (flush >= 0) {
 					flush++;

Modified: projects/armv6/sys/arm/arm/pmap.c
==============================================================================
--- projects/armv6/sys/arm/arm/pmap.c	Sun Aug 28 19:38:04 2011	(r225237)
+++ projects/armv6/sys/arm/arm/pmap.c	Sun Aug 28 23:43:58 2011	(r225238)
@@ -3241,15 +3241,13 @@ pmap_protect(pmap_t pm, vm_offset_t sva,
 				*ptep = pte;
 				PTE_SYNC(ptep);
 
-				if (pg != NULL) {
-					if (!(pg->oflags & VPO_UNMANAGED)) {
-						f = pmap_modify_pv(pg, pm, sva,
-						    PVF_WRITE, 0);
+				if (!(pg->oflags & VPO_UNMANAGED)) {
+					f = pmap_modify_pv(pg, pm, sva,
+					    PVF_WRITE, 0);
+					if (f & PVF_WRITE)
 						vm_page_dirty(pg);
-					} else
-						f = 0;
 				} else
-					f = PVF_REF | PVF_EXEC;
+					f = 0;
 
 				if (flush >= 0) {
 					flush++;



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