Re: Linux 2.6.17: IRQ handler mismatch in serial code?

Russell King
2006-06-20T18:03:22Z

On Tue, Jun 20, 2006 at 04:39:49PM +0200, Bodo Eggert wrote:
> Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > Ar Llu, 2006-06-19 am 17:52 -0400, ysgrifennodd Mark Lord:
>
> >> Eh? The vast majority of ISA bus devices have open-collector IRQ lines,
> >
> > Not in my experience. In the network work at least very few are, they
> > all drive the chip lines all the time. Thats why Don Becker made sure
> > such drivers grab the lines at startup. Those which can share IRQ or
> > move IRQ grab at open
>
> There are thousands of NE2K-clones, the driver can't know if sharing the IRQ
> will be OK for a given card. Is the change for sharing IRQs trivial enough
> to allow an if/else based on a load-time module parameter?

Not if it's an ISA card. You need to loop over all interrupt source
devices until you're certain that they have released the interrupt
line before returning, otherwise you will end up with the IRQ line
stuck in a state where it can't cause any further interrupts.

The kernel has no such infrastructure, except within the serial driver
to allow multiple serial ports to share a common interrupt.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core