Module Name:    src
Committed By:   kiyohara
Date:           Thu Sep 12 14:45:18 UTC 2013

Modified Files:
        src/sys/arch/arm/arm32: pmap.c

Log Message:
Fix VIVT cache operation.  Tested on Kirkwood machines.


To generate a diff of this commit:
cvs rdiff -u -r1.263 -r1.264 src/sys/arch/arm/arm32/pmap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/arm32/pmap.c
diff -u src/sys/arch/arm/arm32/pmap.c:1.263 src/sys/arch/arm/arm32/pmap.c:1.264
--- src/sys/arch/arm/arm32/pmap.c:1.263	Sun Aug 18 06:50:31 2013
+++ src/sys/arch/arm/arm32/pmap.c	Thu Sep 12 14:45:18 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.263 2013/08/18 06:50:31 matt Exp $	*/
+/*	$NetBSD: pmap.c,v 1.264 2013/09/12 14:45:18 kiyohara Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -209,7 +209,7 @@
 #include <arm/locore.h>
 #include <arm/arm32/katelib.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.263 2013/08/18 06:50:31 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.264 2013/09/12 14:45:18 kiyohara Exp $");
 
 #ifdef PMAP_DEBUG
 
@@ -2992,7 +2992,7 @@ pmap_enter(pmap_t pm, vaddr_t va, paddr_
 			oflags = pv->pv_flags;
 
 #ifdef PMAP_CACHE_VIVT
-			if (!(oflags & PVF_NC) == 0 && l2pte_valid(opte)) {
+			if (!(oflags & PVF_NC) && l2pte_valid(opte)) {
 				pmap_cache_wbinv_page(pm, va, true, oflags);
 			}
 #endif
@@ -3624,7 +3624,8 @@ pmap_protect(pmap_t pm, vaddr_t sva, vad
 				 * write-protect operation.  If the pmap is
 				 * active, write-back the page.
 				 */
-				pmap_cache_wbinv_page(pm, sva, false, PVF_REF);
+				pmap_cache_wbinv_page(pm, sva, false,
+				    PVF_REF | PVF_WRITE);
 #endif
 
 				pg = PHYS_TO_VM_PAGE(l2pte_pa(pte));

Reply via email to