On Monday, 11 September 2000 at 17:44:43 +1100, Bruce Evans wrote:
> On Mon, 11 Sep 2000, Greg Lehey wrote:
>
>> On Monday, 11 September 2000 at 13:18:37 +1100, Bruce Evans wrote:
>>> The stray interrupt handler needs to have a thread, or stray interrupts
>>> need to be handled as traps.  Stray interrupts are more like NMIs than
>>> normal interrupts, and NMIs are already (mis)handled as traps.
>>
>> Independently of that, we need to be able to survive a spurious
>> interrupt on any IRQ.
>
> Not really independent.  Spurious interrupts on "any" IRQ can't
> happen, interrupts without a handler are masked.

Right, I had forgotten that.  But it's still defensive programming to
DTRT if we get one, especially if it doesn't cost anything.

> Spurious interrupts on irq7/irq15 can happen because normal masking
> by the irq7/irq15 bit in the ICU doesn't apply (I think they can
> happen even if all bits in the ICU mask are set).  They are like an
> NMI in this respect.

Strange.  Does this still happen on modern hardware?

> The old code accidentally had some defense against nested spurious
> interrupts.  Masking in the ICU doesn't work, but masking in `cpl'
> happens to do the right thing (actually the same wrong thing as for
> non-nested spurious interrupts).

We don't have a cpl any more.

Greg
--
Finger [EMAIL PROTECTED] for PGP public key
See complete headers for address and phone numbers


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to