From patchwork Wed Dec 20 06:56:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 10125119 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 D94C76019C for ; Wed, 20 Dec 2017 06:58:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D14A829649 for ; Wed, 20 Dec 2017 06:58:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C62BD2964F; Wed, 20 Dec 2017 06:58:08 +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 11C7629649 for ; Wed, 20 Dec 2017 06:58:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932561AbdLTG6F (ORCPT ); Wed, 20 Dec 2017 01:58:05 -0500 Received: from mail-cys01nam02on0072.outbound.protection.outlook.com ([104.47.37.72]:10627 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932463AbdLTG5n (ORCPT ); Wed, 20 Dec 2017 01:57:43 -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=7zETLxEfaOlW96H9OUt5TczXAuTZnTSbPrOzGiMMDJY=; b=G+tjNPbYZ+AekMIbwGcrVjN4f8dx6FTVa/EtRgSygXH+YCgoBrkr0QWPJ2MW1RQ/5NrHkBX4baURpBuZ85WS6pGdDuS3ZzM+tR9e5DTNF03wHy8pfh1MnjgvtFGWHbALna/v7n7tBoBUi1jjfBcCrOdJqGP2PjppTRjGsRNlAeE= Received: from DM5PR07CA0030.namprd07.prod.outlook.com (10.168.109.16) by CY1PR07MB2523.namprd07.prod.outlook.com (10.167.16.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Wed, 20 Dec 2017 06:57:35 +0000 Received: from BN1AFFO11FD037.protection.gbl (2a01:111:f400:7c10::112) by DM5PR07CA0030.outlook.office365.com (2603:10b6:3:16::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.345.14 via Frontend Transport; Wed, 20 Dec 2017 06:57:34 +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 BN1AFFO11FD037.mail.protection.outlook.com (10.58.52.241) 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:57:21 +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:52 -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 vBK6uqq7021694; Tue, 19 Dec 2017 22:56:52 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id vBK6uquf021693; Tue, 19 Dec 2017 22:56:52 -0800 From: Himanshu Madhani To: , CC: , Subject: [PATCH 37/43] qla2xxx: Prevent multiple active discovery commands per session Date: Tue, 19 Dec 2017 22:56:38 -0800 Message-ID: <20171220065644.21511-38-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)(39860400002)(396003)(39380400002)(346002)(376002)(2980300002)(448002)(189003)(199004)(1076002)(4326008)(50466002)(106466001)(8676002)(2906002)(86362001)(81166006)(6666003)(76176011)(85326001)(356003)(5660300001)(305945005)(47776003)(87636003)(16586007)(36756003)(8936002)(72206003)(54906003)(575784001)(478600001)(110136005)(48376002)(69596002)(42186006)(80596001)(81156014)(51416003)(2950100002)(50226002)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2523; H:CAEXCH02.caveonetworks.com; FPR:; SPF:PermError; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD037; 1:Np2WFwg/fZCMzA7oYwQGBm0NDyL64pFOujtZO5EIQQM+6zwp1NoVftpfCPYfHyliNNMVLBMNrUJcPNzpv36IRxYl0Ab7XmRJESLLAX3e8KQPgbC9W/vW7Vh5MT+ck7ln X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a52dd145-1902-4628-5097-08d54776eae8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060); SRVR:CY1PR07MB2523; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2523; 3:BhSLbOmlcqWnKtUjoo186K8MdZThaaZrMFkWGJv55slWOVAcLBQeVHN3fQAftncJnC91kM48DbFUygxL0hvQcCJj/SM17ZEPonnyREgtoywawn0lB9uepQUra3V+D5oikgaIIAhFPvPqiG6V03BEsfk/iDEt+y7tSqFcm6DNryxruOzIDnFYLAqfXQzf5SNRlxldQ3degi+8yJ6dl/E7Qvz6oGwrIlxoF+/fulu5p5IOR0GTc4tno4bhjObvjEQg9IkRMinDes4rk6YM1GArFL/JRLbkY62Qelf2PQDc8I0G/vro+De7R7En5MgfHpFVEIlpXMsjKjJrYtq5+ATUM9DCf59gLBd090G2+pmtj7o=; 25:ziEKRfwMwWPqwH7OwHXuvizl60fJBksoaHksaKD6mpFZz7U9EsSb/PMNKto959O8b0JLhpsioOjg06HLjfOa9xpVa81tGxdEDGQ7Vmgapn4H4CdiTRfBOP7Pts1qYwfsnczYxzME1ySHN2MfNd2MLq90ILBI/yIV7yQI05OxgzXgMCmjaynN9Xo4QYXsoEi3CMK8YQt7Mjm780wt1vYLTfLeP6zabXCfUWGw0YSQDRGlLZIx+BraoX0ZvoFlkIypgl22Bn1V5AzBbrTbm3dtJMfgmK8gDWV1d6iw6YXmKTI1Ut+ZgJtmJUYm8+OFJp4+zt9JolT0lzwZpFRetGv+xQ== X-MS-TrafficTypeDiagnostic: CY1PR07MB2523: X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2523; 31:ve2vBMZTOgcbk1uScenxZL535ITB/8lzTGgaTGpbW1g7cF7H4Xx4Rn8Pbv/hX1A/3PppdzCztv/ArSQiy9t1WHu2CVVydmY3LkPZfb/VV05NTy0M3NDhbfwizIeVZl25SsxjuFaZaeDlONNRSXzv+qq8OCF+d8EWV14nYVjgh4xFvdZT9aUPFURTb1CT7O85meacd/mxjTv7EyWeRyF5WzYzTz8q8KBQla7sPFyHQv0=; 20:y5Ht6fz5peCkoWIV25JyQpKr+KF3t1q05P9SOk/bnd5/t+ydepRdFvADbldLvE+NndVHUeSHiUWCf6ek3JPiq47XZp/RrYZYZgHwY8IunZwG61EBOydXV0GKSL1neT7YZ7JnTEKNF3bdPXXIwpFUlIAhnGvlqevKRTPPcCN3AJdOEImyU1Ixv5B5nCviQbTuijx3aTbU/co1IeyTMeA58w6zTmOE8DWgXHRahLxYB9WGgDHqyJoLK518ppQD3ogMfViCrAV+0vwlLu0RywD1pBR/T8vUmB3xAGql6YJmNhJ9U/hJR7cueJHmgeXs2GxVGm/2mYXA2XeGQnLwS+xKbZcET+vlj/MBiCXG2WXsa/GtiAjq2LbR5j9iq/ArM+m/gKaSB+H5BzUqFq2834wPtjD5qaE/OBg+/Ofd28gyGF26LY764h4V+KC7ujSWyOVjUAHhbecr/Fm91Nyu9dnobvP6IpBUF0ydsVq94mGE5JZ+5DbbPe5T0nFqmtB6w4kW X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(209352067349851); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231023)(6041268)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY1PR07MB2523; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:CY1PR07MB2523; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2523; 4:fVs/olLUkpATdrqhIB4E0AjqK15aodQ6FaJbmCGuiRC8lz80Vwk/eEkYVYw3ElTCvsgNuuoXHMqEn1CuobzDrJviVSMqrxtOM8TCaBBmGujZJm9mQclVW0hCcKqiDQb/BFi2/NgJulcXkATTayzZhfD8/w2OSrbsnDxKSicwzHXDUo84EFyIgtkW/pH8xFE8KbJy28aQMNN4fbn5cKSPBLOCj8wDcV+kCJDtlJdwdt7Geg6KYYgDRO4cDuwTbbKTmKVwH+CWay1WmosWiDf9dOwYXLWCZHLxu8kEQqKr8HGXZV3M07P5XIie/xy53nMs X-Forefront-PRVS: 0527DFA348 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2523; 23:l6B4pFO0qU1lFfvNTyVOcIARABGhpj+K1cLYpG/TC?= =?us-ascii?Q?cNHbo/yaF+uD8o0e81jLFP+aPtYo7QwaxW4ccpSTYdHpnN8U+F9H6xfHsGo2?= =?us-ascii?Q?OnWv1yfkQ8WlsWngA13R9EKm1VC5Ku0U/k2yMPj7GjM6sqDXiqSa2FsU3WSt?= =?us-ascii?Q?Do3L94KNJvPoRREyOUg/+tfGw8rVfC7xXCBNWZ1NseEvbwZGdND8ld5xboNf?= =?us-ascii?Q?xi90qnely676O+dz2xVRV+SwlnS2a086bWtm5FMH00ObjPmxHGwJIyl7Y9OO?= =?us-ascii?Q?8KRoxouzwn+YneYNzUKAgPaLjDEytHPN3i6wx/AJOmNdPryutkgv6AltibFw?= =?us-ascii?Q?sWVSsncC+XnGB7kv1RSjpP9dbXJ/vp5LROxzUJSlMnbCuAKO8PZIL7uwSFwp?= =?us-ascii?Q?HBClhwDAcyDEce/c5RSJPDZhEaV+5AEMsSt6ciOVKaJT0SCzZYH/PEbWwcMM?= =?us-ascii?Q?ZkPbZGxlc05UhUWdIuW3TNdyvWw1O4agSVtt/X/pPP4BsWD4EIYO0+b8EaEE?= =?us-ascii?Q?gM5LVkNqbA1odCSK8toaJBT9dHJ8U8HGKeam6ok5EoBFHQD+FCoR//o2fh9+?= =?us-ascii?Q?RKLwsXTm1w2ESoGfkCGstXPyCnNuS5lfu6bw4Bu6+eNC2V6pCvXf0Tchrzuw?= =?us-ascii?Q?bJL8eA+XYmxsQbE9aJTBWosA7xkAnZ8d/upD2uMJwp74S9OFVXJmRu+giuIr?= =?us-ascii?Q?hm0iK1A6JOncktdzTMjuD7DmQ71pOzVkqqCBbMaJ888lwQwRfjgKj+uMmw6T?= =?us-ascii?Q?sfw4NFwGjHwLHDLL2Hcy/kq8H2sSO7cdQIvEgLOJ/DGDa4ors1fy/rHJSfCI?= =?us-ascii?Q?4lwsNaYYbBMT+/HZShEJIRqn87FpNPo6xHxMvV5I6Qeq4Os5iCB//IdWUfcc?= =?us-ascii?Q?HZKZyEzGBQDoGihi1/qUcpNEz1qsLDZOSnZeQeOLnWdGnlZFrgXLSA5CqcDG?= =?us-ascii?Q?Js4hs3Kt9JOki2YNPHCZ1go4lC7p8IBQZvOZmEld2nXaonMtABnCfAWfdqah?= =?us-ascii?Q?JhROyHh4OsgRUlWOTZsRB1j?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2523; 6:lFf96ZQ4eAkmTuetkd8yuU1NVs8+l7fKl2azR77B1CYOBNo0afhvcFFQYixGWV3r+5szCgYf1Oi1XfCtei9tb4HnJASm4/sDyxbexzLb0S8zoHzfDt1aMCHlLOHzp4BfzCxOS+qBBVBmd9YJeUR6zC0dnf4GjIJuxa39zPj8AmNPi84sLxiHfGKjefHGBohEHmhUR0xPfrT3o0oxGtjbPVPbbZdkM3qL64HaZ9RfwcuQKyOUXvK9fHLaltacQHalxg2UchgGUp5GOCBZ0m4Cae41ZLYczXx5/9amx92G4PGFwoIgRD2lWW9Y03ZIZIBorA96w9KnQvmdzL4qTfYi8JKrYGboz1POvI5xNHiNYqI=; 5:UQwvtJHctIQdUqy1SlyOHe4eZOt6SPZptMSzjUqI4sFZlVHXuQBDg0ckBixay13hs5BLOjsUqiFzLji2idIQDlmY/uH51NxllulbVHaFv/tELy5z4je3Q0QBqOLB/gotP0jbmQFaDJdzr50f8qwFTT3u/KrSLpwdkh/o22lp0JQ=; 24:K5kZdl7cmxvyQdg4LTgpN2+OoiIH2tXNg+VWg0UphsRcxO9GjfiuVEgGqda/Bs8PU8cNH3yIHmRT0fuKHg7yEgR4YoGH+OiA0yR5eTj8grc=; 7:6LhCcfDHmV6F6CfqzSo6Ip/VdahfkVEecIpt0YWWrEvNMkJqPYAOPuXEyoL7JyQcvAZIrWki7YRtaJcKp3jDZBqSh8Jl7qk9GLmsc6wKVJ1CliqswWHcLM8JCOew02hdlkCwIQESCsiurKjYt177rZMmeNv3MplWaixWkcafrlJGfoF0bUZ6xQn94i/cxQzusUcbuaqCMVx3ntJBwYcDkrmKuYIUzv8Q8fA2HpFs0tZeu0m21k1+GO0Pc73cLuyp SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2017 06:57:21.2167 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a52dd145-1902-4628-5097-08d54776eae8 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: CY1PR07MB2523 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 Add check to allow single discovery command per session to be sent Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_gs.c | 16 ++++++++-------- drivers/scsi/qla2xxx/qla_init.c | 11 ++++++----- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index 8256b65e9e7a..29b63c2a380b 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c @@ -3176,16 +3176,16 @@ int qla24xx_async_gidpn(scsi_qla_host_t *vha, fc_port_t *fcport) struct ct_sns_req *ct_req; srb_t *sp; - if (!vha->flags.online) + if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) goto done; - fcport->flags |= FCF_ASYNC_SENT; fcport->disc_state = DSC_GID_PN; fcport->scan_state = QLA_FCPORT_SCAN; sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); if (!sp) goto done; + fcport->flags |= FCF_ASYNC_SENT; sp->type = SRB_CT_PTHRU_CMD; sp->name = sp_to_str(SPCN_GIDPN); sp->gen1 = fcport->rscn_gen; @@ -3226,8 +3226,8 @@ int qla24xx_async_gidpn(scsi_qla_host_t *vha, fc_port_t *fcport) done_free_sp: sp->free(sp); -done: fcport->flags &= ~FCF_ASYNC_SENT; +done: return rval; } @@ -3368,14 +3368,14 @@ int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport) struct ct_sns_req *ct_req; srb_t *sp; - if (!vha->flags.online) + if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) goto done; - fcport->flags |= FCF_ASYNC_SENT; sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); if (!sp) goto done; + fcport->flags |= FCF_ASYNC_SENT; sp->type = SRB_CT_PTHRU_CMD; sp->name = sp_to_str(SPCN_GPSC); sp->gen1 = fcport->rscn_gen; @@ -3415,8 +3415,8 @@ int qla24xx_async_gpsc(scsi_qla_host_t *vha, fc_port_t *fcport) done_free_sp: sp->free(sp); -done: fcport->flags &= ~FCF_ASYNC_SENT; +done: return rval; } @@ -3829,7 +3829,7 @@ int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport) struct ct_sns_req *ct_req; srb_t *sp; - if (!vha->flags.online) + if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) return rval; sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); @@ -4525,12 +4525,12 @@ int qla24xx_async_gfpnid(scsi_qla_host_t *vha, fc_port_t *fcport) if (!vha->flags.online) goto done; - fcport->flags |= FCF_ASYNC_SENT; fcport->disc_state = DSC_GFPN_ID; sp = qla2x00_get_sp(vha, fcport, GFP_ATOMIC); if (!sp) goto done; + fcport->flags |= FCF_ASYNC_SENT; sp->type = SRB_CT_PTHRU_CMD; sp->name = sp_to_str(SPCN_GFPNID); sp->gen1 = fcport->rscn_gen; diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 185c106cec0c..f42f2f16343f 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -206,7 +206,6 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, lio->u.logio.flags |= SRB_LOGIN_RETRIED; rval = qla2x00_start_sp(sp); if (rval != QLA_SUCCESS) { - fcport->flags &= ~FCF_ASYNC_SENT; fcport->flags |= FCF_LOGIN_NEEDED; set_bit(RELOGIN_NEEDED, &vha->dpc_flags); goto done_free_sp; @@ -221,8 +220,8 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, done_free_sp: sp->free(sp); -done: fcport->flags &= ~FCF_ASYNC_SENT; +done: return rval; } @@ -244,9 +243,11 @@ qla2x00_async_logout(struct scsi_qla_host *vha, fc_port_t *fcport) { srb_t *sp; struct srb_iocb *lio; - int rval; + int rval = QLA_FUNCTION_FAILED; + + if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) + return rval; - rval = QLA_FUNCTION_FAILED; fcport->flags |= FCF_ASYNC_SENT; sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); if (!sp) @@ -717,7 +718,7 @@ int qla24xx_async_gnl(struct scsi_qla_host *vha, fc_port_t *fcport) unsigned long flags; u16 *mb; - if (!vha->flags.online) + if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) goto done; ql_dbg(ql_dbg_disc, vha, 0x20d9,