From patchwork Wed Dec 20 06:56:18 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 10125075 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2C4836019C for ; Wed, 20 Dec 2017 06:57:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22BD229649 for ; Wed, 20 Dec 2017 06:57:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 17C842964F; Wed, 20 Dec 2017 06:57:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9ED2629649 for ; Wed, 20 Dec 2017 06:57:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932494AbdLTG50 (ORCPT ); Wed, 20 Dec 2017 01:57:26 -0500 Received: from mail-bl2nam02on0063.outbound.protection.outlook.com ([104.47.38.63]:19402 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932380AbdLTG5M (ORCPT ); Wed, 20 Dec 2017 01:57:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=6bEHdhcWBVhMWjYti2rQNAGB2kPrAu0N/qM2yC3TgwA=; b=IyAn/DZgQQly9JJIPTuCFXWQInK+raUywsnnA5WGCg20j+5nuS2cHtI0DauIVbvlG6yvtSXGgYPnzFbmAV+e8m+ZcfI1NLPseAoPsH9pLK9G0lwNAq9OqswOzX9q8mI9Z8Lx4qQFtCDf5JoACjYoX1CLJtAHRZqQbo4Xi6Zgi58= Received: from SN4PR0701CA0020.namprd07.prod.outlook.com (10.161.192.158) by CY1PR07MB2522.namprd07.prod.outlook.com (10.167.16.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.5; Wed, 20 Dec 2017 06:57:10 +0000 Received: from BN1AFFO11FD027.protection.gbl (2a01:111:f400:7c10::106) by SN4PR0701CA0020.outlook.office365.com (2603:10b6:803:28::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.323.15 via Frontend Transport; Wed, 20 Dec 2017 06:57:10 +0000 Authentication-Results: spf=permerror (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=cavium.com; Received-SPF: PermError (protection.outlook.com: domain of cavium.com used an invalid SPF mechanism) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1AFFO11FD027.mail.protection.outlook.com (10.58.52.87) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.302.6 via Frontend Transport; Wed, 20 Dec 2017 06:56:57 +0000 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Tue, 19 Dec 2017 22:56:48 -0800 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 vBK6um1s021614; Tue, 19 Dec 2017 22:56:48 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id vBK6umFS021613; Tue, 19 Dec 2017 22:56:48 -0800 From: Himanshu Madhani To: , CC: , Subject: [PATCH 17/43] qla2xxx: Allow target mode to accept PRLI in dual mode Date: Tue, 19 Dec 2017 22:56:18 -0800 Message-ID: <20171220065644.21511-18-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20171220065644.21511-1-himanshu.madhani@cavium.com> References: <20171220065644.21511-1-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(396003)(346002)(376002)(2980300002)(448002)(199004)(189003)(50466002)(48376002)(51416003)(47776003)(87636003)(85326001)(106466001)(316002)(86362001)(72206003)(1076002)(575784001)(50226002)(305945005)(4326008)(8936002)(69596002)(54906003)(16586007)(42186006)(36756003)(76176011)(478600001)(5660300001)(80596001)(110136005)(8676002)(2906002)(59450400001)(6666003)(81166006)(356003)(81156014)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2522; H:CAEXCH02.caveonetworks.com; FPR:; SPF:PermError; PTR:50-232-66-26-static.hfc.comcastbusiness.net; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD027; 1:ukU+XbftCei6U/JlciEPoHI5c4OYnd+GmPt6yD974MwuVgAI3e+w/fEPXkhORDS6soDC+UqKaDjmSKrJXr6DPKP4zyijJrsFd5kJyJM0qaenIo62ii8je+7HbI7ObGmD X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eb8410b2-7d63-454c-fe2f-08d54776dc92 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603307)(7153060); SRVR:CY1PR07MB2522; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2522; 3:wK5wU5Tay44YHlaZrxxwd/InZ76M5t3uNXUy/8a5smSnQzAFVj56ZQrqZgXw4QmJ9p8u23to552oL58F1f/8l8NNk1Dv1R+/XYtr2mxEkuuLUioZ1vYcVsaTRz3jNRs82fy6b2XioKlDYiVojQ/QrvWUd7C2yT+YNEtKXE406SIcIajSWYOsr1twZXvbowO/VmaG1dtmjmDP/nPkP3Vg2YWI/w2BigLMXzcVeUV35AEDQOCQ+iUVhpunFXZ+5EkF3f6xbv8wm0WNUmKmaBs/zDcQohrCxMEVrwO6G9vzxxWMNv+sE5ztHzfZ0Yl2e1vfZpLXA7ECGgWNGi5PXZ0k3j+vrAo0PXP0FIhQXTYlPWc=; 25:CJSL1Qp0E2gUYZ6hkhNDT+ug/2ON1qicWZmWUhxeTlDhCFCF43h1aN8xzQ8wn6rNfqb9sBvmbx14aX4JE43JO9R1IFhLYLQzD//aAfaJL9ZdUJHjX7shwSmZy5highxcHrueDpiCKIdnQLLFTj/J3e977N0hMNiTkG5cAqfKDLxAEDganJpQqTQeOx8Bl9JERYWF7WMhQKT/CENavia0WXAh0qra3wcZVNfvHMd5KksjzJvzP7ouohdxEVaiAmGirlAwY9bOdAub13t++3i7P1kKh/8wKYkfhLZbJzaobCqNXEpZGCs83JH2JfUr4yQL1KquaO1gM5O0J6WdVSLjhw== X-MS-TrafficTypeDiagnostic: CY1PR07MB2522: X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2522; 31:aIAFfhGeDrz5GBTRLpAOzxITZUClpdX10BmjoFhOaFJROa5ivt8yPgWY/JYV8oEHrPd1hLRCZPiIcllpmtEbebUstRU5EqEzpKb0y4sXzXDUGCiBKTIasVDOB2PDMukyMjI9hsrX1Hj4cmG+6kNAFQq+JMExxfsqBqQq8YnkPJ2Ve58os25BNn2/wP8XdUHbLQHO0ydUAG00C4gzVoOpU2qev082lVmfwgRlCedLS3U=; 20:gj4hsg5MPkdY7fhhf/Yjvb/GAC9RpJp9uIsfeDI2KDtpo8iHfOVO1rvijRPIqEBgIXCfNzQVof5RfiBuPHcGQY8qDkVIjhQNA4txfY8RFoGmeQRFP6y6Uj4XXAR8qifDsYNFFyOgfFIX7z631RPPZ88WklzoPAbGiASGj3nOzIZBPRmHJUX/r1WmcOZWJDyvRagr4f0pkLsW5A8aOcPqiaswcn9Waq9PtMeQp0u7kWG34eOnLPM/C3WbyxPhW/4C4Zi8hjrd22pV+SD23+Uqh086wqlgcmFHr5zxxYGTTyskU9DxwgdLp99zhjEdchscni0sMR96WD1ltSIsd+9GRZLKWNRNCDyrzEEZvA3BN5ZLu5HhGRv9BTOq38DTGiVtqhmgReFkflwZpeMPMaoMqaXwfM/7n7Rt2Tmq8k2qn7w1FXG7EdySlEPU8F1VRupoNaTF/jSN/TmldLrc9prPmjapCCFM0DW0zhfTvI29rq5b3zbv/XBe6yuaUgZ+lCh1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(93006095)(93001095)(3002001)(10201501046)(6041268)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY1PR07MB2522; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:CY1PR07MB2522; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2522; 4:79kJTy4YG+zziqZknNcYeVeREtz4W7NKMDeoelcCNE3GC1LxHgPhmcjzEQiDDTR9JP6dYZ14qIzdhh1ggAvMFyg2SZZcdQSgwHYAD6cH0V1tUaMa6jE9l1dd8NxWyc3mH8heF+lO3H8l9Ui16T0WD/XFjxSmWqv1wFivyJEkLMmfnRQtyHAPuvZuSVMeA+El7QqVqu3AjgY03WrPDo61gaS+c5r1XxgkiVBb8p7tbok9r/MjVAbgetmNp8gUsqfj6R1XBTc6ugdGe6ATo+MynQ== X-Forefront-PRVS: 0527DFA348 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2522; 23:56TGHH8af9lOvL07owKrFM0TC56Zr9v+cxexASv6h?= =?us-ascii?Q?PJNWRXxERMGDjW2T90ObPVHm4tX8cqK/NcuMEzbFJR6FL8GDKTo6xv4KxNf/?= =?us-ascii?Q?7p0iTMQKjFGo0yrhB1QPR9zidzku/XxcekOZl7nImaHQWOUfnWVbMEhXmFcd?= =?us-ascii?Q?YIXfv5EOXeVCRBCEeBvze5ZteCpnXU8SYRG/6IjmXg7xY0JONIM/mEEvwtO3?= =?us-ascii?Q?wNGVTdPpq4yaEjhaveI0e+p8g49juozLCe6cgjo5O/EE6KTMXZMgBJJia/Kf?= =?us-ascii?Q?JCGnnJhj9XTC5yKG1R6puH5WDkQQdpwz69yA2Fz5k8GNS693CWS0d0bi8ThO?= =?us-ascii?Q?ecfzVfAwgCPzhsg6EjXFP5ejrmwOeCLXuf/TA1ndHCSwVZT9Y88AWznxr0vs?= =?us-ascii?Q?LUNHwsCR3PrEYY22KhrYkik5DdO1BXeWJ77xO5Gba+3vf50xIeZz6+XtEcvH?= =?us-ascii?Q?17O7+BBVlaTBtCt427zFr7jqAhD8umNhwRdczlaAIX+Ylc52yb+n6D2bapZE?= =?us-ascii?Q?+GBBzSRzFbW+2jhs12pf5LrjfZzXVkS/MOpfMQfgtKGOc0lG0Mx0VcLvCuYX?= =?us-ascii?Q?oksElZdAl71D5ylhZBjIpSR84WU3uc1zRhErgWNrcWiy36I2CTFE8B7rDgOd?= =?us-ascii?Q?QdXuR7oURxfLhoIzOcwFnacAN/BIPFLWcVGhwZ5Zqhz7FEuM9hUne19dSjh6?= =?us-ascii?Q?HYxGOnIgsKeruHPEqz/bn90kXsm1mQmTULrJ/2gjKv/jQ4ZiaOWs3Txy6SSW?= =?us-ascii?Q?OVPZtmBdJPFupacThbzd0YpT1a0wRoCcpyITZfzdXijQ7pS2fZDpwhPdhmUM?= =?us-ascii?Q?adBtyeX3yx5NA1rY2TzZ/RF33j5CAZx1DEmGCDDgLBfGEPD5RABJfnfDRrrx?= =?us-ascii?Q?EgYOEFEaZKLoCsDlewMOWVp0YYjOIQzurznPCZOKK+L2sb7oH9tzG8Y/5vTO?= =?us-ascii?Q?Rr4u0At/Cyq+Y+oewYJdtAcV1f5ZXlex6nz+FchBS9JAGYo0YhEqh2pxNETR?= =?us-ascii?Q?BYK/csRx3yDZz+QqgtfocG1H0gz8Ui+Vr1Ng+5d8es4hA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2522; 6:aDVPFDJFJdLzg66yOT25ZN3ElttkfaqCmUJmqxoEqKfXyINCxWHJpFnCCy9Os0Juyw6u0lSNnPYTNvmHBZapTMbw3Aps7tztqxUMIk+lWRwZPGZ+9I9EzgknJMmog9bQI4Mh1sKUEF6sToeFVh9j/sJlSMgihtDAmFf6EJ5HauPzMSDtaPHm25Rr7CdISOidH2uG0VzlxVTTP2RvjutuhyqjtL7gIZULhChqZzgo13wZETW8p2mS+6Vco/e8VM62ylpdX1Rv0AFNdEiGQPiPDj8DE2C39AgY+OTwQ2qSu1zK4rS7VxCbpftNYpe/+z/MfCANJsRrB8kBwiNhwyBSwLvxrJZ7KtHYICtgNsSyd3g=; 5:8rxzZHOvRGlHpYLCcAJLnUMX6W/ECVtkNlIC3WEZwpvPvuoMWBv2u2jQpLBNW/J+088yUzuEFXg1IHuduU1wpUwg7zWu6CJiG3cvDbTvCrBmwitlTblxjpmSmAcvL06VOs0kII7GYvIUvHYvrvDeQkTA9pI5iRxMnSafv3GGLWM=; 24:cU0KuOj7zdfBY6+wCheft/zCiUpr5qCpP7aNXaB2B4Zios3txGgVO9q4D8BPO73KGCSso6aYO5zprRVn4czVCOTmsb8s91wAdNR7yAYFBPU=; 7:ke6Y8HJklS2kOjt7/z1qLECp++SXKZ1tuGgf3r0g+3AN7SFIRazBQT02tJL/5jZu9+c0dS43H1b8PP42KycMsJ4md+sVlABD6um7DQAptE+tIB/BN5hQCgGc5r+PrUdWm5qKxJT55zOd5mybZko/5DCxPdLyGiFMfupNVufcPpaJvSHlJTAhMgYeeKJ49Qcj4nMqe2SAc6+IqfjI3cnJ/rq2BGtwE/OyPkoQU2xLWYSXWUX1pIe5W278yg18dUZ7 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2017 06:56:57.1695 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb8410b2-7d63-454c-fe2f-08d54776dc92 X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2522 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Quinn Tran For Dual Mode, Initiator side of the driver finish login, target side receive PRLI, but driver terminates PRLI. This patch allows target side to go ahead and accept PRLI. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_init.c | 5 +++++ drivers/scsi/qla2xxx/qla_target.c | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 28248adb611d..7a8c6ead6d0e 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1540,6 +1540,7 @@ qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea) port_id_t cid; /* conflict Nport id */ u16 lid; struct fc_port *conflict_fcport; + unsigned long flags; switch (ea->data[0]) { case MBS_COMMAND_COMPLETE: @@ -1560,10 +1561,14 @@ qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea) ea->fcport->loop_id, ea->fcport->d_id.b24); set_bit(ea->fcport->loop_id, vha->hw->loop_id_map); + spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); ea->fcport->loop_id = FC_NO_LOOP_ID; ea->fcport->chip_reset = vha->hw->base_qpair->chip_reset; ea->fcport->logout_on_delete = 1; ea->fcport->send_els_logo = 0; + ea->fcport->fw_login_state = DSC_LS_PRLI_COMP; + spin_unlock_irqrestore(&vha->hw->tgt.sess_lock, flags); + qla24xx_post_gpdb_work(vha, ea->fcport, 0); } break; diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 835721f077f6..eaa43d3d5a91 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -4703,7 +4703,7 @@ static int qlt_24xx_handle_els(struct scsi_qla_host *vha, uint16_t wd3_lo; int res = 0; struct qlt_plogi_ack_t *pla; - unsigned long flags; + unsigned long flags = 0; wwn = wwn_to_u64(iocb->u.isp24.port_name); @@ -4839,8 +4839,14 @@ static int qlt_24xx_handle_els(struct scsi_qla_host *vha, } if (sess != NULL) { - if (sess->fw_login_state != DSC_LS_PLOGI_PEND && - sess->fw_login_state != DSC_LS_PLOGI_COMP) { + spin_lock_irqsave(&tgt->ha->tgt.sess_lock, flags); + switch (sess->fw_login_state) { + case DSC_LS_PLOGI_COMP: + case DSC_LS_PRLI_COMP: + break; + default: + spin_unlock_irqrestore(&tgt->ha->tgt.sess_lock, + flags); /* * Impatient initiator sent PRLI before last * PLOGI could finish. Will force him to re-try, @@ -4851,6 +4857,8 @@ static int qlt_24xx_handle_els(struct scsi_qla_host *vha, sess); qlt_send_term_imm_notif(vha, iocb, 1); res = 0; + spin_lock_irqsave(&tgt->ha->tgt.sess_lock, + flags); break; } @@ -4874,6 +4882,8 @@ static int qlt_24xx_handle_els(struct scsi_qla_host *vha, sess->port_type = FCT_INITIATOR; else sess->port_type = FCT_TARGET; + + spin_unlock_irqrestore(&tgt->ha->tgt.sess_lock, flags); } res = 1; /* send notify ack */