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