Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/arm/arm32 Only use FSR_WRITE on armv7 for now.



details:   https://anonhg.NetBSD.org/src/rev/b2f45765517a
branches:  trunk
changeset: 793760:b2f45765517a
user:      matt <matt%NetBSD.org@localhost>
date:      Tue Feb 25 22:18:09 2014 +0000

description:
Only use FSR_WRITE on armv7 for now.

diffstat:

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

diffs (47 lines):

diff -r c9896234e1dc -r b2f45765517a sys/arch/arm/arm32/fault.c
--- a/sys/arch/arm/arm32/fault.c        Tue Feb 25 22:16:52 2014 +0000
+++ b/sys/arch/arm/arm32/fault.c        Tue Feb 25 22:18:09 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: fault.c,v 1.94 2014/02/25 09:54:33 matt Exp $  */
+/*     $NetBSD: fault.c,v 1.95 2014/02/25 22:18:09 matt Exp $  */
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -81,7 +81,7 @@
 #include "opt_kgdb.h"
 
 #include <sys/types.h>
-__KERNEL_RCSID(0, "$NetBSD: fault.c,v 1.94 2014/02/25 09:54:33 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fault.c,v 1.95 2014/02/25 22:18:09 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -412,10 +412,11 @@
         * Otherwise we need to disassemble the instruction responsible to
         * determine if it was a write.
         */
-       if (CPU_IS_ARMV6_P() || CPU_IS_ARMV7_P()) {
+       if (/* CPU_IS_ARMV6_P() || */ CPU_IS_ARMV7_P()) {
                ftype = (fsr & FAULT_WRITE) ? VM_PROT_WRITE : VM_PROT_READ;
        } else if (IS_PERMISSION_FAULT(fsr)) {
                ftype = VM_PROT_WRITE; 
+               // KASSERTMSG(fsr & FAULT_WRITE, "fsr %#x", fsr);
        } else {
 #ifdef THUMB_CODE
                /* Fast track the ARM case.  */
@@ -435,6 +436,7 @@
                                ftype = VM_PROT_WRITE;
                        else
                                ftype = VM_PROT_READ;
+                       // KASSERTMSG(ftype == (fsr & FAULT_WRITE) ? VM_PROT_WRITE : VM_PROT_READ, "fsr %#x insn %#x", fsr, insn);
                }
                else
 #endif
@@ -450,6 +452,7 @@
                                ftype = VM_PROT_READ | VM_PROT_WRITE; 
                        else
                                ftype = VM_PROT_READ; 
+                       // KASSERTMSG(ftype == (fsr & FAULT_WRITE) ? VM_PROT_WRITE : VM_PROT_READ, "fsr %#x insn %#x", fsr, insn);
                }
        }
 



Home | Main Index | Thread Index | Old Index