aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_os.c
diff options
context:
space:
mode:
authorJoe Carnuccio <joe.carnuccio@qlogic.com>2011-03-30 14:46:27 -0400
committerJames Bottomley <James.Bottomley@suse.de>2011-05-01 11:10:47 -0400
commit03bcfb57c098016e318e2672028f93ec072a2333 (patch)
treec309dfe3c954d7ef50a02b27a9c8edf61b720801 /drivers/scsi/qla2xxx/qla_os.c
parent8f7daead3c7861f9d0caa55269773136ab443b41 (diff)
[SCSI] qla2xxx: Add test for valid loop id to qla2x00_relogin().
If fabric device has invalid loop id (FC_NO_LOOP_ID) then call qla2x00_find_new_loop_id() to attempt to obtain valid loop id. Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com> Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_os.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 2f039e018ee..d1b29dc9cba 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -3214,6 +3214,17 @@ void qla2x00_relogin(struct scsi_qla_host *vha)
3214 fcport->d_id.b.area, 3214 fcport->d_id.b.area,
3215 fcport->d_id.b.al_pa); 3215 fcport->d_id.b.al_pa);
3216 3216
3217 if (fcport->loop_id == FC_NO_LOOP_ID) {
3218 fcport->loop_id = next_loopid =
3219 ha->min_external_loopid;
3220 status = qla2x00_find_new_loop_id(
3221 vha, fcport);
3222 if (status != QLA_SUCCESS) {
3223 /* Ran out of IDs to use */
3224 break;
3225 }
3226 }
3227
3217 if (IS_ALOGIO_CAPABLE(ha)) { 3228 if (IS_ALOGIO_CAPABLE(ha)) {
3218 fcport->flags |= FCF_ASYNC_SENT; 3229 fcport->flags |= FCF_ASYNC_SENT;
3219 data[0] = 0; 3230 data[0] = 0;