summaryrefslogtreecommitdiff
path: root/drivers/scsi/qla2xxx/qla_os.c
diff options
context:
space:
mode:
authorRavi Anand <ravi.anand@qlogic.com>2006-05-17 15:08:44 -0700
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-05-20 09:40:21 -0500
commit57680080baf3a8e289fad7f9e3c43ed58309e1eb (patch)
tree6c94db89570d765cdbbc86b453a005c70b98082d /drivers/scsi/qla2xxx/qla_os.c
parente0ecae8da26d94dd878ff1d939c5aa4224df18a4 (diff)
[SCSI] qla2xxx: Don't wait for loop transition to complete if LOOP_DEAD state is attained.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_os.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 017729c59a4..fbf3b03aba6 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -577,6 +577,10 @@ qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha)
while ((!atomic_read(&ha->loop_down_timer) &&
atomic_read(&ha->loop_state) == LOOP_DOWN) ||
atomic_read(&ha->loop_state) != LOOP_READY) {
+ if (atomic_read(&ha->loop_state) == LOOP_DEAD) {
+ return_status = QLA_FUNCTION_FAILED;
+ break;
+ }
msleep(1000);
if (time_after_eq(jiffies, loop_timeout)) {
return_status = QLA_FUNCTION_FAILED;