patch-2.1.96 linux/drivers/scsi/esp.c
Next file: linux/drivers/scsi/fdomain.c
Previous file: linux/drivers/scsi/eata_pio.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/esp.c
- Orig date:
Sun Dec 21 17:04:49 1997
diff -u --recursive --new-file v2.1.95/linux/drivers/scsi/esp.c linux/drivers/scsi/esp.c
@@ -37,6 +37,7 @@
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/idprom.h>
+#include <asm/spinlock.h>
#define DEBUG_ESP
/* #define DEBUG_ESP_HME */
@@ -172,6 +173,7 @@
/* Forward declarations. */
static void esp_intr(int irq, void *dev_id, struct pt_regs *pregs);
+static void do_esp_intr(int irq, void *dev_id, struct pt_regs *pregs);
/* Debugging routines */
struct esp_cmdstrings {
@@ -799,7 +801,7 @@
goto esp_irq_acquired; /* BASIC rulez */
}
}
- if(request_irq(esp->ehost->irq, esp_intr, SA_SHIRQ,
+ if(request_irq(esp->ehost->irq, do_esp_intr, SA_SHIRQ,
"Sparc ESP SCSI", NULL))
panic("Cannot acquire ESP irq line");
esp_irq_acquired:
@@ -812,7 +814,7 @@
dcookie.imap = dcookie.iclr = 0;
dcookie.pil = -1;
dcookie.bus_cookie = sbus;
- if(request_irq(esp->ehost->irq, esp_intr,
+ if(request_irq(esp->ehost->irq, do_esp_intr,
(SA_SHIRQ | SA_SBUS | SA_DCOOKIE),
"Sparc ESP SCSI", &dcookie))
panic("Cannot acquire ESP irq line");
@@ -4036,6 +4038,15 @@
esp_handle_done:
return;
+}
+
+static void do_esp_intr(int irq, void *dev_id, struct pt_regs *pregs)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&io_request_lock, flags);
+ esp_intr(irq, dev_id, pregs);
+ 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