patch-2.1.96 linux/drivers/scsi/seagate.c
Next file: linux/drivers/scsi/sg.c
Previous file: linux/drivers/scsi/scsiiom.c
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
Sat Apr 11 11:13:25 1998
- Orig file:
v2.1.95/linux/drivers/scsi/seagate.c
- Orig date:
Fri Nov 14 10:36:16 1997
diff -u --recursive --new-file v2.1.95/linux/drivers/scsi/seagate.c linux/drivers/scsi/seagate.c
@@ -91,6 +91,7 @@
#include <asm/io.h>
#include <asm/system.h>
+#include <asm/spinlock.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/string.h>
@@ -343,6 +344,7 @@
static int hostno = -1;
static void seagate_reconnect_intr (int, void *, struct pt_regs *);
+static void do_seagate_reconnect_intr (int, void *, struct pt_regs *);
#ifdef FAST
static int fast = 1;
@@ -505,7 +507,7 @@
*/
instance = scsi_register (tpnt, 0);
hostno = instance->host_no;
- if (request_irq ((int) irq, seagate_reconnect_intr, SA_INTERRUPT,
+ if (request_irq ((int) irq, do_seagate_reconnect_intr, SA_INTERRUPT,
(controller_type == SEAGATE) ? "seagate" : "tmc-8xx", NULL))
{
printk ("scsi%d : unable to allocate IRQ%d\n", hostno, (int) irq);
@@ -630,6 +632,16 @@
* host adapter. This occurs on the interrupt triggered by the target
* asserting SEL.
*/
+
+static void do_seagate_reconnect_intr (int irq, void *dev_id,
+ struct pt_regs *regs)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&io_request_lock, flags);
+ seagate_reconnect_intr(irq, dev_id, regs);
+ spin_unlock_irqrestore(&io_request_lock, flags);
+}
static void seagate_reconnect_intr (int irq, void *dev_id,
struct pt_regs *regs)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov