NCR53C8XX: IRQ blundering

Gerard Roudier (groudier@club-internet.fr)
Sat, 21 Sep 1996 21:46:33 +0000 (GMT)


Hi Jon!

Some (foolish) mistakes of mine:

1 - IRQ requested without SA_INTERRUPT flag.
2 - Interrupt handler called twice (Harmless but ugly).

Jon, can you try this patch on your SMP-Linux?

Gerard.

--- linux/drivers/scsi/ncr53c8xx.c.00 Sun Sep 8 15:53:00 1996
+++ linux/drivers/scsi/ncr53c8xx.c Sat Sep 21 20:07:01 1996
@@ -3587,7 +3587,7 @@
# ifdef SCSI_NCR_SHARE_IRQ
printf("%s: requesting shared irq %d (dev_id=0x%lx)\n",
ncr_name(np), irq, (u_long) np);
- if (request_irq(irq, ncr53c8xx_intr, SA_SHIRQ, "53c8xx", np)) {
+ if (request_irq(irq, ncr53c8xx_intr, SA_INTERRUPT|SA_SHIRQ, "53c8xx", np)) {
# else
if (request_irq(irq, ncr53c8xx_intr, SA_INTERRUPT, "53c8xx", NULL)) {
# endif
@@ -7636,7 +7636,6 @@
#if LINUX_VERSION_CODE >= LinuxVersionCode(1,3,70)
# ifdef SCSI_NCR_SHARE_IRQ
if (dev_id == &host_data->ncb_data)
- ncr_intr(&host_data->ncb_data);
# endif
#endif
ncr_intr(&host_data->ncb_data);
------------------- Cut here ---------------------------------