patch-2.1.96 linux/drivers/scsi/gvp11.c

Next file: linux/drivers/scsi/hosts.h
Previous file: linux/drivers/scsi/gdth.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.95/linux/drivers/scsi/gvp11.c linux/drivers/scsi/gvp11.c
@@ -12,6 +12,7 @@
 #include <asm/amigahw.h>
 #include <linux/zorro.h>
 #include <asm/irq.h>
+#include <asm/spinlock.h>
 
 #include "scsi.h"
 #include "hosts.h"
@@ -51,6 +52,15 @@
     }
 }
 
+static void do_gvp11_intr (int irq, void *dummy, struct pt_regs *fp)
+{
+    unsigned long flags;
+
+    spin_lock_irqsave(&io_request_lock, flags);
+    gvp11_intr(irq, dummy, fp);
+    spin_unlock_irqrestore(&io_request_lock, flags);
+}
+
 static int gvp11_xfer_mask = 0;
 
 void gvp11_setup (char *str, int *ints)
@@ -361,7 +371,7 @@
 	if (num_gvp11++ == 0) {
 		first_instance = instance;
 		gvp11_template = instance->hostt;
-		request_irq(IRQ_AMIGA_PORTS, gvp11_intr, 0,
+		request_irq(IRQ_AMIGA_PORTS, do_gvp11_intr, 0,
 			    "GVP11 SCSI", gvp11_intr);
 	}
 	DMA(instance)->CNTR = GVP11_DMAC_INT_ENABLE;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov