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

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