Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-3]: src/sys/arch/sh3/sh3 Pull up revision 1.8 (requested by uwe i...
details: https://anonhg.NetBSD.org/src/rev/dd97b9b3ad32
branches: netbsd-3
changeset: 575123:dd97b9b3ad32
user: tron <tron%NetBSD.org@localhost>
date: Mon Apr 04 23:30:57 2005 +0000
description:
Pull up revision 1.8 (requested by uwe in ticket #108):
Revert previous. It causes df(1) to reset my Jornada 680 sometimes.
And df(1) that is called during /etc/daily run resets it almost always.
diffstat:
sys/arch/sh3/sh3/mmu_sh3.c | 20 +++++---------------
1 files changed, 5 insertions(+), 15 deletions(-)
diffs (93 lines):
diff -r ca614caa93be -r dd97b9b3ad32 sys/arch/sh3/sh3/mmu_sh3.c
--- a/sys/arch/sh3/sh3/mmu_sh3.c Mon Apr 04 19:45:53 2005 +0000
+++ b/sys/arch/sh3/sh3/mmu_sh3.c Mon Apr 04 23:30:57 2005 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mmu_sh3.c,v 1.7 2004/12/30 09:48:30 tsutsui Exp $ */
+/* $NetBSD: mmu_sh3.c,v 1.7.8.1 2005/04/04 23:30:57 tron Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mmu_sh3.c,v 1.7 2004/12/30 09:48:30 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mmu_sh3.c,v 1.7.8.1 2005/04/04 23:30:57 tron Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -63,11 +63,10 @@
sh3_tlb_invalidate_addr(int asid, vaddr_t va)
{
u_int32_t a, d;
- int s, w;
+ int w;
d = (va & SH3_MMUAA_D_VPN_MASK_4K) | asid; /* 4K page */
va = va & SH3_MMU_VPN_MASK; /* [16:12] entry index */
- s = _cpu_exception_suspend();
/* Probe entry and invalidate it. */
for (w = 0; w < SH3_MMU_WAY; w++) {
@@ -78,17 +77,14 @@
break;
}
}
-
- _cpu_exception_resume(s);
}
void
sh3_tlb_invalidate_asid(int asid)
{
u_int32_t aw, a;
- int s, e, w;
+ int e, w;
- s = _cpu_exception_suspend();
/* Invalidate entry attribute to ASID */
for (w = 0; w < SH3_MMU_WAY; w++) {
aw = (w << SH3_MMU_WAY_SHIFT);
@@ -100,16 +96,14 @@
}
}
}
- _cpu_exception_resume(s);
}
void
sh3_tlb_invalidate_all()
{
u_int32_t aw, a;
- int s, e, w;
+ int e, w;
- s = _cpu_exception_suspend();
/* Zero clear all TLB entry to avoid unexpected VPN match. */
for (w = 0; w < SH3_MMU_WAY; w++) {
aw = (w << SH3_MMU_WAY_SHIFT);
@@ -119,18 +113,15 @@
_reg_write_4(SH3_MMUDA | a, 0);
}
}
- _cpu_exception_resume(s);
}
void
sh3_tlb_update(int asid, vaddr_t va, u_int32_t pte)
{
u_int32_t oasid;
- int s;
KDASSERT(asid < 0x100 && (pte & ~PGOFSET) != 0 && va != 0);
- s = _cpu_exception_suspend();
/* Save old ASID */
oasid = _reg_read_4(SH3_PTEH) & SH3_PTEH_ASID_MASK;
@@ -145,5 +136,4 @@
/* Restore old ASID */
if (asid != oasid)
_reg_write_4(SH3_PTEH, oasid);
- _cpu_exception_resume(s);
}
Home |
Main Index |
Thread Index |
Old Index