Source-Changes-HG archive

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

[src/sommerfeld_i386mp_1]: src/sys/arch/i386/i386 Make sure to go to splipi()...



details:   https://anonhg.NetBSD.org/src/rev/81fb68ab04c5
branches:  sommerfeld_i386mp_1
changeset: 482388:81fb68ab04c5
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Fri May 04 01:32:58 2001 +0000

description:
Make sure to go to splipi() when holding the shootdown queue lock.

diffstat:

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

diffs (29 lines):

diff -r c658a15d93f9 -r 81fb68ab04c5 sys/arch/i386/i386/pmap.c
--- a/sys/arch/i386/i386/pmap.c Wed May 02 13:12:46 2001 +0000
+++ b/sys/arch/i386/i386/pmap.c Fri May 04 01:32:58 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.83.2.33 2001/04/30 16:23:11 sommerfeld Exp $        */
+/*     $NetBSD: pmap.c,v 1.83.2.34 2001/05/04 01:32:58 thorpej Exp $   */
 
 /*
  *
@@ -594,6 +594,7 @@
        struct pmap_tlb_shootdown_q *pq;
        struct cpu_info *ci, *self = curcpu();
        CPU_INFO_ITERATOR cii;
+       int s;
 #endif
 
        tlbflush();             /* flush TLB on current processor */
@@ -610,9 +611,11 @@
                        continue;
                if (pmap_is_active(pmap, ci->ci_cpuid)) {
                        pq = &pmap_tlb_shootdown_q[ci->ci_cpuid];
+                       s = splipi();
                        simple_lock(&pq->pq_slock);
                        pq->pq_flushu++;
                        simple_unlock(&pq->pq_slock);
+                       splx(s);
                        i386_send_ipi(ci, I386_IPI_TLB);
                }
        }



Home | Main Index | Thread Index | Old Index