Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/mips/mips bugfix: make sure there is no valid data ...
details: https://anonhg.NetBSD.org/src/rev/6409ef6fcb39
branches: trunk
changeset: 485955:6409ef6fcb39
user: shin <shin%NetBSD.org@localhost>
date: Tue May 09 13:40:13 2000 +0000
description:
bugfix: make sure there is no valid data in data cache, when last
mapping to the physical page is removed (R3000/MIPS1).
delete cache operations in pmap_zero_page_uncached().
diffstat:
sys/arch/mips/mips/pmap.c | 27 +++++++--------------------
1 files changed, 7 insertions(+), 20 deletions(-)
diffs (62 lines):
diff -r a03a1ba9e355 -r 6409ef6fcb39 sys/arch/mips/mips/pmap.c
--- a/sys/arch/mips/mips/pmap.c Tue May 09 13:23:57 2000 +0000
+++ b/sys/arch/mips/mips/pmap.c Tue May 09 13:40:13 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.96 2000/04/30 23:30:47 soren Exp $ */
+/* $NetBSD: pmap.c,v 1.97 2000/05/09 13:40:13 shin Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -78,7 +78,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.96 2000/04/30 23:30:47 soren Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.97 2000/05/09 13:40:13 shin Exp $");
/*
* Manages physical address maps.
@@ -1552,15 +1552,6 @@
printf("pmap_zero_page(%lx) nonphys\n", phys);
#endif
-#if defined(MIPS3) && defined(MIPS3_L2CACHE_ABSENT)
- if (CPUISMIPS3 && !mips_L2CachePresent) {
- /*XXX FIXME Not very sophisticated */
- /* XXX Is this really necessary? Can't we assure that
- * pages to be zeroed are already flushed?
- */
- mips_flushcache_allpvh(phys);
- }
-#endif
p = (int *)MIPS_PHYS_TO_KSEG0(phys);
end = p + PAGE_SIZE / sizeof(int);
/* XXX blkclr()? */
@@ -1621,15 +1612,6 @@
printf("pmap_zero_page_uncached(%lx) nonphys\n", phys);
#endif
-#if defined(MIPS3) && defined(MIPS3_L2CACHE_ABSENT)
- if (CPUISMIPS3 && !mips_L2CachePresent) {
- /*XXX FIXME Not very sophisticated */
- /* XXX Is this really necessary? Can't we assure that
- * pages to be zeroed are already flushed?
- */
- mips_flushcache_allpvh(phys);
- }
-#endif
p = (int *)MIPS_PHYS_TO_KSEG1(phys);
end = p + PAGE_SIZE / sizeof(int);
/* XXX blkclr()? */
@@ -2113,6 +2095,11 @@
}
}
splx(s);
+#ifdef MIPS1
+ if (CPUISMIPS3 == 0 && last != 0) {
+ MachFlushDCache(MIPS_PHYS_TO_KSEG0(pa), PAGE_SIZE);
+ }
+#endif
#ifdef MIPS3
if (CPUISMIPS3 && pv->pv_flags & PV_UNCACHED) {
/*
Home |
Main Index |
Thread Index |
Old Index