NCR53C815 vs Tulip: sharing IRQ fails

Donald Becker
Mon Mar 22 17:23:34 1999

On Mon, 22 Mar 1999, Gerard Roudier wrote:

> > Read the instructions in
> >
> > for info on how to fix the SCSI driver -- it's using the wrong flags for
> > requesting the interrupt.
> What wrong flags?
> It is Linux not having provided the right set of flags for request_irq() 
> that confused for a long time IRQ sharing on PCI. A PCI device driver just
> wants to tell the kernel the IRQ is from a PCI device and so must be
> shared. It is what SA_SHIRQ is telling the kernel. The fact that the
> SA_INTERRUPT used at the same time may disallow sharing a shareable IRQ
> when all involved drivers aren't using it the same way has been a kernel
> bug or just some useless feature that made shit. 

Just to clarify, since some readers might be confused:
    ****  Using SA_INTERRUPT is broken.  ***

It's semantically incompatible with sharing an interrupt line.
It was never intended to be used in the way that the SCSI drivers use it.

> Sun Feb  14:00 1999 Gerard Roudier (
> 	- Allow to tune request_irq() flags from the boot command line using 
> 	  ncr53c8xx=irqm:??, as follows:
> 	  a) If bit 0x10 is set in irqm, SA_SHIRQ flag is not used.
> 	  b) If bit 0x20 is set in irqm, SA_INTERRUPT flag is not used.
> 	  By default the driver uses both SA_SHIRQ and SA_INTERRUPT.

The driver should not be using SA_INTERRUPT at all.
If it must keep it around for some horribly broken reason, it should default
to not using it.

Donald Becker
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center,  Greenbelt, MD.  20771