Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/alpha/alpha add an unlock missing from previous rev...



details:   https://anonhg.NetBSD.org/src/rev/194c2539f95c
branches:  trunk
changeset: 513768:194c2539f95c
user:      chs <chs%NetBSD.org@localhost>
date:      Mon Aug 13 01:12:15 2001 +0000

description:
add an unlock missing from previous revision.

diffstat:

 sys/arch/alpha/alpha/pmap.c |  12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diffs (55 lines):

diff -r 80d29add6f51 -r 194c2539f95c sys/arch/alpha/alpha/pmap.c
--- a/sys/arch/alpha/alpha/pmap.c       Sun Aug 12 23:51:15 2001 +0000
+++ b/sys/arch/alpha/alpha/pmap.c       Mon Aug 13 01:12:15 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.185 2001/07/16 21:37:21 thorpej Exp $ */
+/* $NetBSD: pmap.c,v 1.186 2001/08/13 01:12:15 chs Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -154,7 +154,7 @@
 
 #include <sys/cdefs.h>                 /* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.185 2001/07/16 21:37:21 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.186 2001/08/13 01:12:15 chs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1475,33 +1475,31 @@
        case VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE:
        case VM_PROT_READ|VM_PROT_WRITE:
                return;
+
        /* copy_on_write */
        case VM_PROT_READ|VM_PROT_EXECUTE:
        case VM_PROT_READ:
                PMAP_HEAD_TO_MAP_LOCK();
                simple_lock(&pg->mdpage.pvh_slock);
-
                for (pv = pg->mdpage.pvh_list; pv != NULL; pv = pv->pv_next) {
                        /* XXX Don't write-protect pager mappings. */
                        if (pv->pv_va >= uvm.pager_sva &&
                            pv->pv_va < uvm.pager_eva)
                                continue;
-
                        PMAP_LOCK(pv->pv_pmap);
-
                        if (*pv->pv_pte & (PG_KWE | PG_UWE)) {
                                *pv->pv_pte &= ~(PG_KWE | PG_UWE);
                                PMAP_INVALIDATE_TLB(pv->pv_pmap, pv->pv_va,
                                    pmap_pte_asm(pv->pv_pte),
                                    PMAP_ISACTIVE(pv->pv_pmap, cpu_id), cpu_id);
                        }
+                       PMAP_UNLOCK(pv->pv_pmap);
                }
-
                simple_unlock(&pg->mdpage.pvh_slock);
                PMAP_HEAD_TO_MAP_UNLOCK();
-
                PMAP_TLB_SHOOTNOW();
                return;
+
        /* remove_all */
        default:
                break;



Home | Main Index | Thread Index | Old Index