diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2008-01-31 15:33:46 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-02-07 19:02:38 -0500 |
commit | df4bf0bb5b077545031e8ad5ef3cc0dd8a5fbe05 (patch) | |
tree | da275b2c498c7e85fbfb634aa7a95032e8583828 /drivers/scsi/qla2xxx/qla_init.c | |
parent | 61623fc34f9db7f01b672d2fa443d3d492049bbe (diff) |
[SCSI] qla2xxx: Cleanup any outstanding SRB resources during shutdown.
Refactor SRB-failure completion codes in the process. Also,
signal the DPC routine to complete sooner as backend processing
at shutdown-time is superflous.
[jejb: resolve conflicts with pci_enable_device_bars removal]
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_init.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index d0633ca894be..2e51fa8a70f8 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -3213,9 +3213,6 @@ int | |||
3213 | qla2x00_abort_isp(scsi_qla_host_t *ha) | 3213 | qla2x00_abort_isp(scsi_qla_host_t *ha) |
3214 | { | 3214 | { |
3215 | int rval; | 3215 | int rval; |
3216 | unsigned long flags = 0; | ||
3217 | uint16_t cnt; | ||
3218 | srb_t *sp; | ||
3219 | uint8_t status = 0; | 3216 | uint8_t status = 0; |
3220 | 3217 | ||
3221 | if (ha->flags.online) { | 3218 | if (ha->flags.online) { |
@@ -3236,19 +3233,8 @@ qla2x00_abort_isp(scsi_qla_host_t *ha) | |||
3236 | LOOP_DOWN_TIME); | 3233 | LOOP_DOWN_TIME); |
3237 | } | 3234 | } |
3238 | 3235 | ||
3239 | spin_lock_irqsave(&ha->hardware_lock, flags); | ||
3240 | /* Requeue all commands in outstanding command list. */ | 3236 | /* Requeue all commands in outstanding command list. */ |
3241 | for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) { | 3237 | qla2x00_abort_all_cmds(ha, DID_RESET << 16); |
3242 | sp = ha->outstanding_cmds[cnt]; | ||
3243 | if (sp) { | ||
3244 | ha->outstanding_cmds[cnt] = NULL; | ||
3245 | sp->flags = 0; | ||
3246 | sp->cmd->result = DID_RESET << 16; | ||
3247 | sp->cmd->host_scribble = (unsigned char *)NULL; | ||
3248 | qla2x00_sp_compl(ha, sp); | ||
3249 | } | ||
3250 | } | ||
3251 | spin_unlock_irqrestore(&ha->hardware_lock, flags); | ||
3252 | 3238 | ||
3253 | ha->isp_ops->get_flash_version(ha, ha->request_ring); | 3239 | ha->isp_ops->get_flash_version(ha, ha->request_ring); |
3254 | 3240 | ||