patch-2.1.102 linux/drivers/scsi/in2000.c
Next file: linux/drivers/scsi/scsi.c
Previous file: linux/drivers/scsi/ide-scsi.c
Back to the patch index
Back to the overall index
- Lines: 115
- Date:
Mon May 11 11:25:57 1998
- Orig file:
v2.1.101/linux/drivers/scsi/in2000.c
- Orig date:
Tue Apr 14 14:29:22 1998
diff -u --recursive --new-file v2.1.101/linux/drivers/scsi/in2000.c linux/drivers/scsi/in2000.c
@@ -858,7 +858,6 @@
struct Scsi_Host *instance;
struct IN2000_hostdata *hostdata;
Scsi_Cmnd *patch, *cmd;
-unsigned long flags;
uchar asr, sr, phs, id, lun, *ucp, msg;
int i,j;
unsigned long length;
@@ -875,11 +874,6 @@
}
hostdata = (struct IN2000_hostdata *)instance->hostdata;
-/* OK - it should now be safe to re-enable system interrupts */
-
- save_flags(flags);
- sti();
-
#ifdef PROC_STATISTICS
hostdata->int_cnt++;
#endif
@@ -1014,7 +1008,6 @@
}
write1_io(0, IO_LED_OFF);
- restore_flags(flags);
return;
}
@@ -1030,7 +1023,6 @@
if (!cmd && (sr != CSR_RESEL_AM && sr != CSR_TIMEOUT && sr != CSR_SELECT)) {
printk("\nNR:wd-intr-1\n");
write1_io(0, IO_LED_OFF);
- restore_flags(flags);
return;
}
@@ -1092,10 +1084,12 @@
/* Respond to the specific WD3393 interrupt - there are quite a few! */
switch (sr) {
+ unsigned long flags;
case CSR_TIMEOUT:
DB(DB_INTR,printk("TIMEOUT"))
+ save_flags(flags);
cli();
if (hostdata->state == S_RUNNING_LEVEL2)
hostdata->connected = NULL;
@@ -1114,7 +1108,7 @@
* are commands waiting to be executed.
*/
- sti();
+ restore_flags(flags);
in2000_execute(instance);
break;
@@ -1361,6 +1355,7 @@
/* Note: this interrupt will occur only after a LEVEL2 command */
case CSR_SEL_XFER_DONE:
+ save_flags(flags);
cli();
/* Make sure that reselection is enabled at this point - it may
@@ -1388,7 +1383,7 @@
* there are commands waiting to be executed.
*/
- sti();
+ restore_flags(flags);
in2000_execute(instance);
}
else {
@@ -1447,6 +1442,7 @@
* so we treat it as a normal command-complete-disconnect.
*/
+ save_flags(flags);
cli();
/* Make sure that reselection is enabled at this point - it may
@@ -1473,12 +1469,13 @@
* there are commands waiting to be executed.
*/
- sti();
+ restore_flags(flags);
in2000_execute(instance);
break;
case CSR_DISC:
+ save_flags(flags);
cli();
/* Make sure that reselection is enabled at this point - it may
@@ -1524,7 +1521,7 @@
* there are commands waiting to be executed.
*/
- sti();
+ restore_flags(flags);
in2000_execute(instance);
break;
@@ -1633,7 +1630,6 @@
}
write1_io(0, IO_LED_OFF);
- restore_flags(flags);
DB(DB_INTR,printk("} "))
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov