Subject: Re: Bug in x86 ioapic interrupt code for devices with shared interrupts?
To: Jonathan Stone <jonathan@dsg.stanford.edu>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: port-i386
Date: 03/03/2006 15:03:05
On Fri, Mar 03, 2006 at 11:37:31AM -0800, Jonathan Stone wrote:
> 
> Yes,  the interrupt handler in  bge(4) (sys/dev/pci/if_bge.c:bge_intr())
> is known to give an inaccurate return code.  That problem can cause
> interrupts to not be forwarded to other devices sharing the same IRQ.
> This is a long-known bug in bge(4). However, every time I've tried
> to turn on the 
> 	 #ifdef notdef"
> 
> code in bge_intr(), the resulting kernel hung.  If I had a
> programmer's manual, I'd go looking for ways to ascertain if the bge
> really interrupted.

Leaving the other issues aside: why should the bge not always claim that
the interrupt was _not_ for it?  Because that would generate "spurious
interrupt N" messages on the system console?

Perhaps we need a way for the driver to respond "I don't know" in such
cases, so the interrupt is still passed down the chain, but nothing
complains.

Thor