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 Add a missing tlb shootdown...



details:   https://anonhg.NetBSD.org/src/rev/162c1a7fb3ab
branches:  sommerfeld_i386mp_1
changeset: 482313:162c1a7fb3ab
user:      sommerfeld <sommerfeld%NetBSD.org@localhost>
date:      Sat Nov 18 22:56:26 2000 +0000

description:
Add a missing tlb shootdown operation.

diffstat:

 sys/arch/i386/i386/bus_machdep.c |  14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diffs (43 lines):

diff -r 43c7ef7c1f81 -r 162c1a7fb3ab sys/arch/i386/i386/bus_machdep.c
--- a/sys/arch/i386/i386/bus_machdep.c  Sat Nov 18 22:53:57 2000 +0000
+++ b/sys/arch/i386/i386/bus_machdep.c  Sat Nov 18 22:56:26 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: bus_machdep.c,v 1.1.2.2 2000/08/07 01:08:32 sommerfeld Exp $   */
+/*     $NetBSD: bus_machdep.c,v 1.1.2.3 2000/11/18 22:56:26 sommerfeld Exp $   */
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -275,6 +275,10 @@
        u_long pa, endpa;
        vaddr_t va;
        pt_entry_t *pte;
+#ifdef MULTIPROCESSOR
+       pt_entry_t opte;
+#endif
+       
 
        pa = i386_trunc_page(bpa);
        endpa = i386_round_page(bpa + size);
@@ -300,14 +304,22 @@
                 *
                 * XXX should hand this bit to pmap_kenter_pa to
                 * save the extra invalidate!
+                *
+                * XXX extreme paranoia suggests tlb shootdown belongs here.
                 */
                if (cpu_class != CPUCLASS_386) {
                        pte = kvtopte(va);
+#ifdef MULTIPROCESSOR
+                       opte = *pte;
+#endif
                        if (cacheable)
                                *pte &= ~PG_N;
                        else
                                *pte |= PG_N;
                        pmap_update_pg(va);
+#ifdef MULTIPROCESSOR
+                       pmap_tlb_shootdown(pmap_kernel(), va, opte);
+#endif
                }
        }
  



Home | Main Index | Thread Index | Old Index