diff options
author | Seokmann Ju <seokmann.ju@qlogic.com> | 2009-04-07 01:33:37 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-05-20 18:21:06 -0400 |
commit | d53b48d512ef477c939aba09c7e258b8dc331b6a (patch) | |
tree | fbab86f6e12bd45cd2152e9cf5595e45ca47eea6 | |
parent | 45d7c46d54dae008f66db58e6bd31d9b31833043 (diff) |
[SCSI] qla2xxx: Correct bus-reset behaviour with recent ISPs.
The short-circuit to skip the non-applicable 'full-login-lip'
process on 81xx ISPs was nested too deeply in the 'bus-reset'
routine, as the code in qla2x00_loop_reset() should skip the
whole enable_lip_full_login process. The original code could
cause device tear-down due to the qla2x00_wait_for_loop_ready()
call taking a large amount of time.
Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 3 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 3 |
2 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index e67c1660bf46..14584380ad26 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -1864,9 +1864,6 @@ qla2x00_full_login_lip(scsi_qla_host_t *vha) | |||
1864 | mbx_cmd_t mc; | 1864 | mbx_cmd_t mc; |
1865 | mbx_cmd_t *mcp = &mc; | 1865 | mbx_cmd_t *mcp = &mc; |
1866 | 1866 | ||
1867 | if (IS_QLA81XX(vha->hw)) | ||
1868 | return QLA_SUCCESS; | ||
1869 | |||
1870 | DEBUG11(printk("qla2x00_full_login_lip(%ld): entered.\n", | 1867 | DEBUG11(printk("qla2x00_full_login_lip(%ld): entered.\n", |
1871 | vha->host_no)); | 1868 | vha->host_no)); |
1872 | 1869 | ||
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index e4fdcdad80d0..29234ba42b42 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -1037,7 +1037,8 @@ qla2x00_loop_reset(scsi_qla_host_t *vha) | |||
1037 | struct fc_port *fcport; | 1037 | struct fc_port *fcport; |
1038 | struct qla_hw_data *ha = vha->hw; | 1038 | struct qla_hw_data *ha = vha->hw; |
1039 | 1039 | ||
1040 | if (ha->flags.enable_lip_full_login && !vha->vp_idx) { | 1040 | if (ha->flags.enable_lip_full_login && !vha->vp_idx && |
1041 | !IS_QLA81XX(ha)) { | ||
1041 | ret = qla2x00_full_login_lip(vha); | 1042 | ret = qla2x00_full_login_lip(vha); |
1042 | if (ret != QLA_SUCCESS) { | 1043 | if (ret != QLA_SUCCESS) { |
1043 | DEBUG2_3(printk("%s(%ld): failed: " | 1044 | DEBUG2_3(printk("%s(%ld): failed: " |