Date: Tue, 8 Aug 2000 16:16:03 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Paul Saab <ps@FreeBSD.org> 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 Message-ID: <Pine.BSF.4.21.0008081609350.9957-100000@besplex.bde.org> In-Reply-To: <200008061417.HAA07856@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0008081609350.9957-100000>