Blame SOURCES/0012-scsi-scsi-qla2xxx-Restore-FAWWPN-of-Physical-Port-on.patch

3d7c23
From d5fb625b45bc7b96530fe7e537be19e2f02945e1 Mon Sep 17 00:00:00 2001
3d7c23
From: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Date: Thu, 1 Aug 2019 15:54:32 -0400
3d7c23
Subject: [PATCH 012/124] [scsi] scsi: qla2xxx: Restore FAWWPN of Physical Port
3d7c23
 only for loop down
3d7c23
3d7c23
Message-id: <20190801155618.12650-13-hmadhani@redhat.com>
3d7c23
Patchwork-id: 267786
3d7c23
O-Subject: [RHEL 7.8 e-stor PATCH 012/118] scsi: qla2xxx: Restore FAWWPN of Physical Port only for loop down
3d7c23
Bugzilla: 1729270
3d7c23
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3d7c23
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3d7c23
3d7c23
From: Sawan Chandak <schandak@marvell.com>
3d7c23
3d7c23
Bugzilla 1729270
3d7c23
3d7c23
When loop was made down explicitly due to cable pull, then for N2N toplogy,
3d7c23
if FAWWPN BIT is enabled by user, then it would restore some default
3d7c23
(garbage) value for Physical port WWPN, so this show garbage WWPN for the
3d7c23
port. Fix is, to restore physical port WWPN, if it is fabric
3d7c23
configuration. When loop is explicitly made down, and FAWWPN feature is
3d7c23
enabled, then driver need to restore original flashed WWPN.
3d7c23
3d7c23
Signed-off-by: Sawan Chandak <schandak@marvell.com>
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 dcbf8f8087ebc4d721fd55c4c2072f1a97f6ef6d)
3d7c23
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3d7c23
---
3d7c23
 drivers/scsi/qla2xxx/qla_isr.c | 3 ++-
3d7c23
 1 file changed, 2 insertions(+), 1 deletion(-)
3d7c23
3d7c23
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
3d7c23
index d3af28eff7f6..8e5467ee957d 100644
3d7c23
--- a/drivers/scsi/qla2xxx/qla_isr.c
3d7c23
+++ b/drivers/scsi/qla2xxx/qla_isr.c
3d7c23
@@ -833,7 +833,8 @@ skip_rio:
3d7c23
 			 * Restore for Physical Port only
3d7c23
 			 */
3d7c23
 			if (!vha->vp_idx) {
3d7c23
-				if (ha->flags.fawwpn_enabled) {
3d7c23
+				if (ha->flags.fawwpn_enabled &&
3d7c23
+				    (ha->current_topology == ISP_CFG_F)) {
3d7c23
 					void *wwpn = ha->init_cb->port_name;
3d7c23
 					memcpy(vha->port_name, wwpn, WWN_SIZE);
3d7c23
 					fc_host_port_name(vha->host) =
3d7c23
-- 
3d7c23
2.13.6
3d7c23