Module Name: src
Committed By: skrll
Date: Fri Jul 12 10:39:12 UTC 2019
Modified Files:
src/sys/uvm/pmap: pmap.c vmpagemd.h
Log Message:
Provide and use PV_ISKENTER_P. NFCI.
To generate a diff of this commit:
cvs rdiff -u -r1.41 -r1.42 src/sys/uvm/pmap/pmap.c
cvs rdiff -u -r1.11 -r1.12 src/sys/uvm/pmap/vmpagemd.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/uvm/pmap/pmap.c
diff -u src/sys/uvm/pmap/pmap.c:1.41 src/sys/uvm/pmap/pmap.c:1.42
--- src/sys/uvm/pmap/pmap.c:1.41 Wed Jun 19 09:56:17 2019
+++ src/sys/uvm/pmap/pmap.c Fri Jul 12 10:39:12 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.41 2019/06/19 09:56:17 skrll Exp $ */
+/* $NetBSD: pmap.c,v 1.42 2019/07/12 10:39:12 skrll Exp $ */
/*-
* Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.41 2019/06/19 09:56:17 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.42 2019/07/12 10:39:12 skrll Exp $");
/*
* Manages physical address maps.
@@ -722,7 +722,7 @@ pmap_page_remove(struct vm_page *pg)
for (; pv != NULL; pv = npv) {
npv = pv->pv_next;
#ifdef PMAP_VIRTUAL_CACHE_ALIASES
- if (pv->pv_va & PV_KENTER) {
+ if (PV_ISKENTER_P(pv)) {
UVMHIST_LOG(pmaphist, " pv %#jx pmap %#jx va %jx"
" skip", (uintptr_t)pv, (uintptr_t)pv->pv_pmap,
pv->pv_va, 0);
@@ -988,7 +988,7 @@ pmap_page_protect(struct vm_page *pg, vm
if (pv->pv_pmap != NULL) {
while (pv != NULL) {
#ifdef PMAP_VIRTUAL_CACHE_ALIASES
- if (pv->pv_va & PV_KENTER) {
+ if (PV_ISKENTER_P(pv)) {
pv = pv->pv_next;
continue;
}
@@ -1664,7 +1664,7 @@ pmap_clear_modify(struct vm_page *pg)
pv_next = pv->pv_next;
#ifdef PMAP_VIRTUAL_CACHE_ALIASES
- if (pv->pv_va & PV_KENTER)
+ if (PV_ISKENTER_P(pv))
continue;
#endif
pt_entry_t * const ptep = pmap_pte_lookup(pmap, va);
Index: src/sys/uvm/pmap/vmpagemd.h
diff -u src/sys/uvm/pmap/vmpagemd.h:1.11 src/sys/uvm/pmap/vmpagemd.h:1.12
--- src/sys/uvm/pmap/vmpagemd.h:1.11 Wed Jun 19 12:55:01 2019
+++ src/sys/uvm/pmap/vmpagemd.h Fri Jul 12 10:39:12 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: vmpagemd.h,v 1.11 2019/06/19 12:55:01 christos Exp $ */
+/* $NetBSD: vmpagemd.h,v 1.12 2019/07/12 10:39:12 skrll Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -63,6 +63,8 @@ typedef struct pv_entry {
#define PV_KENTER __BIT(0)
} *pv_entry_t;
+#define PV_ISKENTER_P(pv) (((pv->pv_va) & PV_KENTER) != 0)
+
#ifndef _MODULE
#define VM_PAGEMD_REFERENCED __BIT(0) /* page has been referenced */