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