Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/sparc/sparc srmmu_cache_flush: when flushing per-pa...
details: https://anonhg.NetBSD.org/src/rev/78f1aa589740
branches: trunk
changeset: 542017:78f1aa589740
user: pk <pk%NetBSD.org@localhost>
date: Mon Jan 20 22:15:54 2003 +0000
description:
srmmu_cache_flush: when flushing per-page and doing more than one page,
we might be crossing a segment boundary.
diffstat:
sys/arch/sparc/sparc/cache.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diffs (22 lines):
diff -r d9ff951a197f -r 78f1aa589740 sys/arch/sparc/sparc/cache.c
--- a/sys/arch/sparc/sparc/cache.c Mon Jan 20 22:11:15 2003 +0000
+++ b/sys/arch/sparc/sparc/cache.c Mon Jan 20 22:15:54 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cache.c,v 1.76 2003/01/20 21:56:34 pk Exp $ */
+/* $NetBSD: cache.c,v 1.77 2003/01/20 22:15:54 pk Exp $ */
/*
* Copyright (c) 1996
@@ -797,9 +797,11 @@
sta(p, ASI_IDCACHELFP, 0);
#if defined(MULTIPROCESSOR)
if (cpuinfo.cpu_type == CPUTYP_HS_MBUS) {
- /* Just flush the segment from the TLB */
+ /* Just flush the segment(s) from the TLB */
+ /* XXX - assumes CACHE_FLUSH_MAGIC <= NBPSG */
int va = (int)base & ~SGOFSET;
sta(va | ASI_SRMMUFP_L2, ASI_SRMMUFP, 0);
+ sta((va+NBPSG) | ASI_SRMMUFP_L2, ASI_SRMMUFP, 0);
}
#endif
setcontext4m(octx);
Home |
Main Index |
Thread Index |
Old Index