Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/powerpc/booke Allow user addresses >= 0x80000000



details:   https://anonhg.NetBSD.org/src/rev/7889d76d44d5
branches:  trunk
changeset: 779306:7889d76d44d5
user:      matt <matt%NetBSD.org@localhost>
date:      Thu May 17 16:22:38 2012 +0000

description:
Allow user addresses >= 0x80000000

diffstat:

 sys/arch/powerpc/booke/trap.c |  10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diffs (38 lines):

diff -r d6da56c06e3b -r 7889d76d44d5 sys/arch/powerpc/booke/trap.c
--- a/sys/arch/powerpc/booke/trap.c     Thu May 17 16:21:45 2012 +0000
+++ b/sys/arch/powerpc/booke/trap.c     Thu May 17 16:22:38 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: trap.c,v 1.14 2012/02/19 21:06:22 rmind Exp $  */
+/*     $NetBSD: trap.c,v 1.15 2012/05/17 16:22:38 matt Exp $   */
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: trap.c,v 1.14 2012/02/19 21:06:22 rmind Exp $");
+__KERNEL_RCSID(1, "$NetBSD: trap.c,v 1.15 2012/05/17 16:22:38 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -699,7 +699,8 @@
        }
 #endif
 
-       if (usertrap && (tf->tf_fixreg[1] & 0x80000000)) {
+       if ((VM_MAX_ADDRESS & 0x80000000) == 0
+           && usertrap && (tf->tf_fixreg[1] & 0x80000000)) {
                printf("%s(entry): pid %d.%d (%s): %s invalid sp %#lx (sprg1=%#lx)\n",
                    __func__, p->p_pid, l->l_lid, p->p_comm,
                    trap_names[trap_code], tf->tf_fixreg[1], mfspr(SPR_SPRG1));
@@ -778,7 +779,8 @@
        case T_AST:
                KASSERT(usertrap);
                cpu_ast(l, ci);
-               if (tf->tf_fixreg[1] & 0x80000000) {
+               if ((VM_MAX_ADDRESS & 0x80000000) == 0
+                  && (tf->tf_fixreg[1] & 0x80000000)) {
                        printf("%s(ast-exit): pid %d.%d (%s): invalid sp %#lx\n",
                            __func__, p->p_pid, l->l_lid, p->p_comm,
                            tf->tf_fixreg[1]);



Home | Main Index | Thread Index | Old Index