Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Aug 2006 17:51:46 -0700
From:      Peter Grehan <grehan@freebsd.org>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        ppc@freebsd.org
Subject:   Re: gdb(1) in the tree
Message-ID:  <44EE49A2.1050809@freebsd.org>
In-Reply-To: <44EE45EC.3040403@freebsd.org>
References:  <FF91B2A4-68A6-4F30-B3A2-91B849B51415@xcllnt.net>	<44ED2448.7030503@freebsd.org>	<46D747A2-7126-450A-83E4-DA7367706F18@xcllnt.net> <44EE45EC.3040403@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------010204090503000209030707
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Oops, previous one was wrong non-compilable version :(

later,

Peter.

--------------010204090503000209030707
Content-Type: text/plain;
 name="mmu_oea.c.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="mmu_oea.c.patch"

Index: mmu_oea.c
===================================================================
RCS file: /home/ncvs/src/sys/powerpc/powerpc/mmu_oea.c,v
retrieving revision 1.111
diff -u -r1.111 mmu_oea.c
--- mmu_oea.c	1 Aug 2006 19:06:05 -0000	1.111
+++ mmu_oea.c	25 Aug 2006 00:49:34 -0000
@@ -2012,6 +2012,22 @@
 
 		pg = PHYS_TO_VM_PAGE(pvo->pvo_pte.pte_lo & PTE_RPGN);
 		if (pg != NULL) {
+			/*
+			 * From NetBSD pmap.c r1.37
+			 * If the page was changed and it is mapped exec,
+			 * invalidate it
+			 */
+			if ((pvo->pvo_pte.pte_lo & PTE_CHG) &&
+			    (moea_attr_fetch(pg) & PTE_EXEC)) {
+				struct pvo_head *pvoh = vm_page_to_pvoh(pg);
+				if (LIST_EMPTY(pvoh)) {
+					moea_attr_clear(pg, PTE_EXEC);
+				} else {
+					moea_syncicache(VM_PAGE_TO_PHYS(pg),
+							PAGE_SIZE);
+				}
+			}
+
 			moea_attr_save(pg, pvo->pvo_pte.pte_lo &
 			    (PTE_REF | PTE_CHG));
 		}

--------------010204090503000209030707--



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