From owner-p4-projects@FreeBSD.ORG Sun Mar 16 21:16:30 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 02D4E10656C3; Sun, 16 Mar 2008 21:16:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B66E310656C0 for ; Sun, 16 Mar 2008 21:16:29 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A1FE88FC1B for ; Sun, 16 Mar 2008 21:16:29 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2GLGTFT063352 for ; Sun, 16 Mar 2008 21:16:29 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2GLGTtn063350 for perforce@freebsd.org; Sun, 16 Mar 2008 21:16:29 GMT (envelope-from jb@freebsd.org) Date: Sun, 16 Mar 2008 21:16:29 GMT Message-Id: <200803162116.m2GLGTtn063350@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 137866 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Mar 2008 21:16:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=137866 Change 137866 by jb@jb_freebsd8 on 2008/03/16 21:15:35 Handle double traps on amd64 the same was as on i386 so that the double trap details are printed correctly and we end up in ddb rather than just rebooting. Affected files ... .. //depot/projects/dtrace/src/sys/amd64/amd64/trap.c#23 edit Differences ... ==== //depot/projects/dtrace/src/sys/amd64/amd64/trap.c#23 (text+ko) ==== @@ -105,6 +105,8 @@ */ dtrace_trap_func_t dtrace_trap_func; +dtrace_doubletrap_func_t dtrace_doubletrap_func; + /* * This is a hook which is initialised by the systrace module * when it is loaded. This keeps the DTrace syscall provider @@ -771,6 +773,10 @@ void dblfault_handler(struct trapframe *frame) { +#ifdef KDTRACE_HOOKS + if (dtrace_doubletrap_func != NULL) + (*dtrace_doubletrap_func)(); +#endif printf("\nFatal double fault\n"); printf("rip = 0x%lx\n", frame->tf_rip); printf("rsp = 0x%lx\n", frame->tf_rsp);