From owner-cvs-all Mon Aug 7 23:16:18 2000 Delivered-To: cvs-all@freebsd.org Received: from gidora.zeta.org.au (gidora.zeta.org.au [203.26.10.25]) by hub.freebsd.org (Postfix) with SMTP id 0495F37B565 for ; Mon, 7 Aug 2000 23:16:12 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: (qmail 13456 invoked from network); 8 Aug 2000 06:16:07 -0000 Received: from unknown (HELO bde.zeta.org.au) (203.2.228.102) by gidora.zeta.org.au with SMTP; 8 Aug 2000 06:16:07 -0000 Date: Tue, 8 Aug 2000 16:16:03 +1000 (EST) From: Bruce Evans X-Sender: bde@besplex.bde.org To: Paul Saab Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/i386/i386 trap.c src/sys/i386/isa intr_machdep.c In-Reply-To: <200008061417.HAA07856@freefall.freebsd.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sun, 6 Aug 2000, Paul Saab wrote: > ps 2000/08/06 07:17:21 PDT > > Modified files: > sys/i386/i386 trap.c > sys/i386/isa intr_machdep.c > Log: > Change the behavior of isa_nmi to log an error message instead of > panicing and return a status so that we can decide whether to drop > into DDB or panic. If the status from isa_nmi is true, panic the > kernel based on machdep.panic_on_nmi, otherwise if DDB is > enabled, drop to DDB based on machdep.ddb_on_nmi. log() is not reentrant, so it can't be called from a _non_maskable_ interrupt handler. Similarly for printf() and panic(). The old code in isa_nmi() had the excuse that a recursive panic while printing the panic message is no worse than the original panic. The old code in trap() didn't have that excuse. trap() should be more careful about reentrancy in general, and not go near printf() except for traps that are about to become fatal. Traps for non-interrupts are also non-maskable. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message