diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-05-28 07:56:31 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-06-17 13:05:10 -0400 |
commit | 68b3aa7c9805aee9005a8ca53c5e99177961fbb9 (patch) | |
tree | 3f28891df0b3a1ecdfe6a98547d8f3c43b74e905 /drivers/scsi/tmscsim.c | |
parent | 94d0e7b805961c44e4dc486ffc21075084bb7175 (diff) |
[SCSI] allow sleeping in ->eh_bus_reset_handler()
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/tmscsim.c')
-rw-r--r-- | drivers/scsi/tmscsim.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/tmscsim.c b/drivers/scsi/tmscsim.c index ee9df02efd5b..9589c67de535 100644 --- a/drivers/scsi/tmscsim.c +++ b/drivers/scsi/tmscsim.c | |||
@@ -2120,6 +2120,8 @@ static int DC390_bus_reset (struct scsi_cmnd *cmd) | |||
2120 | struct dc390_acb* pACB = (struct dc390_acb*) cmd->device->host->hostdata; | 2120 | struct dc390_acb* pACB = (struct dc390_acb*) cmd->device->host->hostdata; |
2121 | u8 bval; | 2121 | u8 bval; |
2122 | 2122 | ||
2123 | spin_lock_irq(cmd->device->host->host_lock); | ||
2124 | |||
2123 | bval = DC390_read8(CtrlReg1) | DIS_INT_ON_SCSI_RST; | 2125 | bval = DC390_read8(CtrlReg1) | DIS_INT_ON_SCSI_RST; |
2124 | DC390_write8(CtrlReg1, bval); /* disable IRQ on bus reset */ | 2126 | DC390_write8(CtrlReg1, bval); /* disable IRQ on bus reset */ |
2125 | 2127 | ||
@@ -2127,7 +2129,7 @@ static int DC390_bus_reset (struct scsi_cmnd *cmd) | |||
2127 | dc390_ResetSCSIBus(pACB); | 2129 | dc390_ResetSCSIBus(pACB); |
2128 | 2130 | ||
2129 | dc390_ResetDevParam(pACB); | 2131 | dc390_ResetDevParam(pACB); |
2130 | udelay(1000); | 2132 | mdelay(1); |
2131 | pACB->pScsiHost->last_reset = jiffies + 3*HZ/2 | 2133 | pACB->pScsiHost->last_reset = jiffies + 3*HZ/2 |
2132 | + HZ * dc390_eepromBuf[pACB->AdapterIndex][EE_DELAY]; | 2134 | + HZ * dc390_eepromBuf[pACB->AdapterIndex][EE_DELAY]; |
2133 | 2135 | ||
@@ -2142,6 +2144,8 @@ static int DC390_bus_reset (struct scsi_cmnd *cmd) | |||
2142 | bval = DC390_read8(CtrlReg1) & ~DIS_INT_ON_SCSI_RST; | 2144 | bval = DC390_read8(CtrlReg1) & ~DIS_INT_ON_SCSI_RST; |
2143 | DC390_write8(CtrlReg1, bval); /* re-enable interrupt */ | 2145 | DC390_write8(CtrlReg1, bval); /* re-enable interrupt */ |
2144 | 2146 | ||
2147 | spin_unlock_irq(cmd->device->host->host_lock); | ||
2148 | |||
2145 | return SUCCESS; | 2149 | return SUCCESS; |
2146 | } | 2150 | } |
2147 | 2151 | ||