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