svn commit: r317354 - stable/11/sys/arm64/arm64

Konstantin Belousov kib at FreeBSD.org
Mon Apr 24 07:52:46 UTC 2017


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 */


More information about the svn-src-stable-11 mailing list