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));