Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/powerpc/mpc6xx Fix a missing restore interrupt. di...



details:   https://anonhg.NetBSD.org/src/rev/2dc318bd4104
branches:  trunk
changeset: 514704:2dc318bd4104
user:      matt <matt%NetBSD.org@localhost>
date:      Sun Sep 09 04:35:22 2001 +0000

description:
Fix a missing restore interrupt.  disable interrupts around pvo_enter in
pmap_kenter.  Shouldn't be needed but ...

diffstat:

 sys/arch/powerpc/mpc6xx/pmap.c |  6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diffs (36 lines):

diff -r 02924d13a6b9 -r 2dc318bd4104 sys/arch/powerpc/mpc6xx/pmap.c
--- a/sys/arch/powerpc/mpc6xx/pmap.c    Sun Sep 09 04:23:19 2001 +0000
+++ b/sys/arch/powerpc/mpc6xx/pmap.c    Sun Sep 09 04:35:22 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.23 2001/08/30 22:06:44 matt Exp $   */
+/*     $NetBSD: pmap.c,v 1.24 2001/09/09 04:35:22 matt Exp $   */
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -1419,6 +1419,7 @@
                                if ((flags & PMAP_CANFAIL) == 0)
                                        panic("pmap_pvo_enter: failed");
                                pmap_pvo_enter_depth--;
+                               pmap_interrupts_restore(msr);
                                return ENOMEM;
 #if 0
                        }
@@ -1622,6 +1623,7 @@
 {
        struct mem_region *mp;
        u_int32_t pte_lo;
+       u_int32_t msr;
        int error;
        int s;
 
@@ -1646,8 +1648,10 @@
                pte_lo |= PTE_BR;
 
        s = splvm();
+       msr = pmap_interrupts_off();
        error = pmap_pvo_enter(pmap_kernel(), &pmap_upvo_pool, &pmap_pvo_kunmanaged,
            va, pa, pte_lo, prot|PMAP_WIRED);
+       pmap_interrupts_restore(msr);
        splx(s);
 
        if (error != 0 && error != ENOENT)



Home | Main Index | Thread Index | Old Index