scsi: qla2xxx: Changes to support FCP2 Target
authorSaurav Kashyap <skashyap@marvell.com>
Tue, 10 Aug 2021 04:37:10 +0000 (21:37 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 12 Aug 2021 03:17:42 +0000 (23:17 -0400)
Add changes to support FCP2 Target.

Link: https://lore.kernel.org/r/20210810043720.1137-5-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_dbg.c
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_os.c

index f2d0559..25549a8 100644 (file)
@@ -12,8 +12,7 @@
  * ----------------------------------------------------------------------
  * | Module Init and Probe        |       0x0199       |                |
  * | Mailbox commands             |       0x1206       | 0x11a5-0x11ff |
- * | Device Discovery             |       0x2134       | 0x210e-0x2116  |
- * |                             |                    | 0x211a         |
+ * | Device Discovery             |       0x2134       | 0x210e-0x2115  |
  * |                              |                    | 0x211c-0x2128  |
  * |                              |                    | 0x212c-0x2134  |
  * | Queue Command and IO tracing |       0x3074       | 0x300b         |
index ad0d3f5..89b3bc9 100644 (file)
@@ -1787,6 +1787,12 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
 
        fcport = qla2x00_find_fcport_by_nportid(vha, &ea->id, 1);
        if (fcport) {
+               if (fcport->flags & FCF_FCP2_DEVICE) {
+                       ql_dbg(ql_dbg_disc, vha, 0x2115,
+                              "Delaying session delete for FCP2 portid=%06x %8phC ",
+                              fcport->d_id.b24, fcport->port_name);
+                       return;
+               }
                fcport->scan_needed = 1;
                fcport->rscn_gen++;
        }
index 68da8c6..4db7e43 100644 (file)
@@ -3981,6 +3981,16 @@ qla2x00_mark_all_devices_lost(scsi_qla_host_t *vha)
            "Mark all dev lost\n");
 
        list_for_each_entry(fcport, &vha->vp_fcports, list) {
+               if (fcport->loop_id != FC_NO_LOOP_ID &&
+                   (fcport->flags & FCF_FCP2_DEVICE) &&
+                   fcport->port_type == FCT_TARGET &&
+                   !qla2x00_reset_active(vha)) {
+                       ql_dbg(ql_dbg_disc, vha, 0x211a,
+                              "Delaying session delete for FCP2 flags 0x%x port_type = 0x%x port_id=%06x %phC",
+                              fcport->flags, fcport->port_type,
+                              fcport->d_id.b24, fcport->port_name);
+                       continue;
+               }
                fcport->scan_state = 0;
                qlt_schedule_sess_for_deletion(fcport);
        }