]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: qla2xxx: Restore FAWWPN of Physical Port only for loop down
authorSawan Chandak <schandak@marvell.com>
Fri, 25 Jan 2019 07:23:48 +0000 (23:23 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 6 Feb 2019 02:41:16 +0000 (21:41 -0500)
When loop was made down explicitly due to cable pull, then for N2N toplogy,
if FAWWPN BIT is enabled by user, then it would restore some default
(garbage) value for Physical port WWPN, so this show garbage WWPN for the
port. Fix is, to restore physical port WWPN, if it is fabric
configuration. When loop is explicitly made down, and FAWWPN feature is
enabled, then driver need to restore original flashed WWPN.

Signed-off-by: Sawan Chandak <schandak@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_isr.c

index 5c1de6ed825bdc29a4ccfccd627052155ed2b6b6..bde9940ea7d1f51a87280d7f0285e6d80a3bec92 100644 (file)
@@ -834,7 +834,8 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
                         * Restore for Physical Port only
                         */
                        if (!vha->vp_idx) {
-                               if (ha->flags.fawwpn_enabled) {
+                               if (ha->flags.fawwpn_enabled &&
+                                   (ha->current_topology == ISP_CFG_F)) {
                                        void *wwpn = ha->init_cb->port_name;
                                        memcpy(vha->port_name, wwpn, WWN_SIZE);
                                        fc_host_port_name(vha->host) =