diff --git a/sys/arch/amd64/amd64/trap.c b/sys/arch/amd64/amd64/trap.c index d740f8032187..afec8296dc91 100644 --- a/sys/arch/amd64/amd64/trap.c +++ b/sys/arch/amd64/amd64/trap.c @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.48 2008/05/30 10:36:20 ad Exp $ */ +/* $NetBSD: trap.c,v 1.49 2008/05/30 10:38:21 ad Exp $ */ /*- * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.48 2008/05/30 10:36:20 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.49 2008/05/30 10:38:21 ad Exp $"); #include "opt_ddb.h" #include "opt_kgdb.h" @@ -226,6 +226,15 @@ trap(struct trapframe *frame) default: we_re_toast: + if (frame->tf_trapno < trap_types) + printf("fatal %s", trap_type[frame->tf_trapno]); + else + printf("unknown trap %ld", (u_long)frame->tf_trapno); + printf(" in %s mode\n", (type & T_USER) ? "user" : "supervisor"); + printf("trap type %d code %lx rip %lx cs %lx rflags %lx cr2 " + " %lx cpl %x rsp %lx\n", + type, frame->tf_err, (u_long)frame->tf_rip, frame->tf_cs, + frame->tf_rflags, rcr2(), curcpu()->ci_ilevel, frame->tf_rsp); #ifdef KGDB if (kgdb_trap(type, frame)) return; @@ -244,16 +253,6 @@ trap(struct trapframe *frame) if (kdb_trap(type, 0, frame)) return; #endif - if (frame->tf_trapno < trap_types) - printf("fatal %s", trap_type[frame->tf_trapno]); - else - printf("unknown trap %ld", (u_long)frame->tf_trapno); - printf(" in %s mode\n", (type & T_USER) ? "user" : "supervisor"); - printf("trap type %d code %lx rip %lx cs %lx rflags %lx cr2 " - " %lx cpl %x rsp %lx\n", - type, frame->tf_err, (u_long)frame->tf_rip, frame->tf_cs, - frame->tf_rflags, rcr2(), curcpu()->ci_ilevel, frame->tf_rsp); - panic("trap"); /*NOTREACHED*/ diff --git a/sys/arch/i386/i386/trap.c b/sys/arch/i386/i386/trap.c index 2d6e276bcc32..3e4d00f692eb 100644 --- a/sys/arch/i386/i386/trap.c +++ b/sys/arch/i386/i386/trap.c @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.238 2008/05/30 10:36:20 ad Exp $ */ +/* $NetBSD: trap.c,v 1.239 2008/05/30 10:38:21 ad Exp $ */ /*- * Copyright (c) 1998, 2000, 2005, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.238 2008/05/30 10:36:20 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.239 2008/05/30 10:38:21 ad Exp $"); #include "opt_ddb.h" #include "opt_kgdb.h" @@ -342,6 +342,14 @@ trap(frame) } } #endif + if (frame->tf_trapno < trap_types) + printf("fatal %s", trap_type[frame->tf_trapno]); + else + printf("unknown trap %d", frame->tf_trapno); + printf(" in %s mode\n", (type & T_USER) ? "user" : "supervisor"); + printf("trap type %d code %x eip %x cs %x eflags %x cr2 %lx ilevel %x\n", + type, frame->tf_err, frame->tf_eip, frame->tf_cs, + frame->tf_eflags, (long)rcr2(), curcpu()->ci_ilevel); #ifdef DDB if (kdb_trap(type, 0, frame)) return; @@ -360,15 +368,6 @@ trap(frame) } } #endif - if (frame->tf_trapno < trap_types) - printf("fatal %s", trap_type[frame->tf_trapno]); - else - printf("unknown trap %d", frame->tf_trapno); - printf(" in %s mode\n", (type & T_USER) ? "user" : "supervisor"); - printf("trap type %d code %x eip %x cs %x eflags %x cr2 %lx ilevel %x\n", - type, frame->tf_err, frame->tf_eip, frame->tf_cs, - frame->tf_eflags, (long)rcr2(), curcpu()->ci_ilevel); - panic("trap"); /*NOTREACHED*/