aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/in2000.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/in2000.c')
-rw-r--r--drivers/scsi/in2000.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/in2000.c b/drivers/scsi/in2000.c
index fbb29f7971d7..aed7e64865fa 100644
--- a/drivers/scsi/in2000.c
+++ b/drivers/scsi/in2000.c
@@ -1644,14 +1644,16 @@ static int in2000_bus_reset(Scsi_Cmnd * cmd)
1644 struct Scsi_Host *instance; 1644 struct Scsi_Host *instance;
1645 struct IN2000_hostdata *hostdata; 1645 struct IN2000_hostdata *hostdata;
1646 int x; 1646 int x;
1647 unsigned long flags;
1647 1648
1648 instance = cmd->device->host; 1649 instance = cmd->device->host;
1649 hostdata = (struct IN2000_hostdata *) instance->hostdata; 1650 hostdata = (struct IN2000_hostdata *) instance->hostdata;
1650 1651
1651 printk(KERN_WARNING "scsi%d: Reset. ", instance->host_no); 1652 printk(KERN_WARNING "scsi%d: Reset. ", instance->host_no);
1652 1653
1653 /* do scsi-reset here */ 1654 spin_lock_irqsave(instance->host_lock, flags);
1654 1655
1656 /* do scsi-reset here */
1655 reset_hardware(instance, RESET_CARD_AND_BUS); 1657 reset_hardware(instance, RESET_CARD_AND_BUS);
1656 for (x = 0; x < 8; x++) { 1658 for (x = 0; x < 8; x++) {
1657 hostdata->busy[x] = 0; 1659 hostdata->busy[x] = 0;
@@ -1668,6 +1670,8 @@ static int in2000_bus_reset(Scsi_Cmnd * cmd)
1668 hostdata->outgoing_len = 0; 1670 hostdata->outgoing_len = 0;
1669 1671
1670 cmd->result = DID_RESET << 16; 1672 cmd->result = DID_RESET << 16;
1673
1674 spin_unlock_irqrestore(instance->host_lock, flags);
1671 return SUCCESS; 1675 return SUCCESS;
1672} 1676}
1673 1677