]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - drivers/scsi/qla2xxx/qla_os.c
scsi: qla2xxx: Fix Async GPN_FT for FCP and FC-NVMe scan
[mirror_ubuntu-hirsute-kernel.git] / drivers / scsi / qla2xxx / qla_os.c
index 54f93f9cba480f37811bd005cd1e930779abe2d7..6fa2467e2a16983103a93d57caeffbe0fa64c011 100644 (file)
@@ -4803,9 +4803,14 @@ void qla24xx_create_new_sess(struct scsi_qla_host *vha, struct qla_work_evt *e)
                        fcport->d_id = e->u.new_sess.id;
                        fcport->flags |= FCF_FABRIC_DEVICE;
                        fcport->fw_login_state = DSC_LS_PLOGI_PEND;
-                       if (e->u.new_sess.fc4_type == FC4_TYPE_FCP_SCSI)
+                       if (e->u.new_sess.fc4_type & FS_FC4TYPE_FCP)
                                fcport->fc4_type = FC4_TYPE_FCP_SCSI;
 
+                       if (e->u.new_sess.fc4_type & FS_FC4TYPE_NVME) {
+                               fcport->fc4_type = FC4_TYPE_OTHER;
+                               fcport->fc4f_nvme = FC4_TYPE_NVME;
+                       }
+
                        memcpy(fcport->port_name, e->u.new_sess.port_name,
                            WWN_SIZE);
                } else {
@@ -5021,7 +5026,8 @@ qla2x00_do_work(struct scsi_qla_host *vha)
                            e->u.logio.data);
                        break;
                case QLA_EVT_GPNFT:
-                       qla24xx_async_gpnft(vha, e->u.gpnft.fc4_type);
+                       qla24xx_async_gpnft(vha, e->u.gpnft.fc4_type,
+                           e->u.gpnft.sp);
                        break;
                case QLA_EVT_GPNFT_DONE:
                        qla24xx_async_gpnft_done(vha, e->u.iosb.sp);