Skip site navigation (1)Skip section navigation (2)
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>