diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-05-07 02:55:41 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-05-07 02:55:41 +0000 |
commit | dcec8a13bf565e47942a1751a9cec21bec5648fe (patch) | |
tree | 548b69625b18cc2e88c3e68d0923be546c9ebb03 /drivers/scsi/advansys.c | |
parent | 2e0f55e79c49509b7ff70ff1a10e1e9e90a3dfd4 (diff) |
o Merge with Linux 2.1.99.
o Fix ancient bug in the ELF loader making ldd crash.
o Fix ancient bug in the keyboard code for SGI, SNI and Jazz.
Diffstat (limited to 'drivers/scsi/advansys.c')
-rw-r--r-- | drivers/scsi/advansys.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 315de3935..c67a96258 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c @@ -598,7 +598,7 @@ Erik Ratcliffe <erik@caldera.com> has done testing of the AdvanSys driver in the Caldera releases. - Rik van Riel <H.H.vanRiel@fys.ruu.nl> provided a patch to + Rik van Riel <H.H.vanRiel@phys.uu.nl> provided a patch to AscWaitTixISRDone() which he found necessary to make the driver work with a SCSI-1 disk. @@ -668,6 +668,9 @@ #include <linux/blk.h> #include <linux/stat.h> #endif /* version >= v1.3.0 */ +#if LINUX_VERSION_CODE >= ASC_LINUX_VERSION(2,1,95) +#include <asm/spinlock.h> +#endif #include "scsi.h" #include "hosts.h" #include "sd.h" @@ -3841,8 +3844,11 @@ STATIC int asc_proc_copy(off_t, off_t, char *, int , char *, int); #endif /* version >= v1.3.0 */ #if LINUX_VERSION_CODE < ASC_LINUX_VERSION(1,3,70) STATIC void advansys_interrupt(int, struct pt_regs *); -#else /* version >= v1.3.70 */ +#elif LINUX_VERSION_CODE < ASC_LINUX_VERSION(2,1,95) +STATIC void advansys_interrupt(int, void *, struct pt_regs *); +#else /* version >= 2.1.95 */ STATIC void advansys_interrupt(int, void *, struct pt_regs *); +STATIC void do_advansys_interrupt(int, void *, struct pt_regs *); #endif /* version >= v1.3.70 */ #if LINUX_VERSION_CODE >= ASC_LINUX_VERSION(1,3,89) STATIC void advansys_select_queue_depths(struct Scsi_Host *, @@ -4880,10 +4886,14 @@ advansys_detect(Scsi_Host_Template *tpnt) #if LINUX_VERSION_CODE < ASC_LINUX_VERSION(1,3,70) if ((ret = request_irq(shp->irq, advansys_interrupt, SA_INTERRUPT, "advansys")) != 0) -#else /* version >= v1.3.70 */ +#elif LINUX_VERSION_CODE < ASC_LINUX_VERSION(2,1,95) if ((ret = request_irq(shp->irq, advansys_interrupt, SA_INTERRUPT | (share_irq == TRUE ? SA_SHIRQ : 0), "advansys", boardp)) != 0) +#else /* version >= 2.1.95 */ + if ((ret = request_irq(shp->irq, do_advansys_interrupt, + SA_INTERRUPT | (share_irq == TRUE ? SA_SHIRQ : 0), + "advansys", boardp)) != 0) #endif /* version >= v1.3.70 */ { ASC_PRINT2( @@ -6205,6 +6215,18 @@ advansys_interrupt(int irq, void *dev_id, struct pt_regs *regs) return; } +#if LINUX_VERSION_CODE >= ASC_LINUX_VERSION(2,1,95) +static void +do_advansys_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + unsigned long flags; + + spin_lock_irqsave(&io_request_lock, flags); + advansys_interrupt(irq, dev_id, regs); + spin_unlock_irqrestore(&io_request_lock, flags); +} +#endif + #if LINUX_VERSION_CODE >= ASC_LINUX_VERSION(1,3,89) /* * Set the number of commands to queue per device for the |