From owner-freebsd-sparc64@FreeBSD.ORG Mon Feb 13 11:50:11 2006 Return-Path: X-Original-To: freebsd-sparc64@hub.freebsd.org Delivered-To: freebsd-sparc64@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3E67116A420 for ; Mon, 13 Feb 2006 11:50:11 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 09CB243D46 for ; Mon, 13 Feb 2006 11:50:11 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k1DBo6qr074439 for ; Mon, 13 Feb 2006 11:50:06 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1DBo6S1074438; Mon, 13 Feb 2006 11:50:06 GMT (envelope-from gnats) Date: Mon, 13 Feb 2006 11:50:06 GMT Message-Id: <200602131150.k1DBo6S1074438@freefall.freebsd.org> To: freebsd-sparc64@FreeBSD.org From: Antoine Brodin Cc: Subject: Re: sparc64/93226: DEBUG_LOCKS (really stack_save()) causes panics on sparc64 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Antoine Brodin List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Feb 2006 11:50:11 -0000 The following reply was made to PR sparc64/93226; it has been noted by GNATS. From: Antoine Brodin To: bug-followup@FreeBSD.org, kris@FreeBSD.org Cc: Subject: Re: sparc64/93226: DEBUG_LOCKS (really stack_save()) causes panics on sparc64 Date: Mon, 13 Feb 2006 12:44:34 +0100 This is a multi-part message in MIME format. --Multipart=_Mon__13_Feb_2006_12_44_34_+0100_lHFJ6LWhOkOa2zgV Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Here is a proposed patch. It is untested (just compile tested) since I don't have this hardware. --Multipart=_Mon__13_Feb_2006_12_44_34_+0100_lHFJ6LWhOkOa2zgV Content-Type: text/plain; name="sparc64-stack_save.diff" Content-Disposition: attachment; filename="sparc64-stack_save.diff" Content-Transfer-Encoding: 7bit Index: sys/sparc64/sparc64/db_trace.c =================================================================== RCS file: /home/ncvs/src/sys/sparc64/sparc64/db_trace.c,v retrieving revision 1.24 diff -u -p -r1.24 db_trace.c --- sys/sparc64/sparc64/db_trace.c 3 Aug 2005 04:27:39 -0000 1.24 +++ sys/sparc64/sparc64/db_trace.c 13 Feb 2006 11:31:13 -0000 @@ -307,6 +307,12 @@ stack_save(struct stack *st) callpc = fp->fr_pc; if (!INKERNEL(callpc)) break; + /* + * Don't bother traversing trap-frames. + * tl0_* and tl1_* are just below fork_trampoline + */ + if (callpc < (vm_offset_t)fork_trampoline) + break; if (stack_put(st, callpc) == -1) break; fp = (struct frame *)(fp->fr_fp + SPOFF); --Multipart=_Mon__13_Feb_2006_12_44_34_+0100_lHFJ6LWhOkOa2zgV--