Module Name: src
Committed By: matt
Date: Sun Mar 29 09:47:48 UTC 2015
Modified Files:
src/sys/arch/arm/arm32: vm_machdep.c
Log Message:
cache pmap in vmapbuf.
To generate a diff of this commit:
cvs rdiff -u -r1.69 -r1.70 src/sys/arch/arm/arm32/vm_machdep.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/vm_machdep.c
diff -u src/sys/arch/arm/arm32/vm_machdep.c:1.69 src/sys/arch/arm/arm32/vm_machdep.c:1.70
--- src/sys/arch/arm/arm32/vm_machdep.c:1.69 Mon Mar 10 05:18:34 2014
+++ src/sys/arch/arm/arm32/vm_machdep.c Sun Mar 29 09:47:48 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: vm_machdep.c,v 1.69 2014/03/10 05:18:34 matt Exp $ */
+/* $NetBSD: vm_machdep.c,v 1.70 2015/03/29 09:47:48 matt Exp $ */
/*
* Copyright (c) 1994-1998 Mark Brinicombe.
@@ -44,7 +44,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.69 2014/03/10 05:18:34 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.70 2015/03/29 09:47:48 matt Exp $");
#include "opt_armfpe.h"
#include "opt_pmap_debug.h"
@@ -216,9 +216,11 @@ cpu_lwp_free2(struct lwp *l)
int
vmapbuf(struct buf *bp, vsize_t len)
{
+ struct pmap * const pm = vm_map_pmap(&bp->b_proc->p_vmspace->vm_map);
vaddr_t faddr, taddr, off;
paddr_t fpa;
+ KASSERT(pm != pmap_kernel());
#ifdef PMAP_DEBUG
if (pmap_debug_level > 0)
@@ -242,8 +244,7 @@ vmapbuf(struct buf *bp, vsize_t len)
* non-NULL.
*/
while (len) {
- (void) pmap_extract(vm_map_pmap(&bp->b_proc->p_vmspace->vm_map),
- faddr, &fpa);
+ (void) pmap_extract(pm, faddr, &fpa);
pmap_kenter_pa(taddr, fpa, VM_PROT_READ|VM_PROT_WRITE,
PMAP_WIRED);
faddr += PAGE_SIZE;