Blame SOURCES/0016-scsi-scsi-qla2xxx-Fix-LUN-discovery-if-loop-id-is-no.patch

3d7c23
From 17242a26bc003e758edf605dc5112ef571de4d27 Mon Sep 17 00:00:00 2001
3d7c23
From: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Date: Thu, 1 Aug 2019 15:54:36 -0400
3d7c23
Subject: [PATCH 016/124] [scsi] scsi: qla2xxx: Fix LUN discovery if loop id is
3d7c23
 not assigned yet by firmware
3d7c23
3d7c23
Message-id: <20190801155618.12650-17-hmadhani@redhat.com>
3d7c23
Patchwork-id: 267792
3d7c23
O-Subject: [RHEL 7.8 e-stor PATCH 016/118] scsi: qla2xxx: Fix LUN discovery if loop id is not assigned yet by firmware
3d7c23
Bugzilla: 1729270
3d7c23
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3d7c23
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3d7c23
3d7c23
From: Himanshu Madhani <hmadhani@marvell.com>
3d7c23
3d7c23
Bugzilla 1729270
3d7c23
3d7c23
This patch fixes LUN discovery when loop ID is not yet assigned by the
3d7c23
firmware during driver load/sg_reset operations. Driver will now search for
3d7c23
new loop id before retrying login.
3d7c23
3d7c23
Fixes: 48acad099074 ("scsi: qla2xxx: Fix N2N link re-connect")
3d7c23
Cc: stable@vger.kernel.org #4.19
3d7c23
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
3d7c23
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
3d7c23
(cherry picked from commit ec322937a7f152d68755dc8316523bf6f831b48f)
3d7c23
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3d7c23
---
3d7c23
 drivers/scsi/qla2xxx/qla_init.c | 13 ++++++++-----
3d7c23
 1 file changed, 8 insertions(+), 5 deletions(-)
3d7c23
3d7c23
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
3d7c23
index c6d17e65f99b..90eeff414931 100644
3d7c23
--- a/drivers/scsi/qla2xxx/qla_init.c
3d7c23
+++ b/drivers/scsi/qla2xxx/qla_init.c
3d7c23
@@ -646,11 +646,14 @@ static void qla24xx_handle_gnl_done_event(scsi_qla_host_t *vha,
3d7c23
 				break;
3d7c23
 			case DSC_LS_PORT_UNAVAIL:
3d7c23
 			default:
3d7c23
-				if (fcport->loop_id != FC_NO_LOOP_ID)
3d7c23
-					qla2x00_clear_loop_id(fcport);
3d7c23
-
3d7c23
-				fcport->loop_id = loop_id;
3d7c23
-				fcport->fw_login_state = DSC_LS_PORT_UNAVAIL;
3d7c23
+				if (fcport->loop_id == FC_NO_LOOP_ID) {
3d7c23
+					qla2x00_find_new_loop_id(vha, fcport);
3d7c23
+					fcport->fw_login_state =
3d7c23
+					    DSC_LS_PORT_UNAVAIL;
3d7c23
+				}
3d7c23
+				ql_dbg(ql_dbg_disc, vha, 0x20e5,
3d7c23
+				    "%s %d %8phC\n", __func__, __LINE__,
3d7c23
+				    fcport->port_name);
3d7c23
 				qla24xx_fcport_handle_login(vha, fcport);
3d7c23
 				break;
3d7c23
 			}
3d7c23
-- 
3d7c23
2.13.6
3d7c23