patch-2.3.10 linux/drivers/scsi/NCR53C9x.c

Next file: linux/drivers/scsi/aha152x.c
Previous file: linux/drivers/scsi/53c7xx.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.9/linux/drivers/scsi/NCR53C9x.c linux/drivers/scsi/NCR53C9x.c
@@ -3390,6 +3390,7 @@
 	struct ESP_regs *eregs;
 	Scsi_Cmnd *SCptr;
 	int what_next = do_intr_end;
+	unsigned long flags;
 #ifdef CONFIG_SCSI_SUNESP
 	struct sparc_dma_registers *dregs = 
 	  (struct sparc_dma_registers*) esp->dregs;
@@ -3610,7 +3611,9 @@
 			}
 			SCptr->result = (DID_RESET << 16);
 
+			spin_lock_irqsave(&io_request_lock,flags);
 			SCptr->scsi_done(SCptr);
+			spin_unlock_irqrestore(&io_request_lock, flags);
 		}
 		esp->current_SC = NULL;
 		if(esp->disconnected_SC) {
@@ -3625,7 +3628,9 @@
 				}
 				SCptr->result = (DID_RESET << 16);
 
+				spin_lock_irqsave(&io_request_lock,flags);
 				SCptr->scsi_done(SCptr);
+				spin_unlock_irqrestore(&io_request_lock, flags);
 			}
 		}
 		esp->resetting_bus = 0;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)