Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Apr 2017 07:52:44 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r317354 - stable/11/sys/arm64/arm64
Message-ID:  <201704240752.v3O7qigH044430@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Mon Apr 24 07:52:44 2017
New Revision: 317354
URL: https://svnweb.freebsd.org/changeset/base/317354

Log:
  MFC r316679:
  Do not lose dirty bits for removing PROT_WRITE on arm64.

Modified:
  stable/11/sys/arm64/arm64/pmap.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/arm64/arm64/pmap.c
==============================================================================
--- stable/11/sys/arm64/arm64/pmap.c	Mon Apr 24 07:52:27 2017	(r317353)
+++ stable/11/sys/arm64/arm64/pmap.c	Mon Apr 24 07:52:44 2017	(r317354)
@@ -2481,6 +2481,11 @@ pmap_protect(pmap_t pmap, vm_offset_t sv
 		    sva += L3_SIZE) {
 			l3 = pmap_load(l3p);
 			if (pmap_l3_valid(l3)) {
+				if ((l3 & ATTR_SW_MANAGED) &&
+				    pmap_page_dirty(l3)) {
+					vm_page_dirty(PHYS_TO_VM_PAGE(l3 &
+					    ~ATTR_MASK));
+				}
 				pmap_set(l3p, ATTR_AP(ATTR_AP_RO));
 				PTE_SYNC(l3p);
 				/* XXX: Use pmap_invalidate_range */



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