patch-2.1.96 linux/drivers/scsi/qlogicpti.c
Next file: linux/drivers/scsi/scsi.c
Previous file: linux/drivers/scsi/qlogicisp.c
Back to the patch index
Back to the overall index
- Lines: 50
- Date:
Sat Apr 11 11:13:25 1998
- Orig file:
v2.1.95/linux/drivers/scsi/qlogicpti.c
- Orig date:
Sat Sep 6 10:04:16 1997
diff -u --recursive --new-file v2.1.95/linux/drivers/scsi/qlogicpti.c linux/drivers/scsi/qlogicpti.c
@@ -31,6 +31,7 @@
#include <asm/sbus.h>
#include <asm/dma.h>
#include <asm/system.h>
+#include <asm/spinlock.h>
#include <asm/machines.h>
#include <asm/ptrace.h>
#include <asm/pgtable.h>
@@ -562,6 +563,7 @@
}
static void qlogicpti_intr_handler(int irq, void *dev_id, struct pt_regs *regs);
+static void do_qlogicpti_intr_handler(int irq, void *dev_id, struct pt_regs *regs);
/* Detect all PTI Qlogic ISP's in the machine. */
__initfunc(int qlogicpti_detect(Scsi_Host_Template *tpnt))
@@ -669,7 +671,7 @@
goto qpti_irq_acquired; /* BASIC rulez */
}
}
- if(request_irq(qpti->qhost->irq, qlogicpti_intr_handler,
+ if(request_irq(qpti->qhost->irq, do_qlogicpti_intr_handler,
SA_SHIRQ, "PTI Qlogic/ISP SCSI", NULL)) {
printk("Cannot acquire PTI Qlogic/ISP irq line\n");
/* XXX Unmap regs, unregister scsi host, free things. */
@@ -685,7 +687,7 @@
dcookie.imap = dcookie.iclr = 0;
dcookie.pil = -1;
dcookie.bus_cookie = sbus;
- if(request_irq(qpti->qhost->irq, qlogicpti_intr_handler,
+ if(request_irq(qpti->qhost->irq, do_qlogicpti_intr_handler,
(SA_SHIRQ | SA_SBUS | SA_DCOOKIE),
"PTI Qlogic/ISP SCSI", &dcookie)) {
printk("Cannot acquire PTI Qlogic/ISP irq line\n");
@@ -1038,6 +1040,15 @@
}
return (sts->scsi_status & STATUS_MASK) | (host_status << 16);
+}
+
+static void do_qlogicpti_intr_handler(int irq, void *dev_id, struct pt_regs *regs)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&io_request_lock, flags);
+ qlogicpti_intr_handler(irq, dev_id, regs);
+ spin_unlock_irqrestore(&io_request_lock, flags);
}
#ifndef __sparc_v9__
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov