scsi: qla2xxx: initialize fc4_type_priority
authorMartin Wilck <mwilck@suse.com>
Thu, 7 Nov 2019 22:48:55 +0000 (22:48 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 9 Nov 2019 02:23:11 +0000 (21:23 -0500)
ha->fc4_type_priority is currently initialized only in
qla81xx_nvram_config(). That makes it default to NVMe for other adapters.
Fix it.

Fixes: 84ed362ac40c ("scsi: qla2xxx: Dual FCP-NVMe target port support")
Link: https://lore.kernel.org/r/20191107224839.32417-2-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_init.c

index cefd054..1dbee88 100644 (file)
@@ -2218,8 +2218,18 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha)
        ql_dbg(ql_dbg_init, vha, 0x0061,
            "Configure NVRAM parameters...\n");
 
+       /* Let priority default to FCP, can be overridden by nvram_config */
+       ha->fc4_type_priority = FC4_PRIORITY_FCP;
+
        ha->isp_ops->nvram_config(vha);
 
+       if (ha->fc4_type_priority != FC4_PRIORITY_FCP &&
+           ha->fc4_type_priority != FC4_PRIORITY_NVME)
+               ha->fc4_type_priority = FC4_PRIORITY_FCP;
+
+       ql_log(ql_log_info, vha, 0xffff, "FC4 priority set to %s\n",
+              ha->fc4_type_priority == FC4_PRIORITY_FCP ? "FCP" : "NVMe");
+
        if (ha->flags.disable_serdes) {
                /* Mask HBA via NVRAM settings? */
                ql_log(ql_log_info, vha, 0x0077,
@@ -8525,8 +8535,6 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
 
        /* Determine NVMe/FCP priority for target ports */
        ha->fc4_type_priority = qla2xxx_get_fc4_priority(vha);
-       ql_log(ql_log_info, vha, 0xffff, "FC4 priority set to %s\n",
-           ha->fc4_type_priority & BIT_0 ? "FCP" : "NVMe");
 
        if (rval) {
                ql_log(ql_log_warn, vha, 0x0076,