scsi: qla2xxx: Fix stalled login
authorQuinn Tran <qutran@marvell.com>
Mon, 19 Dec 2022 11:07:43 +0000 (03:07 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 12 Jan 2023 02:28:37 +0000 (21:28 -0500)
If a login failed due to low FW resources, the session can stall and will
not be connected. Reset session state to allow relogin logic to redrive
the connection.

Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_init.c

index fd27fb511479647d3f302ccf9722294c19759ebc..745fee298d56ce9b04f2a2859f045620668a2d97 100644 (file)
@@ -390,6 +390,12 @@ done_free_sp:
        fcport->flags &= ~FCF_ASYNC_SENT;
 done:
        fcport->flags &= ~FCF_ASYNC_ACTIVE;
+
+       /*
+        * async login failed. Could be due to iocb/exchange resource
+        * being low. Set state DELETED for re-login process to start again.
+        */
+       qla2x00_set_fcport_disc_state(fcport, DSC_DELETED);
        return rval;
 }