From patchwork Thu Aug 6 11:10:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nilesh Javali X-Patchwork-Id: 11703737 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 97AE71510 for ; Thu, 6 Aug 2020 17:47:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 082D1206C3 for ; Thu, 6 Aug 2020 17:47:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=marvell.com header.i=@marvell.com header.b="YV4DHASG" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728234AbgHFRri (ORCPT ); Thu, 6 Aug 2020 13:47:38 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:53200 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729028AbgHFQgp (ORCPT ); Thu, 6 Aug 2020 12:36:45 -0400 Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 076BApfi017321 for ; Thu, 6 Aug 2020 04:12:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0818; bh=nqm9W1BA52mv2euK6YR/84346Lp8A2RIYnlieG/bHQU=; b=YV4DHASG0rn2wPlBvXG0DSjZk3fooBd8J/yDgHxkDhF+JTanUC8KaIeXXILsUeM3mWuF K+r5H1y0NeTLGPjDXAXpBSf2PUB146vN1n0C2TbnVdmM3qDuyXUbMIFhcXHi+o/QU58c tdByd3zc5XfkEzXRpd197Yfnf+lRP23/O4WrwliDyBH/eqG/WkU7jiEI/+qFbIn7X46Q ydjz9u4BUG5IfbDq/pCwIggh5RpQ6UNCja82IN+IuJmTs+XUKnpunR2nJyXtEZaUv1oa EEF7UQc1QIg6qlosxUB9Vhtv6b8Z6CgBQTZyjc9SfGbuK23Y8xSEyZT/sU0i5Sehci7c BA== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 32n6cgvgnw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 06 Aug 2020 04:12:17 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 6 Aug 2020 04:12:16 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 6 Aug 2020 04:12:15 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 6 Aug 2020 04:12:15 -0700 Received: from dut1171.mv.qlogic.com (unknown [10.112.88.18]) by maili.marvell.com (Postfix) with ESMTP id 41C9F3F7043; Thu, 6 Aug 2020 04:12:15 -0700 (PDT) Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id 076BCFXf028502; Thu, 6 Aug 2020 04:12:15 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id 076BCFXf028493; Thu, 6 Aug 2020 04:12:15 -0700 From: Nilesh Javali To: CC: , Subject: [PATCH v2 04/11] qla2xxx: fix login timeout Date: Thu, 6 Aug 2020 04:10:07 -0700 Message-ID: <20200806111014.28434-5-njavali@marvell.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20200806111014.28434-1-njavali@marvell.com> References: <20200806111014.28434-1-njavali@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-08-06_06:2020-08-06,2020-08-06 signatures=0 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org From: Quinn Tran Multipath errors were seen during failback due to login timeout. The remote device sent LOGO, the local host teared down the session and did relogin. The RSCN arrived indicates remote device is going through failover after which the relogin is in a 20s timeout phase. At this point the driver is stuck in the relogin process. Add a fix to delete the session as part of abort/flush the login. Signed-off-by: Quinn Tran Signed-off-by: Nilesh Javali Reviewed-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_gs.c | 19 ++++++++++++++++--- drivers/scsi/qla2xxx/qla_target.c | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index 8c30d9dbb48c..2d7a47a2873b 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c @@ -3536,10 +3536,23 @@ void qla24xx_async_gnnft_done(scsi_qla_host_t *vha, srb_t *sp) } if (fcport->scan_state != QLA_FCPORT_FOUND) { + bool do_delete = false; + + if (fcport->scan_needed && + fcport->disc_state == DSC_LOGIN_PEND) { + /* his cable just got disconnected after we + * send him a login. Do delete to prevent + * timeout + */ + fcport->logout_on_delete = 1; + do_delete = true; + } + fcport->scan_needed = 0; - if ((qla_dual_mode_enabled(vha) || - qla_ini_mode_enabled(vha)) && - atomic_read(&fcport->state) == FCS_ONLINE) { + if (((qla_dual_mode_enabled(vha) || + qla_ini_mode_enabled(vha)) && + atomic_read(&fcport->state) == FCS_ONLINE) || + do_delete) { if (fcport->loop_id != FC_NO_LOOP_ID) { if (fcport->flags & FCF_FCP2_DEVICE) fcport->logout_on_delete = 0; diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index fbb80a043b4f..90289162dbd4 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -1270,7 +1270,7 @@ void qlt_schedule_sess_for_deletion(struct fc_port *sess) qla24xx_chk_fcp_state(sess); - ql_dbg(ql_dbg_tgt, sess->vha, 0xe001, + ql_dbg(ql_dbg_disc, sess->vha, 0xe001, "Scheduling sess %p for deletion %8phC\n", sess, sess->port_name);