Module Name: src
Committed By: kiyohara
Date: Mon Jan 9 06:49:25 UTC 2012
Modified Files:
src/sys/arch/powerpc/ibm4xx: pmap.c
Log Message:
Move spl from ppc4xx_tlb_enter() to pmap_enter(). Don't call splx() on
I/DTLBMISS.
To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 src/sys/arch/powerpc/ibm4xx/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/powerpc/ibm4xx/pmap.c
diff -u src/sys/arch/powerpc/ibm4xx/pmap.c:1.70 src/sys/arch/powerpc/ibm4xx/pmap.c:1.71
--- src/sys/arch/powerpc/ibm4xx/pmap.c:1.70 Thu Jun 30 00:52:58 2011
+++ src/sys/arch/powerpc/ibm4xx/pmap.c Mon Jan 9 06:49:25 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.70 2011/06/30 00:52:58 matt Exp $ */
+/* $NetBSD: pmap.c,v 1.71 2012/01/09 06:49:25 kiyohara Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.70 2011/06/30 00:52:58 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.71 2012/01/09 06:49:25 kiyohara Exp $");
#include <sys/param.h>
#include <sys/cpu.h>
@@ -875,7 +875,9 @@ pmap_enter(struct pmap *pm, vaddr_t va,
/* If this is a real fault, enter it in the tlb */
if (tte && ((flags & PMAP_WIRED) == 0)) {
+ int s2 = splhigh();
ppc4xx_tlb_enter(pm->pm_ctx, va, tte);
+ splx(s2);
}
splx(s);
@@ -1289,7 +1291,7 @@ ppc4xx_tlb_enter(int ctx, vaddr_t va, u_
tlbpid_t pid;
u_short msr;
paddr_t pa;
- int s, sz;
+ int sz;
tlbenter_ev.ev_count++;
@@ -1299,7 +1301,6 @@ ppc4xx_tlb_enter(int ctx, vaddr_t va, u_
tl = (pte & ~TLB_RPN_MASK) | pa;
tl |= ppc4xx_tlbflags(va, pa);
- s = splhigh();
idx = ppc4xx_tlb_find_victim();
#ifdef DIAGNOSTIC
@@ -1330,7 +1331,6 @@ ppc4xx_tlb_enter(int ctx, vaddr_t va, u_
"sync; isync;"
: "=&r" (msr), "=&r" (pid)
: "r" (ctx), "r" (idx), "r" (tl), "r" (th));
- splx(s);
}
void