Module Name: src Committed By: matt Date: Thu May 17 16:22:38 UTC 2012
Modified Files: src/sys/arch/powerpc/booke: trap.c Log Message: Allow user addresses >= 0x80000000 To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/powerpc/booke/trap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/powerpc/booke/trap.c diff -u src/sys/arch/powerpc/booke/trap.c:1.14 src/sys/arch/powerpc/booke/trap.c:1.15 --- src/sys/arch/powerpc/booke/trap.c:1.14 Sun Feb 19 21:06:22 2012 +++ src/sys/arch/powerpc/booke/trap.c Thu May 17 16:22:38 2012 @@ -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 @@ trap(enum ppc_booke_exceptions trap_code } #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 @@ trap(enum ppc_booke_exceptions trap_code 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]);