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

Next file: linux/drivers/scsi/pas16.c
Previous file: linux/drivers/scsi/mesh.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.95/linux/drivers/scsi/ncr53c8xx.c linux/drivers/scsi/ncr53c8xx.c
@@ -112,6 +112,7 @@
 #include <asm/dma.h>
 #include <asm/io.h>
 #include <asm/system.h>
+#include <asm/spinlock.h>
 #include <linux/delay.h>
 #include <linux/signal.h>
 #include <linux/sched.h>
@@ -557,6 +558,7 @@
 
 #if LINUX_VERSION_CODE >= LinuxVersionCode(1,3,70)
 static void ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs);
+static void do_ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs);
 #else
 static void ncr53c8xx_intr(int irq, struct pt_regs * regs);
 #endif
@@ -4612,10 +4614,10 @@
 	if (bootverbose > 1)
 		printf("%s: requesting shared irq %d (dev_id=0x%lx)\n",
 		        ncr_name(np), device->slot.irq, (u_long) np);
-	if (request_irq(device->slot.irq, ncr53c8xx_intr,
+	if (request_irq(device->slot.irq, do_ncr53c8xx_intr,
 			SA_INTERRUPT|SA_SHIRQ, "ncr53c8xx", np)) {
 #else
-	if (request_irq(device->slot.irq, ncr53c8xx_intr,
+	if (request_irq(device->slot.irq, do_ncr53c8xx_intr,
 			SA_INTERRUPT, "ncr53c8xx", np)) {
 #endif
 #else
@@ -9787,17 +9789,22 @@
 #if LINUX_VERSION_CODE >= LinuxVersionCode(1,3,70)
 static void ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs)
 {
-     unsigned long flags;
-
 #ifdef DEBUG_NCR53C8XX
      printk("ncr53c8xx : interrupt received\n");
 #endif
 
      if (DEBUG_FLAGS & DEBUG_TINY) printf ("[");
-     spin_lock_irqsave(&io_request_lock, flags);
      ncr_exception((ncb_p) dev_id);
-     spin_unlock_irqrestore(&io_request_lock, flags);
      if (DEBUG_FLAGS & DEBUG_TINY) printf ("]\n");
+}
+
+static void do_ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs *regs)
+{
+     unsigned long flags;
+
+     spin_lock_irqsave(&io_request_lock, flags);
+     ncr53c8xx_intr(irq, dev_id, regs);
+     spin_unlock_irqrestore(&io_request_lock, flags);
 }
 
 #else

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