scsi: qedi: Skip firmware connection termination for PCI shutdown handler
authorManish Rangankar <mrangankar@marvell.com>
Tue, 8 Sep 2020 09:56:51 +0000 (02:56 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 9 Sep 2020 02:40:21 +0000 (22:40 -0400)
In boot from SAN scenario when qedi PCI shutdown handler is called with
active iSCSI sessions, sometimes target takes too long time to respond to
firmware connection termination request.  Instead skip sending termination
ramrod and progress with unload path.

Link: https://lore.kernel.org/r/20200908095657.26821-3-mrangankar@marvell.com
Signed-off-by: Manish Rangankar <mrangankar@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qedi/qedi_iscsi.c

index c14ac7882afaccad43cb14904d0fbd2229aeb321..f815845fc568270373965ae9e7d417093a60b760 100644 (file)
@@ -1069,6 +1069,10 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep)
                wait_delay += qedi->pf_params.iscsi_pf_params.two_msl_timer;
 
        qedi_ep->state = EP_STATE_DISCONN_START;
+
+       if (test_bit(QEDI_IN_SHUTDOWN, &qedi->flags))
+               goto ep_release_conn;
+
        ret = qedi_ops->destroy_conn(qedi->cdev, qedi_ep->handle, abrt_conn);
        if (ret) {
                QEDI_WARN(&qedi->dbg_ctx,