Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/sh5/sh5 - g/c an accidentally committed debug hack



details:   https://anonhg.NetBSD.org/src/rev/d00896323b98
branches:  trunk
changeset: 537941:d00896323b98
user:      scw <scw%NetBSD.org@localhost>
date:      Tue Oct 08 16:01:07 2002 +0000

description:
- g/c an accidentally committed debug hack
- use sh5_trunc_page() instead of masking with SH5_PTEH_EPN mask
  where appropriate. The latter is not safe in 64-bit mode.

diffstat:

 sys/arch/sh5/sh5/pmap.c |  19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diffs (89 lines):

diff -r 66bb09282b0b -r d00896323b98 sys/arch/sh5/sh5/pmap.c
--- a/sys/arch/sh5/sh5/pmap.c   Tue Oct 08 15:59:32 2002 +0000
+++ b/sys/arch/sh5/sh5/pmap.c   Tue Oct 08 16:01:07 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.16 2002/10/07 15:02:07 scw Exp $    */
+/*     $NetBSD: pmap.c,v 1.17 2002/10/08 16:01:07 scw Exp $    */
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -296,7 +296,7 @@
        ptel_t pvo_ptel;                        /* PTEL for this mapping */
 };
 
-#define        PVO_VADDR(pvo)          ((pvo)->pvo_vaddr & SH5_PTEH_EPN_MASK)
+#define        PVO_VADDR(pvo)          (sh5_trunc_page((pvo)->pvo_vaddr))
 #define        PVO_ISEXECUTABLE(pvo)   ((pvo)->pvo_ptel & SH5_PTEL_PR_X)
 #define        PVO_ISWIRED(pvo)        ((pvo)->pvo_vaddr & PVO_WIRED)
 #define        PVO_ISMANAGED(pvo)      ((pvo)->pvo_vaddr & PVO_MANAGED)
@@ -737,7 +737,7 @@
 {
        ptel_t ptel;
 
-       __cpu_tlbinv(PVO_VADDR(pvo) | SH5_PTEH_SH,
+       __cpu_tlbinv((pteh_t)PVO_VADDR(pvo) | SH5_PTEH_SH,
            SH5_PTEH_EPN_MASK | SH5_PTEH_SH);
 
        ptel = pmap_kernel_ipt[idx];
@@ -1040,7 +1040,6 @@
         */
        size = sh5_round_page(MSGBUFSIZE);
        initmsgbuf((caddr_t)avail, size);
-       *((vaddr_t *)0xc0000000) = avail;
 
        avail = sh5_round_page(avail + size);
        mr[0].mr_start += size;
@@ -1512,7 +1511,7 @@
        struct pvo_entry *pvo;
        int idx;
 
-       va &= SH5_PTEH_EPN_MASK;
+       va = sh5_trunc_page(va);
 
        if (va < SH5_KSEG0_BASE) {
                idx = va_to_pteg(pm->pm_vsid, va);
@@ -1580,7 +1579,7 @@
        oldptel = *ptel;
        *ptel = 0;
 
-       __cpu_tlbinv((kva & SH5_PTEH_EPN_MASK) | SH5_PTEH_SH,
+       __cpu_tlbinv(((pteh_t)kva & SH5_PTEH_EPN_MASK) | SH5_PTEH_SH,
            SH5_PTEH_EPN_MASK | SH5_PTEH_SH);
 
        pmap_cache_sync_unmap(kva, oldptel);
@@ -1650,7 +1649,7 @@
        int i, s;
        int poolflags = PR_NOWAIT;
 
-       va &= SH5_PTEH_EPN_MASK;
+       va = sh5_trunc_page(va);
 
 #ifdef PMAP_DIAG
        if (pm == pmap_kernel() && va < SH5_KSEG1_BASE) {
@@ -2202,7 +2201,7 @@
        pvo = pmap_pvo_find_va(pm, va, NULL);
        if (pvo != NULL) {
                *pap = (pvo->pvo_ptel & SH5_PTEL_PPN_MASK) |
-                   (va & ~SH5_PTEH_EPN_MASK);
+                   sh5_page_offset(va);
                found = TRUE;
                PMPRINTF(("%smanaged pvo. pa 0x%lx\n",
                    PVO_ISMANAGED(pvo) ? "" : "un", *pap));
@@ -2211,7 +2210,7 @@
                idx = kva_to_iptidx(va);
                if (idx >= 0 && pmap_kernel_ipt[idx]) {
                        *pap = (pmap_kernel_ipt[idx] & SH5_PTEL_PPN_MASK) |
-                           (va & ~SH5_PTEH_EPN_MASK);
+                           sh5_page_offset(va);
                        found = TRUE;
                        PMPRINTF(("no pvo, but kipt pa 0x%lx\n", *pap));
                }
@@ -2700,7 +2699,7 @@
        } else {
                KDASSERT(idx >= 0);
 
-               __cpu_tlbinv(PVO_VADDR(pvo) | SH5_PTEH_SH,
+               __cpu_tlbinv((pteh_t)PVO_VADDR(pvo) | SH5_PTEH_SH,
                    SH5_PTEH_EPN_MASK | SH5_PTEH_SH);
 
                /*



Home | Main Index | Thread Index | Old Index