scsi: qla2xxx: Fix LUN discovery if loop id is not assigned yet by firmware

This patch fixes LUN discovery when loop ID is not yet assigned by the
firmware during driver load/sg_reset operations. Driver will now search for
new loop id before retrying login.

Fixes: 48acad0990 ("scsi: qla2xxx: Fix N2N link re-connect")
Cc: stable@vger.kernel.org #4.19
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Himanshu Madhani 2019-02-15 14:37:12 -08:00 committed by Martin K. Petersen
parent bb6abdd453
commit ec322937a7

View File

@ -646,11 +646,14 @@ static void qla24xx_handle_gnl_done_event(scsi_qla_host_t *vha,
break; break;
case DSC_LS_PORT_UNAVAIL: case DSC_LS_PORT_UNAVAIL:
default: default:
if (fcport->loop_id != FC_NO_LOOP_ID) if (fcport->loop_id == FC_NO_LOOP_ID) {
qla2x00_clear_loop_id(fcport); qla2x00_find_new_loop_id(vha, fcport);
fcport->fw_login_state =
fcport->loop_id = loop_id; DSC_LS_PORT_UNAVAIL;
fcport->fw_login_state = DSC_LS_PORT_UNAVAIL; }
ql_dbg(ql_dbg_disc, vha, 0x20e5,
"%s %d %8phC\n", __func__, __LINE__,
fcport->port_name);
qla24xx_fcport_handle_login(vha, fcport); qla24xx_fcport_handle_login(vha, fcport);
break; break;
} }