Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/sparc64/sparc64 Fix locking problem.



details:   https://anonhg.NetBSD.org/src/rev/928186359ba7
branches:  trunk
changeset: 514978:928186359ba7
user:      eeh <eeh%NetBSD.org@localhost>
date:      Sat Sep 15 07:12:22 2001 +0000

description:
Fix locking problem.

diffstat:

 sys/arch/sparc64/sparc64/pmap.c |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (25 lines):

diff -r 08a0933c411e -r 928186359ba7 sys/arch/sparc64/sparc64/pmap.c
--- a/sys/arch/sparc64/sparc64/pmap.c   Sat Sep 15 07:10:04 2001 +0000
+++ b/sys/arch/sparc64/sparc64/pmap.c   Sat Sep 15 07:12:22 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.108 2001/09/10 21:19:26 chris Exp $ */
+/*     $NetBSD: pmap.c,v 1.109 2001/09/15 07:12:22 eeh Exp $   */
 #undef NO_VCACHE /* Don't forget the locked TLB in dostart */
 #define        HWREF
 /*
@@ -3244,7 +3244,6 @@
                               
                firstpv = pv = pa_to_pvh(pa);
                s = splvm();
-               if (firstpv->pv_pmap) simple_lock(&firstpv->pv_pmap->pm_lock);
 
                /* First remove the entire list of continuation pv's*/
                for (npv = pv->pv_next; npv; npv = pv->pv_next) {
@@ -3313,6 +3312,7 @@
                }
 #endif
                if (pv->pv_pmap != NULL) {
+                       simple_lock(&pv->pv_pmap->pm_lock);
 #ifdef DEBUG
                        if (pmapdebug & (PDB_CHANGEPROT|PDB_REF|PDB_REMOVE)) {
                                printf("pmap_page_protect: demap va %p of pa %lx from pm %p...\n",



Home | Main Index | Thread Index | Old Index