Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sparc64/sparc64 cache_flush_virt() is buggy, just u...



details:   https://anonhg.NetBSD.org/src/rev/9f752d87b3b9
branches:  trunk
changeset: 553208:9f752d87b3b9
user:      chs <chs%NetBSD.org@localhost>
date:      Sun Oct 12 19:06:29 2003 +0000

description:
cache_flush_virt() is buggy, just use blast_dcache() instead.
this should fix PR 23093.

diffstat:

 sys/arch/sparc64/sparc64/pmap.c |  11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diffs (53 lines):

diff -r d94e3f1a3c44 -r 9f752d87b3b9 sys/arch/sparc64/sparc64/pmap.c
--- a/sys/arch/sparc64/sparc64/pmap.c   Sun Oct 12 18:56:44 2003 +0000
+++ b/sys/arch/sparc64/sparc64/pmap.c   Sun Oct 12 19:06:29 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.144 2003/09/26 03:59:33 chs Exp $   */
+/*     $NetBSD: pmap.c,v 1.145 2003/10/12 19:06:29 chs Exp $   */
 /*
  * 
  * Copyright (C) 1996-1999 Eduardo Horvath.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.144 2003/09/26 03:59:33 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.145 2003/10/12 19:06:29 chs Exp $");
 
 #undef NO_VCACHE /* Don't forget the locked TLB in dostart */
 #define        HWREF
@@ -1771,8 +1771,6 @@
 {
        struct pmap *pm = pmap_kernel();
        int64_t data;
-       vaddr_t flushva = va;
-       vsize_t flushsize = size;
        paddr_t pa;
        boolean_t flush = FALSE;
 
@@ -1826,7 +1824,7 @@
        }
        if (flush) {
                REMOVE_STAT(flushes);
-               cache_flush_virt(flushva, flushsize);
+               blast_dcache();
        }
 }
 
@@ -2097,7 +2095,6 @@
        vaddr_t va, endva;
 {
        int64_t data;
-       vaddr_t flushva = va;
        paddr_t pa;
        struct vm_page *pg;
        pv_entry_t pv;
@@ -2180,7 +2177,7 @@
        simple_unlock(&pm->pm_lock);
        if (flush && pm->pm_refs) {
                REMOVE_STAT(flushes);
-               cache_flush_virt(flushva, endva - flushva);
+               blast_dcache();
        }
        DPRINTF(PDB_REMOVE, ("\n"));
        pv_check();



Home | Main Index | Thread Index | Old Index