Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-5]: src/sys/arch/sparc64/sparc64 pull up 1.51 (approved by thor...
details: https://anonhg.NetBSD.org/src/rev/a6cab4e17ec5
branches: netbsd-1-5
changeset: 488825:a6cab4e17ec5
user: mrg <mrg%NetBSD.org@localhost>
date: Mon Jul 31 02:10:22 2000 +0000
description:
pull up 1.51 (approved by thorpej):
>Now we're running 64-bit userland don't panic the system if a process steps
>into the address space hole.
diffstat:
sys/arch/sparc64/sparc64/trap.c | 50 ++++++++++++----------------------------
1 files changed, 15 insertions(+), 35 deletions(-)
diffs (77 lines):
diff -r e37c6e616073 -r a6cab4e17ec5 sys/arch/sparc64/sparc64/trap.c
--- a/sys/arch/sparc64/sparc64/trap.c Mon Jul 31 02:09:09 2000 +0000
+++ b/sys/arch/sparc64/sparc64/trap.c Mon Jul 31 02:10:22 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: trap.c,v 1.44.2.1 2000/07/18 16:23:31 mrg Exp $ */
+/* $NetBSD: trap.c,v 1.44.2.2 2000/07/31 02:10:22 mrg Exp $ */
/*
* Copyright (c) 1996
@@ -1262,29 +1262,13 @@
*/
if ((afsr) != 0 ||
(type == T_DATAFAULT && !(sfsr & SFSR_FV))) {
-#ifdef not4u
- memerr4m(type, sfsr, sfva, afsr, afva, tf);
- /*
- * If we get here, exit the trap handler and wait for the
- * trap to reoccur
- */
- goto out;
-#else
printf("data memory error type %x sfsr=%p sfva=%p afsr=%p afva=%p tf=%p\n",
type, sfsr, sfva, afsr, afva, tf);
- if (tstate & (PSTATE_PRIV<<TSTATE_PSTATE_SHIFT)) {
-#ifdef DDB
-DEBUGGER(type, tf);
-#endif
- /* User fault -- Berr */
- trapsignal(p, SIGBUS, (u_long)sfva);
- } else {
-#ifdef DDB
- DEBUGGER(type, tf);
-#endif
+ if (tstate & (PSTATE_PRIV<<TSTATE_PSTATE_SHIFT))
panic("trap: memory error");
- }
-#endif
+
+ /* User fault -- Berr */
+ trapsignal(p, SIGBUS, (u_long)sfva);
}
/*
@@ -1643,23 +1627,19 @@
tstate = tf->tf_tstate;
if ((afsr) != 0) {
-#ifdef not4u
- /* Async text fault??? */
- memerr4m(type, sfsr, pc, afsr, afva, tf);
- /*
- * If we get here, exit the trap handler and wait for the
- * trap to reoccur
- */
- goto out;
-#else
extern int trap_trace_dis;
- trap_trace_dis = 1; /* Disable traptrace for printf */
- printf("text_access_error: memory error...");
+
+ trap_trace_dis++; /* Disable traptrace for printf */
+ printf("text_access_error: memory error...\n");
printf("text memory error type %d sfsr=%p sfva=%p afsr=%p afva=%p tf=%p\n",
type, sfsr, pc, afsr, afva, tf);
- DEBUGGER(type, tf);
- panic("text_access_error: memory error");
-#endif
+ trap_trace_dis--; /* Reenable traptrace for printf */
+
+ if (tstate & (PSTATE_PRIV<<TSTATE_PSTATE_SHIFT))
+ panic("text_access_error: kernel memory error");
+
+ /* User fault -- Berr */
+ trapsignal(p, SIGBUS, (u_long)pc);
}
if ((sfsr & SFSR_FV) == 0 || (sfsr & SFSR_FT) == 0)
Home |
Main Index |
Thread Index |
Old Index