Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/arm32/arm32 Fix another problem is the modified bit...



details:   https://anonhg.NetBSD.org/src/rev/2507f2b920b6
branches:  trunk
changeset: 467387:2507f2b920b6
user:      mycroft <mycroft%NetBSD.org@localhost>
date:      Wed Mar 24 02:45:27 1999 +0000

description:
Fix another problem is the modified bit emulation that caused double faults.
We need to set the L2 type preemptively, as it may still be L2_INVAL if the
page had not been previously accessed.

diffstat:

 sys/arch/arm32/arm32/pmap.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (23 lines):

diff -r eba95a9d174f -r 2507f2b920b6 sys/arch/arm32/arm32/pmap.c
--- a/sys/arch/arm32/arm32/pmap.c       Wed Mar 24 02:07:22 1999 +0000
+++ b/sys/arch/arm32/arm32/pmap.c       Wed Mar 24 02:45:27 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.46 1999/03/23 18:39:38 mycroft Exp $        */
+/*     $NetBSD: pmap.c,v 1.47 1999/03/24 02:45:27 mycroft Exp $        */
 
 /*
  * Copyright (c) 1994-1998 Mark Brinicombe.
@@ -2716,11 +2716,11 @@
 
        PDEBUG(0, printf("pmap_modified_emulation: Got a hit va=%08lx, pte = %p (%08x)\n",
            va, pte, *pte));
-       *pte = (*pte) | PT_AP(AP_W);
+       *pte = ((*pte) & ~L2_MASK) | L2_SPAGE | PT_AP(AP_W);
        PDEBUG(0, printf("->(%08x)\n", *pte));
        cpu_tlb_flushID_SE(va);
     
-       vm_physmem[bank].pmseg.attrs[off] |= PT_M | PT_H;
+       vm_physmem[bank].pmseg.attrs[off] |= PT_H | PT_M;
 
        /* Return, indicating the problem has been dealt with */
        return(1);



Home | Main Index | Thread Index | Old Index