From patchwork Wed Jul 19 18:51:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9853009 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 8708060392 for ; Wed, 19 Jul 2017 18:52:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 610B51FFC9 for ; Wed, 19 Jul 2017 18:52:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 55C502621D; Wed, 19 Jul 2017 18:52:27 +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 BA6991FFC9 for ; Wed, 19 Jul 2017 18:52:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755063AbdGSSw0 (ORCPT ); Wed, 19 Jul 2017 14:52:26 -0400 Received: from mail-sn1nam02on0057.outbound.protection.outlook.com ([104.47.36.57]:23506 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754965AbdGSSwT (ORCPT ); Wed, 19 Jul 2017 14:52:19 -0400 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=uPxIsULr//vuPv0EHL4XmCUfHQnOvy5ge7QWZeY7ZLE=; b=gNzE4fglubqZCS1F/kV37Mvh5EZlG7h4bSz1xhy8SUrqVo3WRBb7tU84iAPuc58PPiyYNV+rwF5WhdUqmTO0KAfkX6B4Wu7X7TGXK5G56iceVsF425lyd0et1fPkukK4F4FdFCqH3bqu3BEyXTEpBEpb7c9qr+wAEghljnK4q60= Received: from SN1PR0701CA0028.namprd07.prod.outlook.com (10.162.96.38) by SN1PR07MB2192.namprd07.prod.outlook.com (10.164.47.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Wed, 19 Jul 2017 18:52:18 +0000 Received: from BN1BFFO11FD022.protection.gbl (2a01:111:f400:7c10::1:123) by SN1PR0701CA0028.outlook.office365.com (2a01:111:e400:5173::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10 via Frontend Transport; Wed, 19 Jul 2017 18:52:18 +0000 Authentication-Results: spf=none (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: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1BFFO11FD022.mail.protection.outlook.com (10.58.144.85) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1240.9 via Frontend Transport; Wed, 19 Jul 2017 18:52:17 +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; Wed, 19 Jul 2017 11:51:56 -0700 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 v6JIpqvZ008611; Wed, 19 Jul 2017 11:51:52 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v6JIpq41008610; Wed, 19 Jul 2017 11:51:52 -0700 From: Himanshu Madhani To: , CC: , Subject: [PATCH 3/7] qla2xxx: Add command completion wq for error path Date: Wed, 19 Jul 2017 11:51:47 -0700 Message-ID: <20170719185151.8564-4-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170719185151.8564-1-himanshu.madhani@cavium.com> References: <20170719185151.8564-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)(6009001)(39400400002)(39850400002)(39450400003)(39410400002)(39840400002)(2980300002)(428002)(199003)(189002)(9170700003)(86362001)(80596001)(189998001)(105586002)(6666003)(305945005)(54906002)(2950100002)(5003940100001)(2906002)(626005)(48376002)(50466002)(36756003)(87636003)(106466001)(33646002)(356003)(8676002)(4326008)(50226002)(47776003)(81166006)(478600001)(42186005)(38730400002)(50986999)(5660300001)(72206003)(101416001)(1076002)(76176999)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2192; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD022; 1:MPQ+0OR2WJNOyT+6VI9rz0IvjkR/HGdNPSZBIE/n/YnZY+iXnzNRqnFR39oNVHjf7BAivNruvjUV4symoFSQIGb/lereh3aJFo+Ga13z1+UL3dhB0VffG2DHzVOfUvEZO3GSyUbumJQ7dn1fJ1U1BlIzosF0zHPdtCeXpO1IkbnqYieeBdhKYYw5e9BHY3XN1IuqU4z2VKHztzfpaOCGl84+rQ/Dcfw+Y2qahLFTlGI7KOANvyZX3oHJCUQXx2QdxhED99DbESeyqxDYMZ5SMWPH3jwexdklwP91CFFpvMGvvdptPjW08HWtQBPwknn16izfd4bDf9Kg60xv3qj0twvDmqheZDbY+2uj1DF1QEjLQ3YsLGjSUp0gee3tCBhOKLbAVvkFgUVdw0aIKx5OsNDTPdanS/10XRUUzMlORPoAeKCx8yGqpI0rBQUoNVaGOngnuwwh7AjweOQf1z2/8XFcbyHjnTc0A+UhvvOpFNXeAfPt3XO0LN6QnsltnXwq2jFoOEOBaYm0sFsywCFjY5+aOCMyl/4d3kqdrQU7VaHLjqW2+StQomE/fgU2qEFKzjCiBVIbkGF2rxDQ9XvFOeiaj/DFlRUc0yxSBPeZPhMxuU38kZjgXBmhjizIKGO88+zxqaNgJORbqQOFii6YGyqkqpDwC39IGYVrY8nzNHq+5mGXeGfNzUe59ylHX4znCiX4L9qr8Noh4JShKOgsrU4bZOlj0PFSGYgXHoWsjzhrHbieOP5A6G48sdj9nSrpkEELLgX0fM4cXsBjUhmkJrj8fR74YsYvAQp6KluHMrgcrENc6QvPX3At5eGonvnWnPsmXRiZGVXMZY3+6eWqRy+d65/QUAR+gz2Zg7w+Peq/HcmzdTh89Ghd/aptmAl6 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cb06dfaa-fe44-4325-128e-08d4ced747af X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN1PR07MB2192; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2192; 3:ClTXZ2d6hIeRnbvYVCRx2jKOp5wyVmDMifEbCnRGoDFwlHc5IihzZuTGhYZ7AXJCSfM0LTIlKF48+uBidWWdeb/ZpLPMg8y0iAr+WGRNFoxoXLmfn6NYi43J7k/FO82LA/Kbki4ZoJGGCda7Ty90X2Q6SsvNuHzvpgnXp1sDSPXoKPXZ0PtX4XVFSCZT5I2Zm6Cfh0CSpr9Iw/5mLVdL8l5D3BlbZj6GeSkmA//P/rDmKkex+r9SVVuMnGNPfN32TIAzQAUzQ7uiu2WtM0oVfT7DTTnD03xb/M7DV3mWw1KHy2xfJKOhlrB3ULkwvXDLYzePQu3IKdCTJAgeUu/elCDAq51Q6aZUN4j712ex/3UzHQuHIkD/fupIgwL9b+QUxWj8VfYmejseQHhdcroKSGE9gdMEvk8PaosDqtQGi3n91P+xoZQU0i40WYQ9E1exCHXGbYGiIDsNzi0yTELdB5XxhUrKGyId4MJkVbCggcUyssmIhwcM4BBeKy54S6OPxfbq6u5VvrDyfl+EmaDD50CdLIDpwTNdXO2hglMLcjNdIJiCSqxeKawm0zk47qmVLLPq7VzZ1O9OxKUeOLMFZijsate7QeJG8AycZquHG+O+TpuKbbRya8UavJwvWPhWVXxA2n7DwUR9297YJzHy9nLvAAVSsmbD5PTroTIXRlFRXoZUa67NQEm0fpZKjI5VovhkpyhNFBrN4yMNcmJQDKnG8SGoAoNVrPHM+nggmAhLr7HxqzUqawRyIB56atQCUKLZFx0cGo9Iq3ueMC5zWb7YyV8xkNO2GFqEi8IED91Bbj6rImLN1unYr07ITA/hLnTIJ/oYzD39aFsVv1bPPrRLWvNspm29f1RxYCbnPVsTKma16G+qzJ/WsbPnr4iIoGJJqCGTIVyvUVTaPQGD9g== X-MS-TrafficTypeDiagnostic: SN1PR07MB2192: X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2192; 25:Uj4MNDBmuiUP4OoNYC/kN+9royQRa/bLsXqXQGrEOfi/r4d2PcHyA+C6UO/7kafMvGgj/zBLiYLDNTcAx9sqUkU4t9kxyV+5Yx9F0iEfSv9VyAyyJBRfJnkqBqUZlKuh17JeQxt4F6F6S0NqJm5XctBcy1DwXRcJR0gv8m+shQUN+bb10ul8Fe5fzNQNIL6mNIx18dtHEqWLfbQtH/5gBQvPB9xdJ+0ksMEdfUe+C0GC31PgoEM38yo+MDmDxp2G9XU1DcewTw91R1DOTpDh+Q3bqi3SluVIv/baS8zWXmlDTWEXmx3spZVGrft2iOqTD1L5v+PA+cgT5O7aUP8iI9XQtWttp3I09Dl866bmVK6qORBj56K79GlfZL6lXnZUWMWrKPtdTtvmf9X0L2w2/QtpmtiMl7WME97UuH46DMXAfBMJXMTXXrl5ynj04IAoKR+5PdhIpIcBNt50y57I1MZyFWHVnWorxAYmVEx5ZkfBuCJjExTB6HmAHWavaiXhKdBoixycQdVvicMeZ5UOnO2utSzvvPoMsSvg6Q28CxGCseMXVY1HNgpMwK7rRVbyr9s5zFT2/aAe3gYTR0qgnizDSgyXbFrH3sKGeEvCDDGox+xORnZnrzHF402EV3vky6KuyTJhMhfSC/2fCvBQXMQj1zL/6C3WOzexOoHQFDpujVRYTSoNUPBD77wLUtE6XgZaMXKFVLKK0hqgYnES8EiUSNqJ8RHKPe/XV+tuSVePsK+Ljr9KBUqS64MeU7Ni0lgAyT9rxRIqOaDrTrwD+S5+Q1F57QS60VUqfCx2tRQTJl/1hn22BzEyVJh3bB/EiRzZ6XCIhrXCU9R7S9UCoypB+W+ATWUob26JwbpycBn079og6wqJkMLbOMTTMZZvpXw5qOid+apBndSHR0pgv0cIpvmErl4+Q1cYH/Bve OM= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2192; 31:NFyRn6CewvUuF8Ipq28ulfLF/LSkGnaAnK02ME/6VqrUsH4tU1qFspeEp25r1ArXrSsYc1sLyLwzFN0fDcR+I8686FoVhaHMif3MeOrYhS3vBj7T2gZk4ch/33FLfdKtsetCpXPsk3iRcn2sy5hku5l8tJBZ8gzd8a622iluxyRSQXxzAN2txNviLynSvBseUmmhupVUbtO3kNiikBfG1K+mKfgS9G+9EKrbKDupI2XyR9RWbqG4wkau5pxDDIaqiKMnMCdDSLJXVbwgORDgQ8B6c4E8bgyyCObLHcCEcZQN+Ihbods/dmcl7lrEHTGvt3angyE58nY8pkJ0zcIU1uhrCtpHHZDub4kYodhzDA7lI2WsW72OfHBYRfGTx6z490lb++EU+A2y2+TPDmUZqo9UQR4YIGX8dWgmrAeEDgjRJVAG4VrUVDRuVnSuI1Kii6Cr49E0Ox0ghnebDDBQRovQEwPrW9vLnXVv82HKkX7s/Tgmn2w+jWOEXDAMJWqm4pacHwG1r659T6o7jOzkIDz9/H/OxD7ueCWTXU0URa2pUqHk9PjSp14f4T8mLsN+I1uytH3Sev6HDeXhnWinZajl5QLllX61QI2pnmeDr3WQsIi1vpEyyNpnMHxOIvD+MCeC8kv09UUPTE1450zXAyxzAWTCHo6KSCRH3Gcbsw1ZSUmVwazdc+LtFSCc/RYo0Q7TyK8A+QLYvdlVHlv++Q== X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2192; 20:OC5UlEBW7KdqiUf5FIm/xKFQ9NnmJWHpKc0YcIJ63Mxb2IpXShdGmZoGm+HZhkBaXzHsgoB9PIkM2PPAtPSRvW+lSRYkki1LbwhxsDZJw4/DGzNfm3xxj+vyRdNfvjX1ZtCoqXMWZ/cLmlrx0D6CwQoim2bEj5JQ0JDcOhhtPc3PU/bUBZXGHKudWwYmBg4RjHjbibQXXj4R6lKP8K6QyzC7tLckfvUbO1c5qEdQLPdCw5BAySt957S6sLYkJjtHbpUniKr4Q/zGtDDVMq7gruIyT5PyN+3zrOV5vrUE3pd0EVlV6AQrRiXWSVfTamZQd76ySHPTXuFIB/A0avmqW4tnHdaRANwUmDPzM8pz3CpD6D05QgE6dhPhphg5WAnSm9d3/Uvd2Udo9FRlcba17hVuzZ7z3q/+0P9iAt/ApCEcz2znvN+jw+CzQgDmI2Nod0fOSWq7Lcwg69P6hJ3wZk51l6xRoAAf5oJc22BZw6360ObcI/iYgZ88yhlfDP81 X-Exchange-Antispam-Report-Test: UriScan:(209352067349851)(236129657087228); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13016025)(5005006)(8121501046)(2017060910075)(13018025)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6041248)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR07MB2192; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR07MB2192; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR07MB2192; 4:2n/+OrSqBws2bd4YbqMVe8v7L5dpd/Lvo0b27RpqRy?= =?us-ascii?Q?X3WPpPG1JIg909A8so6Sr9FoehK1lt2K2hLHIj+ncAqj3UxX9Im1/pHJJJ+Q?= =?us-ascii?Q?uLCvU2+XrIxYKwIKIaGwDA/lFF45/Ov2qnajKYgF8w5H7EzlmDKTz9jPWWeE?= =?us-ascii?Q?ok3ElwAie2U2VGGxIWYfrqrXY18iZ0i+aPsxiJ0ysr4tLIKrTnptg78ct44h?= =?us-ascii?Q?12sBRw6zvUMp6AAylCxgeltUt2rbkcu3ZVSTd+fzbEHgO5xvWsdybQ9wGl2G?= =?us-ascii?Q?8qfN/CM8tMPAa8FivCe8PkjnLF69gyHDLb1sllvgXKWT2WOVeJ3WR0SJ64Ls?= =?us-ascii?Q?chIA6aj0bQ8q7fiX0wA2X/Nnwk61HG1366AmzroRmT72IqE0extSsdXOcYFg?= =?us-ascii?Q?xsa42NcZlTDA0N+T6rzQz8qkP9NlZuff48znVTgJ8ctWvMasAS8pfdV2cecn?= =?us-ascii?Q?iKtaFBBOHgzyfkjWBbMmwh4WCKyPQBFKfl/vsPPodpu6pEpEsrc85QV2HBqE?= =?us-ascii?Q?D904idwXVb0n6iplXrhsrc8QHz2XVBed5ebUQO0rx+12AqOUNWA/GAT4hMb9?= =?us-ascii?Q?tGRegNNZ1DgKhrhXuGGp1C2Buou7x6p5XNP3nZSGsGP3Ku0/G5Hs6pp3Qplf?= =?us-ascii?Q?/0fIsPJurA93ZRTnUT8v4U0hP6odmxp21X3CKqdLf6cnprtN4CcVoseiEJO2?= =?us-ascii?Q?O2kw8OJAl62tWU66c0t0NwK9sMArahl3l1v2OXdqELb44Vww827ubdU+iKeW?= =?us-ascii?Q?62Iw0fTAXbxcXVaz73Sb2Eyq4tA0VZ5+1n48+Z+6brv5JDwMyV7vFeb/JEQb?= =?us-ascii?Q?knnnsxkp+GserDdTY+fLUnfpihZfzlPqKsdeIGF4R15+gHv2NAxolwo0AcHZ?= =?us-ascii?Q?sEFol6hUzfAXtmhMgagAGP55hmoKV7yICwOMZjgihdc/91jc6EUaZBGkT2Rd?= =?us-ascii?Q?4cETA5vo6sRiwSOSHzR47GbB0zQeBKdA2CCqiSRauAkIxA+0eZmHVDN+i9Mm?= =?us-ascii?Q?AaLqPbFXk+FkGjBuH+BhpcpPeMiwdDj1R/WI6cVbnHu1Z1PsTjFK1qY/nPCo?= =?us-ascii?Q?vaM7t7m93/GZiZUGlsZs+5j57/1CjK4qQR9df2sN1+GAur/QTGuhzMIXElfU?= =?us-ascii?Q?8dr7JNN1OgDkoQrG5Zy8qbEwZswCp6+L54cQRNTej3MxEmer0ymKfhTN+1Ep?= =?us-ascii?Q?Q3/ZlIjQZ67LFShQFzbWdruL3Ou+R9RT/J6p2K1LIJSGlTyr4dN4R31DUobn?= =?us-ascii?Q?kre00MtThTlN0ykgeTmF21kHn61mJMsMhP2pZQEwKs5+P5oiz+MksqbGflow?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0373D94D15 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR07MB2192; 23:2nqrnXHcptQbbRUEPsd8i4Gek9Ml4uC6UgcqOL4fD?= =?us-ascii?Q?ki4qCwyNYymxJNyF2Zw5nQENh5mQa13HcUIjrEyw2Jt6TPr3uXL9hjw1FjQH?= =?us-ascii?Q?AcF4PSPFCx/UK4WlGD3KWHweGWSV03L3oxaWJWSy6qsBcQHm6KfklPwmJ0Kt?= =?us-ascii?Q?Gkz76qe+IwFiUWjICW+UFS0WPgO3uxOkFMtbJV/l8LdwWAochowg8C3TI0P5?= =?us-ascii?Q?ASqqwjli89dkoTRnegmKYwu0UC6REiM3COrFT4pH0Nsci0VC5ll8eJ5n1wwF?= =?us-ascii?Q?sRytsftxZ8DSbTrSHNMkbzpatFAE+ueFNVdt3sKYQgexDP/KPT7ZGb3NI7HI?= =?us-ascii?Q?PYiSoq7uxdHwPJfjDdvGmqPWpC2nbB674zxpkwFuAXVnL0cv8uZEDqHN0ArX?= =?us-ascii?Q?j8RvtLKXmjSaYBsNIyKKJUcxgrxgAQigrc/7QqqBGWg0Ts9057ZkHmoGAg1N?= =?us-ascii?Q?+Psxp27hrEpncx09TjO6c5ab2yht9nnUj9bx4VB3nXKA2DONCFdM0gmjr7Mk?= =?us-ascii?Q?ahPvmawsyeW1A8MWgmv45q+kRnyaCyHcks2QgA56EEqK0LbSV/cK/dJ7d8GQ?= =?us-ascii?Q?95W9eMwTmTcleqI7U+q9otykH46DLPneHjlVXjVgVkgx9vPAc4GxDapoX37o?= =?us-ascii?Q?1IXwHharpnsew6EbHfnpHMWY4TCmcSYpAFZikGnZ3R2tKYr3ocoXaKJmuzQL?= =?us-ascii?Q?rk0GOolTJVCz0o+GqPerxzLNQqNQ5ituD4u0EmBeSb3zP35mwSMiUCsIvk6/?= =?us-ascii?Q?0c4X4pJFAYzNPcUe3iHlGUXL7H/svnge00pIToa4JRpT/tVVhdCXdc4Oujx+?= =?us-ascii?Q?8ucM2/2vqs/0C+1tGT96+hxko0f5QQHvE5D+liakadIptI+CIgNS6CFZRoC4?= =?us-ascii?Q?njn/NRfNVynK65VYSk4ayii3ET1L20VNo+Fc5qAo97zUkvuafXoYdAD+A2qZ?= =?us-ascii?Q?fgM6Xk7kO8SHDecAUbphzyAvUd0UyZAWxLc3TxbTSeij/YfOdlOUCVeg3hoR?= =?us-ascii?Q?VRpz3QJ5yaC+HB5fEjz+C8Sy5IisYaDZ5p3lIsqcolHORvs+XkGi6Pz/m5Z1?= =?us-ascii?Q?2RVG48SQc6GdFNE7YsrCYcf7ac4sBF+8kGmyB13ybzXa25czA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR07MB2192; 6:BFnwBXyEd0HH2908+sruO8T2ZsWgtD4oWR7saZ/54a?= =?us-ascii?Q?lyzf10xT3Kp4+ifk5OisRqnbUzetO7dVdGhRsueV5fgQtjGc3KhWNQKZKkNO?= =?us-ascii?Q?fFuQ8D7uGrOJls+r5yVMnmFgOuhsAZUI10/riCdB1fOQhnflBzB45kGS9/0G?= =?us-ascii?Q?x395oNCeMwQwYiqBgsvjnfnqSfLS3SWX1sl9fRG5Hp97DKTr7F6PGpu3uFZI?= =?us-ascii?Q?iRHujZYWu2KRXXFImgh3pp4Quoq4LYXCQ1C0+dJ3AJX814Rbyvcwjg2iRjiw?= =?us-ascii?Q?Wp9yvvLfGz4Qw1yt4QYI7mnCpvNhsCmO9rcqb3UXLCvhAxCRV/uV/ZXip/c7?= =?us-ascii?Q?zI5IthI/vIhVoMEJ9l/ihBM8jrT9qH/0VSIK3GHttOL+H/zPX/AD2NSldGpq?= =?us-ascii?Q?KjRmnwwQdEsUf1JlaG0EQlE7v7SvMSAc9LlitVxI9AeQQhcjHqu/sttSN30T?= =?us-ascii?Q?+hCQXZF1vTGjXWzCQUZDDH6qDrvCdkgojVw7uTfNiZ1Bdxzab9Xhk1dhwxxD?= =?us-ascii?Q?Am7JBISKTQ1GYQydzFvl64vpZ+MauSlLRCWcmppKrI423uqBJ+io9APMdjOY?= =?us-ascii?Q?kz4SvZHMEwYE6PV/JCcBe6CzUtewar1PACgph/0nQvyRUYMs9lbTc1q6jE+q?= =?us-ascii?Q?XxWoF83z/RU0NEGEsLo1QLei2ZwogDH5L1MJconIrk0uU5VyctCt6Xv9FTik?= =?us-ascii?Q?Tc5ky6O/vDTosxBRQHvSqbzEaFzsvc2WbOntowS17F0mki/KBC/A24WMShD2?= =?us-ascii?Q?AGunaYQOVdy42aKxxgr910k7nl+JWhJFgWGoI4cP+kVxOnYPY7K2RGW/jlWS?= =?us-ascii?Q?WCvQfPG0kik1udXi+/A9sibFi7VWwQ5d0t0d0KCqjej5lkLMDy5wTGaXOrrq?= =?us-ascii?Q?7YBKFEFSJReHvOWn8gwJLbsiOv/9r56TFz0eypUXdhctysVqU8ilEVX/TJe3?= =?us-ascii?Q?eYky+0v1JEZzuD/zLxfeKQnDXyyODoLCflYgI82MSn7hcvNcT0dPn1oVWSDi?= =?us-ascii?Q?0=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2192; 5:Fuumc+T19Ti8WIPVVVS+l9eaJ540bA7rRRpuxP2/SlaWGneNCqKfGEufM70zeQcYNqj0iVtVtj04X7bX+XrkUo/9Q9oTrmtCw4wtNg/mvLloFLosBKCc1KFl7q0TTiMTahI0SwOFksTeoSeofo4rR9dgNepC5s/oUP8l/cmgGQ8jbxGEPdgp3K5/2m+dPNACRi+8jeuIp6ZTGvDPxb8gAaGnVrz0T1p/cu8o9zKJyZjgtJ98dZj0TQ5iy/tlP6JPDKwG2qh6r3rteZEV05ZZiRqJSlPegbIbrJCIsvpxStrNvAWNS0js6x5NpSugStyOnXslxeS+poWp+Cbj/jfrbdD9aBIJE5VQ9xdaKGtKczfO7/O7abYNOUozORewQP95Gj5ZJLGpt1x7vIL2R9vIT38WCBkFfS8l9+BDIpfk64s0lYfaemMI5uI82QXauxGL3o+VfOEqy6Svgx31CLHHQVjhH/QoIYUavDyBP39gFIPLGXF+thxEeotVd+/SmRiA; 24:bPtssFiVk2hKO3G7kvcd6tCK7s5LhUnF5p6/FYz0N+ALF+wODA+o24KapQKam0yq+LK/8jZ68VcpWZcOGX9uThwUjQKasq7k8gPnfeu5Dhc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2192; 7:LfR6HqLlAfY/wDK6SlcGrlt/+NrXwzqLxHbfC5e0i0f5fjBqSrV0NIZaWP7FepyT/hiIgbFUx6yDrsPAZMjjF+tPhZPTdIOzg9yDOBPM2rA9kGP/Gc5RPqOhLBvwUZTY74oPj3DPdS4QVKjx0yi9I6kbt2KEC/sCWNK5w239+2WeY+b9cuEVeu4mvjnS+l19M39i0q7EhQk59x6/XzOhRS+In26gHTM/XZYYdoKi/b7FdYewcsFq/5SVJR4Bt51z2oEzH+qabtFUxLG7CVHYyzJbcoDHAtHRIpqqNJoneGQfcS2YEjkVJPh0gSqC0s+vHb3nTgkBC/LgLG5W6aQslWM8PextVZ4ajP0ED718I4Z9nqDa15NgjC6yGISXlGgcAIbBSn2Znw89fAkUnIm2cipkRZMMh65cfqy/69+iMko0S8qSUUW2eRI2ZWp/NUuEjDiEcdcy9KAgtvYf0iaSBBVIkBjlELrQfCHLciUB6an/cBMFARaWPr2hBv66Y8xCZPKgja2InKBzYD9UBt1Y89Y8RZxPdYmJe+pJ/7JR/jgU+FdgHOaaCAtbZJ1i3b1STtE6zFxXAZpSjdh3B8R1OmFctipErQKLHd4L89hQ+gzqYkkAddFjmtlUwdJ03BgNJwWfKFdMMQsuy/DXPXG72hn+p8mJGjwVO+RsMCI34YygjTPasV0QDktEaPSkZnNqSIIw1oDY931AdM9XhGhcQrzwuzkLJstxkEJ0r4e+F6Q0fz4fSZ/ILpZVU3daIJukQ4BKVwTZsfgNvnJVIwGFRkSxMjKC8Dl1r06gO1oXFAU= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2017 18:52:17.8752 (UTC) 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: SN1PR07MB2192 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: Duane Grigsby When NVMe commands encounter error NVMe FC transport needs to teardown the connection. This patch adds worker thread to process these IO errors. Signed-off-by: Duane Grigsby Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_def.h | 2 ++ drivers/scsi/qla2xxx/qla_nvme.c | 20 +++++++++++++++++++- drivers/scsi/qla2xxx/qla_os.c | 10 +++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 1635e98867aa..799d25564ed6 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -430,6 +430,7 @@ struct srb_iocb { } nvme; } u; + struct work_struct rq_work; struct timer_list timer; void (*timeout)(void *); }; @@ -4132,6 +4133,7 @@ typedef struct scsi_qla_host { atomic_t nvme_ref_count; wait_queue_head_t nvme_waitq; struct list_head nvme_rport_list; + struct workqueue_struct *nvme_io_wq; atomic_t nvme_active_aen_cnt; uint16_t nvme_last_rptd_aen; diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c index 11494f2f90b5..7543f533edfb 100644 --- a/drivers/scsi/qla2xxx/qla_nvme.c +++ b/drivers/scsi/qla2xxx/qla_nvme.c @@ -156,6 +156,17 @@ static void qla_nvme_sp_ls_done(void *ptr, int res) qla2x00_rel_sp(sp); } +static void qla_nvme_io_work(struct work_struct *work) +{ + srb_t *sp; + struct srb_iocb *nvme = container_of(work, struct srb_iocb, rq_work); + struct nvmefc_fcp_req *fd = nvme->u.nvme.desc; + sp = container_of(nvme, srb_t, u.iocb_cmd); + + fd->done(fd); + qla2xxx_rel_qpair_sp(sp->qpair, sp); +} + static void qla_nvme_sp_done(void *ptr, int res) { srb_t *sp = ptr; @@ -177,7 +188,13 @@ static void qla_nvme_sp_done(void *ptr, int res) fd->status = 0; fd->rcv_rsplen = nvme->u.nvme.rsp_pyld_len; - fd->done(fd); + if (res == QLA_FUNCTION_FAILED) { + INIT_WORK(&nvme->rq_work, qla_nvme_io_work); + queue_work(sp->fcport->vha->nvme_io_wq, &nvme->rq_work); + return; + } else { + fd->done(fd); + } rel: qla2xxx_rel_qpair_sp(sp->qpair, sp); } @@ -514,6 +531,7 @@ static int qla_nvme_post_cmd(struct nvme_fc_local_port *lport, sp->done = qla_nvme_sp_done; sp->qpair = qpair; nvme = &sp->u.iocb_cmd; + INIT_WORK(&nvme->rq_work, qla_nvme_io_work); nvme->u.nvme.desc = fd; rval = qla2x00_start_nvme_mq(sp); diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 635ce75c630b..3329512b4b35 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2751,7 +2751,6 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) spin_lock_init(&ha->tgt.sess_lock); spin_lock_init(&ha->tgt.atio_lock); - /* Clear our data area */ ha->bars = bars; ha->mem_only = mem_only; @@ -3286,6 +3285,13 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) base_vha->flags.init_done = 1; base_vha->flags.online = 1; ha->prev_minidump_failed = 0; + atomic_set(&base_vha->nvme_active_aen_cnt, 0); + base_vha->nvme_io_wq = alloc_workqueue("qlnvme-io-wq", 0, 0); + if (!base_vha->nvme_io_wq) { + ql_log(ql_log_fatal, base_vha, 0x000b, + "Unable to allocate workqueue for nvme_io_wq\n"); + goto disable_device; + } ql_dbg(ql_dbg_init, base_vha, 0x00f2, "Init done and hba is online.\n"); @@ -3559,6 +3565,8 @@ qla2x00_remove_one(struct pci_dev *pdev) set_bit(UNLOADING, &base_vha->dpc_flags); qla_nvme_delete(base_vha); + if (base_vha->nvme_io_wq) + destroy_workqueue(base_vha->nvme_io_wq); dma_free_coherent(&ha->pdev->dev, base_vha->gnl.size, base_vha->gnl.l, base_vha->gnl.ldma);