From patchwork Wed Jul 19 18:51:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9853003 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 8F4C660392 for ; Wed, 19 Jul 2017 18:52:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6856D20408 for ; Wed, 19 Jul 2017 18:52:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5D5B62625B; Wed, 19 Jul 2017 18:52:19 +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 7BF8020408 for ; Wed, 19 Jul 2017 18:52:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754901AbdGSSwR (ORCPT ); Wed, 19 Jul 2017 14:52:17 -0400 Received: from mail-by2nam03on0050.outbound.protection.outlook.com ([104.47.42.50]:26345 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753657AbdGSSwO (ORCPT ); Wed, 19 Jul 2017 14:52:14 -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=OVdGELyuEOGY3zPkqsqPRBbT1OuiNsXHb4ZLWzIO95A=; b=kyHsdFivVVuz2VS7SXwtULEw5SAnyyv4gFS+/pbf50F2cuZWDbzZjsQ+x9xY7p/UaB/eHZ0AASHYtmXKFdULKQoJhdbPmH8GAo0qoRzMF7jHaXHsm21xOfV8/rbvfmPUYvo+5GlGEzTKwfJeWkU7ZZqWTDvGFc4DYQM/PeIvqNE= Received: from SN1PR0701CA0031.namprd07.prod.outlook.com (10.162.96.41) by DM3PR07MB2187.namprd07.prod.outlook.com (10.164.4.157) 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:12 +0000 Received: from BN1BFFO11FD022.protection.gbl (2a01:111:f400:7c10::1:147) by SN1PR0701CA0031.outlook.office365.com (2a01:111:e400:5173::41) 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:12 +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:11 +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 v6JIpqWA008615; 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 v6JIpqn5008614; Wed, 19 Jul 2017 11:51:52 -0700 From: Himanshu Madhani To: , CC: , Subject: [PATCH 4/7] qla2xxx: Added change to enable ZIO for FC-NVMe devices Date: Wed, 19 Jul 2017 11:51:48 -0700 Message-ID: <20170719185151.8564-5-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)(39450400003)(39860400002)(39410400002)(39840400002)(39400400002)(39850400002)(2980300002)(428002)(199003)(189002)(9170700003)(189998001)(5660300001)(38730400002)(50986999)(86362001)(2906002)(80596001)(76176999)(5003940100001)(105586002)(33646002)(478600001)(106466001)(1076002)(72206003)(42186005)(47776003)(54906002)(2950100002)(6666003)(87636003)(305945005)(101416001)(36756003)(50226002)(626005)(8676002)(81166006)(356003)(8936002)(4326008)(50466002)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM3PR07MB2187; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD022; 1:fw+XCUSRBeTScqlBYrgh4ttLBDcag1v4+MkJrIJZgc837p9XKP1dmdFyHGcasRx6k+mopGoSEcArWWNhD5eToaVSzoXN9ad/9XsnyC7l4rOs/sWR9A/GKQi+NqqywSybHiuPKopI94+XBGoq/DChaH4Z8yteYpxG8vw3QpMIvoAZILek5NAeREN/8MbM4CNLXXv7fF3+ICQKFs4EQhaBhzFduYZd01QJxgbPr8uJroaGD74bWmbVMmnTbV9zgozJrWT1lAY1je3Kbig7dIo3v70QbNYcNDdzCfVfvDR3SC4c2Lsv3Uo7DsgIXJiX/OGospLSR2DeQx596hAPczMsLzjbt8DRyYwoisFSEb+COdfzjKRncX5AqngTD6pNs6M9AiArPFt7ioW/4DAomYWaFcnFk4OkJXGtFuFXKzHnknxQEgI8UmG8AnKz+eCmNnyZaONYpW15do8F5WuFsRIsImAuEgv8x4KHM+beO+bW/VguRnt5awux1r5EmjW2nZmq1wkEBjBvHxBgBrbmwhqa/5oiPPax3tIJMVbJh8VC+jnnWx2rEQ08EJpMDBpcP4xd7jYosSvbKKW40pIXEBTKD6HMCafQjteJb1zaA9D2Rl+aKCAPQdwAYicnOxA/2T0LtN/LZ+sb0IAY3vIZXCCQfNIVoyTdJuwkQ1exENj8sHAXKfwsyvjYr4v1ZYX8uH354X28BDXiGFa+LTWshm+BcNS6tAcuhjPtyap3vvVplFq81M5ZhuSjsH3yl8jRYIYnZCB8kpNlVHtflcRk3zsYKDPHvDAitlyL81HJviumJtS9qYGe6R74xq824TmRxRx+BcMkeQfn478sFEdZT8TraF/wr7BMGTdAVcEbB8sOhTOclffU6OURGDWaQWpCnWQA X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ddd66216-4f39-4823-9fad-08d4ced7441a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM3PR07MB2187; X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2187; 3:vjidN2kayjfFqu52QNU9n3GG8QNcRrBPMqRby9eQMncx9rt6L5qzDBSVVgKvYQF15gq8/A5/GxyJLzfEH6mo2//KI8gJ0lfGB6zPQfYQem50gPi0eFpbNRaxJvL7cT8JuBcjOPQjZdWBGzNjaqJyDPAspYD8WDnL5kXJevV6sXALRADcwOEH/2VbWPrSvzr4yvy2JztF4dlElhBJNBYNgs+kQGC7Pvsf17+hDNCDKZb1ZHeU5OcDIO5exPSYCwva5nom2yGw9qh9NSZ9/kxkCN9YufG5IsgiJfHbX+9XC5kvej4QgPRraz2g3Cj6x3p/pfsFdZyLvTphSi1jW4Lrl/yr7usZ1TWp3lS68NkSj1WWfq7H8YnWxabRU0ZAxwL4SwZLW9gDQ+WkD9q1KiEf9w2W9UV4iDU6+WZJXWOtXf4Vu6bhxT1Dr4S3ZFefrRk+s0ZZputSUai7Nt9X/d6OJyeZf6soQeiEfyk2ZuQbyVPv7APpVwan5AjQP17QrfU4hxoEhlzPso7bL+9hO5HtKH35h2mgarjxVUs2FxIOXn2fFzESHhcoj2rt3Rn7bc2wMxlyicb9o5krcZflC/YmYUnaloYWa1Z871wUk21a8JnbpMCfYM5gUzL7rBdEA5P/ncuFOcwDKfUuM1szLO2fcknSvoKwMRCG9bRCQon1qOzmdKsdVMXuNO5Plt6TliuWNMiAAxF386NTJRZOogrJHyrwxW6tNJet9VHa/O7U43qknA7EO94O6MMkD7Yn3QCQmbn8iT7QuuxEW9qGqGkMWBy200ktoPRt1sygA1l5tAomm+nMfVGqLxIQHVLYr3wo1puY2RIMYOBd1ZKU0p5zy6nRIdpi0yUDSTBZJKMj0sSESQPUsnUfv5U8PLdsEOtxanpxcVMu2TNU8VoP+UfF/SMpc12Aaw72uKak1gqsU+ TGfsG0sPX19abTOzsl5Vdz X-MS-TrafficTypeDiagnostic: DM3PR07MB2187: X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2187; 25:a5u1zeyKsqOz7iOsQMgUD6mRw/IkjS+m/30RqM6H5c/mrZsHg4UHVCUAxor33/ZVcA7MFrBGZqhzJByDd3Ux3IKUHADlZ+nk6eErg74Rt2NZnJwH1cirbkWIIqJLdUEkhQ9h1mBBNDWnpqJYafagWuxhvEMsGIA8Y3r4/NaXoMlusS7vcDuRnOQcyyU3fuDUQ1AFSY+VwEmMzlAR896rFK8M/OtK6AmOPI3NJmTxigyHOV/Rcul9ufULYVLRf56adTZqhyMQ9vqHRaqyv+GmWYzhpUtsDgzku80FwRVDEoe+xZV4qF8kqR4Y1/PUQIZfmQCrddVfWc/xOEna+tYAkJ7mQOYfdq1s6Fg44kPDsruUGY4xPTiDaz5hunWVzIF6WJoHWHEdPrcAyZIJ89hV2LjPTclPhrmWJRxAD6qvjHel301R1C/hq61SKjOnGQfqLvADPkHFaG3IVl0ynqx9ppg1yzFAsaD+f+czw+5jij1YdU4+GUmxCpuNxfVZvszKgxDWt5hGd1iXA+V1Jvqirt2fPebxfxLO4QQy3jyf7MA1nFm1JwP0r9Ly835YS2v4IFK2oGlCcUkl6JWsYA1um2J+v/CkHRicLiOvcpQeMUz/FIomxVRoekLaLr7K6+/bDyMHXaMZnSXJfBwIpqk+COYoEHEknInBIzjg1jeokAoSR5SV9ghcXYx2PKfbXSYRVzCX+0e3hW1UL6ELBuMLYzF/zqh44ICnjyKBBFX7Nan24cutZfGKKJqwXHxCplsgm7OFuQUxCtqg9jHFNlefSf1fViqPQAlNVbOYsFo0xZvcvDvRoBPRCqblYO+oT9ZJ4oL9+fMKfcUlRAmKO6MjDpCzDgbqu09ivFZgDWyxnle10+j1l99rHJpGNRWQ/aMeBFa8XPUcAkmuy11lBAnSfbv9m19L0I72/1XxJJVNu rQ= X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2187; 31:tJXnN+RS+3gwglFdfYWQSUIeOxwubVotq/6u1ftM1gCP7ndacoXn99hgDgU44yGx9xNdWYCtjk7ydeMuFuf+0FKo93bm3h24GvH5owtHrAIClRfGvzeiNQ8Nvu5WfE+6ER/Uh3OsM2VbpGmwmHirBU1ec7qhfJJNvKtIqg0qD1dEUgPGBQJz6Q+DwJBXi/1rk/U+/LUxVG75oc1oHC1kwh2LLK6hCa5Rq3DkeHTHUTf6MzjcRqd5VMKuPVctGVA5ip+uKgZGCwVJDalzgZCELnv8odJcOcwRBYRQJMRS8JUzregaiDEsku2WclyOos6iMCeGKox8R1ocUCnajWZo5ofFsxCRdUblBtSFOCr9yIv0r22vDTPQtD+M8bxOGcljMi9fKLO4Eytxy4XPouAz6ukqXkxQHBa5zflOWcXaNRpaf9UThgVmY27YLfAlnR9cDdCKP8lV3id46p7s3LiItUjAXYY3I8a0L5sofT1B6YeMnk3u24STI2mcbQR+AO8JluhmfDFf728ABRiEsIWmECuxjwrM5GromX/J9bf3VGDyuvqbKoeyby9Sn8wmp6knED1FQ6CUGZB3ix+ZURBpzQBZtO/ZIiMvhrQxM7Ro2FdR9OHaBuPLxpoeB+CQ0lRkQSSe6rIp+RxI+ywTFOes9iy4n/sw5gBSsqzqYtlbesKxfpA3Z42fXXxH0edqPA4fyQss+TQpz81YXLUgZGkDmA== X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2187; 20:6hnD2GyEC/PyHfzD0GdTtaNT7OTuoY8ziEF8K8H9i248KShtJ+1MOkezX0DK3WB0fyTgqNiyG1HNm2XSCNKI+S+x4U2q32Ou2NbuXZFK6+jM3G6HJetjrCGUDjWovsK0deKI0e99NKLeWYta0KMlX4jI7g+qWVxFWb5HLpvr6p1cqYlT7+0g13XFcMbiu9/KYbk5Dymnqpi9IXl63nxTs7HqyMNySh62efayNsUrN12MpMidmHYnS+nXb2bIaM16FwP594bHDdC5KP9T3tzyRGYXhCsZ4NlvqUgdoE3yXiT3hZdUgZCNDi3OjIdBdrCPJeP+3nh1EZ7LaNBVocZ1u/vsE23N96o7dSER/bN2tdeibYo/DgeyuxzSIjlxRmXJjDuob8474+a8mUYiVhIpuCTip/Z0bZ//ZA+C4A4+CJzmUzsD9dAqdgUNod5R/M+lwySLPg2ViUu7as0ErZJrKiuI+ZWCeZGEWo+hS4kRsV7B+jIfBDAnLbbKhaEYkyRP X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(148574349560750)(211171220733660); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(2017060910075)(13018025)(13016025)(5005006)(10201501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM3PR07MB2187; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM3PR07MB2187; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM3PR07MB2187; 4:nB3i+ANC6jJ7xuknwlTu7AXqT9yrVPb3l96woc0K0D?= =?us-ascii?Q?CvRFifry6rCBNziVbHOAu7kpDxLDocETay58S+hQynuIX9/BuR4QCMtH/yW5?= =?us-ascii?Q?W8spPVFFgpEuskMp8rBqdxT6G9Iqv/MWKp2u0cE+c0NW14u+RxLYIm+7YU9H?= =?us-ascii?Q?aQDnCIFtFUOCisEoD5weyArOnR9GH291LN2sP0RwQ/3Uuba5Vi1gKru5ii2X?= =?us-ascii?Q?qaXCCBDWwTbe+IHKiYKguTNOGoiuOR0wQHGP0oBMA6VgdMlVo2+hgc/4vaEX?= =?us-ascii?Q?AEdYV07doa6KU3FdMvhe44BOTDNX3x9TGS1RJodRY+U6t9kwQxpgxu3+WKTe?= =?us-ascii?Q?2Gbz1IjzMPLfFsMmGIg5TZNiWehig7rZrwuJMzVXw/hA45fLYCgSB5eeJ/Lk?= =?us-ascii?Q?RPxnJT7zPeb4OQLLIpr6hxY6fBFmbn2g7rXMFZT5aDjhNywDC1Ejo4+owoCP?= =?us-ascii?Q?XvZAyH7OHnJyd/GJm7Zs/0N7urMKegHgm5ytgnE4JMl0eaDFKmn8/ViPUasP?= =?us-ascii?Q?qVVFP9a5CK1lyIAbspJYgPH7jw7MbKQjvCirw0ErTJYwGW4hHOgffydl1qYY?= =?us-ascii?Q?MKFsuHXgAyJ2AHwLN4Azsrl9WYyBfQTCg/DVHMExAitscsjiOPqfpvRptYHS?= =?us-ascii?Q?KMDqgjg5OZIyjXe/Tb2k2xkwGqXUBK/7Q5cHAX3oOcGnCzWm12VAgKtxgM0X?= =?us-ascii?Q?ohoF194+gn/U+JHTLldinldjgYjxhneCdhk9us9L0RtOEhVS2yWCpvjDAMvb?= =?us-ascii?Q?av8W3F/mibj6r4y3fdx1AEhoQJK4gtNTAzN7hMEKShRoDnbj07yhcpCPT2yP?= =?us-ascii?Q?puD4O+sI98pn4+gMTxHz4Ehp2xP4pyr7Ek/dqBj5LfKLNypA8T63hEXB2yF8?= =?us-ascii?Q?zMN86Rut0+zY/TcvvO8UdRH4933TZ/B83TEPllximZDQO82esyTp3TuhkVpS?= =?us-ascii?Q?dJ9fk03CalAnzzppZ/gtJoVsg5zWMxEHCek5QIJWfPXEkfh0BBMl2KsWyDRS?= =?us-ascii?Q?8XMaubHGrk+R0wn7yznaRfxkAa4QozrZ3c87eLKFrVsAvRAEBm4Wv7td1aKb?= =?us-ascii?Q?j+8r1eNgES+i+2ENy0cDo4XCZkHbr1GbsT7L0HPZHRTB4BO5jki2+sftIVAo?= =?us-ascii?Q?JB6Rl19nPB8mCujb9kPMDfr8d0/RiAuUKC0dCzrnOnIf7Y6cLqJSZEE4PVSO?= =?us-ascii?Q?eyFQaYPU3lfxmSKNYbDYTcrPgToGNnmRnpeJdNFUITIQ17pcYga1MRZVTj1f?= =?us-ascii?Q?+xykYzpXZ4nqRDDudSDDKpGyjs5X6IMBDtDXz1zP3+Wld/S1RqPLIOCWbnOc?= =?us-ascii?Q?MCy47Obs0ylOjhkZ/FhRFH/cvNM1vBHHsxVW9MpQawwkRpnWhcMz7fJ0y4fW?= =?us-ascii?Q?5BYQ=3D=3D?= X-Forefront-PRVS: 0373D94D15 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM3PR07MB2187; 23:dhnSaW7JjwX5mH82xw0zjKEUEfVOVgwYq7I1FHzRE?= =?us-ascii?Q?bGWYmusPd4FxZla6KwDXJVZgqLIJoV1zSNuRS6N7l2SZgsIhVca7VmDVEkGE?= =?us-ascii?Q?Kfcwso1q7NynfixuTa8puUVKgcKtw2NmmrAsVATPzSYRVsY5PfjjhA6jVWCL?= =?us-ascii?Q?yJT/CD9FDPAtFpNbzRFxWrJ7IzrcBiCjzQj9ieF3Tnf2P+CiUNs1riTuNKul?= =?us-ascii?Q?iIXEHfiIKM32NlWSQTA7aXQAbNgi9VgRkVxi1WliFd9/EaHfmTGks5Ji8CYK?= =?us-ascii?Q?vLr4OWsNKvM5/+9XsK3B960YOmeBPSVVA8tyPoIti2TKkKSGAxzuPgc14VRx?= =?us-ascii?Q?/9LsAZhfZu2o4UhoXc1xZGmCaGdV39LllltZ3Ox/ZClwYCmKxbvV3M08E+FS?= =?us-ascii?Q?D8Cyrz/j+6byYBZsuEwjfrY8NcAv/tC0OlDHk6UWYjVTmw9tqIGEVnYoXRRi?= =?us-ascii?Q?teDUYxa/OP6Sixy/sPPE+XPvMgN/DpWG6IXs80Ux74qjGlixNEQtBGqK0lh9?= =?us-ascii?Q?Z3ypzNdOJz1/mc3UWSV65iUF4SyocDu3Oq3cKZwBZhhSjrpniT1fKxjbHzya?= =?us-ascii?Q?6lpbr2I+ONxB/IEZHjbOZ1mdXMOBPZDbA/H7V2ce6fKyXnR9V0gZmwddZOK6?= =?us-ascii?Q?adoTWXcXXyr5CuD+4SjVxaMCKLJ7O08ZUOqBmQnBKKlb6IyeBwhizQsnymla?= =?us-ascii?Q?6+0D4vYKXBYflKhP3HY1JAXkEs++i3Uko67Qp2S8unLF5zKA3XVGPRmCRPCR?= =?us-ascii?Q?o59JJYtLLh18hYPDijoENdunqCP0zWwhDxuRNY7VWe9vHEv+4dQ0kRDBW9WQ?= =?us-ascii?Q?6XiJ/cVnXbTwodHCqpOabV4AGvTfs/W4Qic7kbN3hmCQmrb4rgw6NU678o14?= =?us-ascii?Q?Fnujue5+Kxi8xD0qn5nPBUjToGDKlRzLSh1MJQoPkBfcjRIv0zbPAs5J7a/D?= =?us-ascii?Q?8m9mYxPU5CzmvyQgJ6lpvtqOhm3gjd5alMsLH9hZ36SmEYYSO0K17g4EZVgK?= =?us-ascii?Q?KSeZOowFG2hqIxWjWQJsYj52n77UXN/AN5+uJLAo8YehO7OTJolgyj8WfvLF?= =?us-ascii?Q?r58+00YwsWKida8wMC+q0ZDpnOnZ0R1VBPUVXyPWBSZcvLXYrbzw6YbQxDFZ?= =?us-ascii?Q?IAjkmMufiE=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM3PR07MB2187; 6:rxnWIW0MNRnRQ+4N2Sew2QWTYjN8zpqXa9vw/eQzzx?= =?us-ascii?Q?p/+4WnVvhyAhBPeBOtS8wESQrPLxcwISd18Gcb3Kziyi/1k2emMGX3cz2I6U?= =?us-ascii?Q?XVdyy5jlc9tdSZWXO6hUPow52uMfPDrdAup6YxxynBqkEsLC0je/Omowvzm1?= =?us-ascii?Q?QPFwEwODUGrwYjxiBkuFCL5cH7vaD2E/gf86Ugqc2QuqdJyUPMTQK6e+7Nlc?= =?us-ascii?Q?AeMkAmWlnEn5OKdphtfL5mxCUafnrhPfrVlsCXOJGClPBfrRMCqtoAhZ2YET?= =?us-ascii?Q?K9CxKZib/ToSf44p29H+i4EB1nm07o1X6mjYhwv8MNClZIVyufuiVvpan7K1?= =?us-ascii?Q?YjsDJAW1OgpMx2c82yO9AoufsYLlkB+q/8QSjnsPk04QSHwP8XJFo+fULP/d?= =?us-ascii?Q?SybijB9gy6mzvmcUDWKe4DH9ljUClXZlGuseFrtG8xWcQ8kFVcVPg78zKbkf?= =?us-ascii?Q?fSoy4oaQv/uUt+akax//zQxwnWfa9pQawvmASc/0U6+y6VfCw3s3EbbBCJ6/?= =?us-ascii?Q?yKmOUq1tc6RO2ogXeyCi6hRj5ZqNSKzWvk5+nBg6HMlMnVHH3JlXRYLh/zn4?= =?us-ascii?Q?MMREkgWzRqg3J70XamzHjz6cVG7QNKjRz1rTis61o4M15Qd7vBF5oZM5NogY?= =?us-ascii?Q?fgBgp8FYukohdHxIxVUtS5RHq+4YSeI6UOd0TZMRLE0zQZf7Lvh+GBuft3rS?= =?us-ascii?Q?kwvh3The3IFPdYMYoISGOuJbk++pUazXSsvXjSntF1oamxxXHAYDVM4KbZ0a?= =?us-ascii?Q?U8GeNGh96io+49YNWlRvr56ln7ayHnZ82biaHuLBkFUYayEvWUcahyqMJYng?= =?us-ascii?Q?9KgFv0A3b7pDvJyouK2Gneps6sb5ttBdNyHlvLIJtnTPrP0V75mJlA/+W3gQ?= =?us-ascii?Q?v7/iDDgsVWAAWaIVb603b/wbegMBh8w6nr/69Vzo2RpIVUs97gM1tar9w5QV?= =?us-ascii?Q?b/RZEd8+St1Y3jeyhri7c+XPftFtqoxC8Nr/92C5zULBbGvai9oX2ig8GYxN?= =?us-ascii?Q?Y=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2187; 5:n6ktA4g5cJ4AnDCdyFiBJ9RZds2n4dBJgMsOPBwld8wXQ/7ZZn0uqC2koPOjUVutSWGez0DyUz8ksb3hddx1RAG0CgqxS4JHJj4iwEKKscvaqFJJlZAWS9qR5f5moEC3bztUobxHC/vhnjORs780mphwQv6CyOgcGsDykxIBs9isDPyMxx+YNS0LjLZR/Imo11+ICEP2rtxf2cbUNGvAkTBEJtALON9YPM8jACge0FxpmSuZc2Aa14O94stGy/OtfP35j1Qn4akFNpt1BMi4TqVBXBmlCeC/wcNH5APqx75V9dDm1e/q6yFW9x+N1v7TYakIP1vKdtmf/laReK1D6SY5mBSUGZrImPoElqlWpy0SJNb7KiRMwbat9kF6sdqpkOCDEl9ziXusidlUhzHq9OBsUtRnUx103kCkRouYV7cml+9GmiisZ7iUhR1Hilw8ujXQvHQ1q/l8EEFHmf6ofgqUPsh2nneMaNK4IhIbMWnkdjpTlGcUI75MWkZcITrT; 24:9Eor7XdgzfgLbjtAgJPC4XUlZHaoG3sDUhesx/Z4wBe0UH6tB0Qyy6Tb2LnG3Nu25vHZMz2YI0uj5tqkEDxIQku0wOrTV78dhK0bO/n6YeM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2187; 7:KNnvFtV2uZZNTkNR7GpnDNrLYEiBJ9/VyPOFH7Lu30xpibiYmG4qcw0qiuuINomNUR7XtkILJ7t/QJb1PjMxA+qD2Xb0035Yl4VWDaX3G9JPlJDbQ8gqnA0Pi4QOplq7zOS3uxqBautZQNsHUIvV/lALfTZOb2GAtDDvdoPF1u5mNwlQg1vtcPyyCTKWb+tuu4ibI19ht9KNs7Mbm1wwj9WETt9QVourE/I3Apyjz7Xk9XgsB5NRU/JAy+YKMSBInr3kKE0AvTZjKR0Kp6yea7SdGshFM4Z4CgJ78MftbX7Eh1BCQBtY/ksBPTsGKTSILflsCoRXgEBAqsES3XbLqGgdt7B4twhJjb8l79Me+jhWymRve68Wp3LhbOCMiD+3d9a3Vvz4iz3SKTA1IPcKH2E0wYzPctsSiNWYsLT24ypjrmS7dSJBzAC9e2s3cWzbVj6ywWnBuT1pMEvZlTgTrbwkRPCNwkq7v5BNB4tyTvZfDEFIB9GxHq+D7MVLie5ZWuK1356p5x5nD+nLAzHov/FzIC0PWJ29ESuDFfbyMuRKldzsucfDZl9XDa3/LkQC5HwqrpL3HvsK/njJX9FsBtlAM5Sjx/ITVgEKN2oi1dHeGHcJDysFGknaU5RCvJGLxkzP8ONvCbHm6nCEBamEdTPTGVkqyvmWrWowxsCpfibkoiZUdebKPyraMenHxJklITW8mAPJFVZcNncX1hXvOlhQV0ao+a5QnrlID0z1j6GLkEiMbLDyqMFvnOmJII/Eq3yznQM/Q9Yl0//Vh4h/39zq0WPfe8JT2qMrUKj8Lqs= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2017 18:52:11.8536 (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: DM3PR07MB2187 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 Add support to the driver to set the exchange threshold value for the number of outstanding AENs. Signed-off-by: Duane Grigsby Signed-off-by: Darren Trapp Signed-off-by: Anil Gurumurthy Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 5 +++ drivers/scsi/qla2xxx/qla_gbl.h | 3 ++ drivers/scsi/qla2xxx/qla_isr.c | 2 +- drivers/scsi/qla2xxx/qla_mbx.c | 76 ++++++++++++++++++++++++++++++++++------- drivers/scsi/qla2xxx/qla_nvme.c | 14 ++++++-- drivers/scsi/qla2xxx/qla_os.c | 26 +++++++++++--- 7 files changed, 105 insertions(+), 23 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c index 26751d34bcf2..7b74973d5788 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.c +++ b/drivers/scsi/qla2xxx/qla_dbg.c @@ -14,7 +14,7 @@ * | Module Init and Probe | 0x0193 | 0x0146 | * | | | 0x015b-0x0160 | * | | | 0x016e | - * | Mailbox commands | 0x1199 | 0x1193 | + * | Mailbox commands | 0x1205 | 0x11a2-0x11ff | * | Device Discovery | 0x2134 | 0x210e-0x2116 | * | | | 0x211a | * | | | 0x211c-0x2128 | diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 799d25564ed6..015908f99e76 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -978,6 +978,7 @@ struct mbx_cmd_32 { #define MBC_ABORT_TARGET 0x17 /* Abort target (ID). */ #define MBC_RESET 0x18 /* Reset. */ #define MBC_GET_ADAPTER_LOOP_ID 0x20 /* Get loop id of ISP2200. */ +#define MBC_GET_SET_ZIO_THRESHOLD 0x21 /* Get/SET ZIO THRESHOLD. */ #define MBC_GET_RETRY_COUNT 0x22 /* Get f/w retry cnt/delay. */ #define MBC_DISABLE_VI 0x24 /* Disable VI operation. */ #define MBC_ENABLE_VI 0x25 /* Enable VI operation. */ @@ -4018,6 +4019,9 @@ struct qla_hw_data { struct qlt_hw_data tgt; int allow_cna_fw_dump; + + atomic_t nvme_active_aen_cnt; + uint16_t nvme_last_rptd_aen; /* Last recorded aen count */ }; /* @@ -4090,6 +4094,7 @@ typedef struct scsi_qla_host { #define FX00_CRITEMP_RECOVERY 25 #define FX00_HOST_INFO_RESEND 26 #define QPAIR_ONLINE_CHECK_NEEDED 27 +#define SET_ZIO_THRESHOLD_NEEDED 28 unsigned long pci_flags; #define PFLG_DISCONNECTED 0 /* PCI device removed */ diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index 659cdf592678..67864d4492cd 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h @@ -484,6 +484,9 @@ int qla24xx_gidlist_wait(struct scsi_qla_host *, void *, dma_addr_t, int __qla24xx_parse_gpdb(struct scsi_qla_host *, fc_port_t *, struct port_database_24xx *); +extern int qla27xx_get_zio_threshold(scsi_qla_host_t *, uint16_t *); +extern int qla27xx_set_zio_threshold(scsi_qla_host_t *, uint16_t ); + /* * Global Function Prototypes in qla_isr.c source file. */ diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 9127eee67478..317fe6026856 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -1823,7 +1823,7 @@ qla24xx_nvme_iocb_entry(scsi_qla_host_t *vha, struct req_que *req, void *tsk) nvme = &sp->u.iocb_cmd; if (unlikely(nvme->u.nvme.aen_op)) - atomic_dec(&sp->vha->nvme_active_aen_cnt); + atomic_dec(&sp->vha->hw->nvme_active_aen_cnt); /* * State flags: Bit 6 and 0. diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 7c6d1a404011..b271c3f78c85 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -947,20 +947,12 @@ qla2x00_get_fw_version(scsi_qla_host_t *vha) "%s: Firmware supports Exchange Offload 0x%x\n", __func__, ha->fw_attributes_h); - /* bit 26 of fw_attributes */ - if ((ha->fw_attributes_h & 0x400) && ql2xnvmeenable) { - struct init_cb_24xx *icb; - - icb = (struct init_cb_24xx *)ha->init_cb; - /* - * fw supports nvme and driver load - * parameter requested nvme - */ + /* + * fw supports nvme and driver load parameter requested nvme + * bit 26 of fw_attributes indicates NVMe support + */ + if ((ha->fw_attributes_h & 0x400) && ql2xnvmeenable) vha->flags.nvme_enabled = 1; - icb->firmware_options_2 &= cpu_to_le32(~0xf); - ha->zio_mode = 0; - ha->zio_timer = 0; - } } @@ -6085,3 +6077,61 @@ int qla24xx_gidlist_wait(struct scsi_qla_host *vha, done: return rval; } + +int qla27xx_set_zio_threshold(scsi_qla_host_t *vha, uint16_t value) +{ + int rval; + mbx_cmd_t mc; + mbx_cmd_t *mcp = &mc; + + ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1200, + "Entered %s\n", __func__); + + memset(mcp->mb, 0 , sizeof(mcp->mb)); + mcp->mb[0] = MBC_GET_SET_ZIO_THRESHOLD; + mcp->mb[1] = cpu_to_le16(1); + mcp->mb[2] = cpu_to_le16(value); + mcp->out_mb = MBX_2|MBX_1|MBX_0; + mcp->in_mb = MBX_2|MBX_0; + mcp->tov = MBX_TOV_SECONDS; + mcp->flags = 0; + + rval = qla2x00_mailbox_command(vha, mcp); + if (rval != QLA_SUCCESS) { + ql_dbg(ql_dbg_mbx, vha, 0x1201, "Failed=%x.\n", rval); + } else { + ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1202, + "Done %s.\n", __func__); + } + + return rval; +} + +int qla27xx_get_zio_threshold(scsi_qla_host_t *vha, uint16_t *value) +{ + int rval; + mbx_cmd_t mc; + mbx_cmd_t *mcp = &mc; + + ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1203, + "Entered %s\n", __func__); + + memset(mcp->mb, 0 , sizeof(mcp->mb)); + mcp->mb[0] = MBC_GET_SET_ZIO_THRESHOLD; + mcp->mb[1] = cpu_to_le16(0); + mcp->out_mb = MBX_1|MBX_0; + mcp->in_mb = MBX_2|MBX_0; + mcp->tov = MBX_TOV_SECONDS; + mcp->flags = 0; + + rval = qla2x00_mailbox_command(vha, mcp); + if (rval != QLA_SUCCESS) { + ql_dbg(ql_dbg_mbx, vha, 0x1204, "Failed=%x.\n", rval); + } else { + *value = mc.mb[2]; + ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1205, + "Done %s.\n", __func__); + } + + return rval; +} diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c index 7543f533edfb..4cb5bd20065a 100644 --- a/drivers/scsi/qla2xxx/qla_nvme.c +++ b/drivers/scsi/qla2xxx/qla_nvme.c @@ -322,6 +322,7 @@ static int qla2x00_start_nvme_mq(srb_t *sp) uint16_t avail_dsds; uint32_t *cur_dsd; struct req_que *req = NULL; + struct rsp_que *rsp = NULL; struct scsi_qla_host *vha = sp->fcport->vha; struct qla_hw_data *ha = vha->hw; struct qla_qpair *qpair = sp->qpair; @@ -330,13 +331,15 @@ static int qla2x00_start_nvme_mq(srb_t *sp) struct nvmefc_fcp_req *fd = nvme->u.nvme.desc; uint32_t rval = QLA_SUCCESS; - /* Setup qpair pointers */ - req = qpair->req; tot_dsds = fd->sg_cnt; /* Acquire qpair specific lock */ spin_lock_irqsave(&qpair->qp_lock, flags); + /* Setup qpair pointers */ + req = qpair->req; + rsp = qpair->rsp; + /* Check for room in outstanding command list. */ handle = req->current_outstanding_cmd; for (index = 1; index < req->num_outstanding_cmds; index++) { @@ -371,7 +374,7 @@ static int qla2x00_start_nvme_mq(srb_t *sp) struct nvme_fc_cmd_iu *cmd = fd->cmdaddr; if (cmd->sqe.common.opcode == nvme_admin_async_event) { nvme->u.nvme.aen_op = 1; - atomic_inc(&vha->nvme_active_aen_cnt); + atomic_inc(&vha->hw->nvme_active_aen_cnt); } } @@ -484,6 +487,11 @@ static int qla2x00_start_nvme_mq(srb_t *sp) /* Set chip new ring index. */ WRT_REG_DWORD(req->req_q_in, req->ring_index); + /* Manage unprocessed RIO/ZIO commands in response queue. */ + if (vha->flags.process_response_queue && + rsp->ring_ptr->signature != RESPONSE_PROCESSED) + qla24xx_process_response_queue(vha, rsp); + queuing_error: spin_unlock_irqrestore(&qpair->qp_lock, flags); return rval; diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 3329512b4b35..256d3a34d4ee 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -2751,6 +2751,8 @@ 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); + atomic_set(&ha->nvme_active_aen_cnt, 0); + /* Clear our data area */ ha->bars = bars; ha->mem_only = mem_only; @@ -5836,6 +5838,17 @@ qla2x00_do_dpc(void *data) mutex_unlock(&ha->mq_lock); } + if (test_and_clear_bit(SET_ZIO_THRESHOLD_NEEDED, &base_vha->dpc_flags)) { + ql_log(ql_log_info, base_vha, 0xffffff, + "nvme: SET ZIO Activity exchange threshold to %d.\n", + ha->nvme_last_rptd_aen); + if (qla27xx_set_zio_threshold(base_vha, ha->nvme_last_rptd_aen)) { + ql_log(ql_log_info, base_vha, 0xffffff, + "nvme: Unable to SET ZIO Activity exchange threshold to %d.\n", + ha->nvme_last_rptd_aen); + } + } + if (!IS_QLAFX00(ha)) qla2x00_do_dpc_all_vps(base_vha); @@ -6033,12 +6046,15 @@ qla2x00_timer(scsi_qla_host_t *vha) * FC-NVME * see if the active AEN count has changed from what was last reported. */ - if (atomic_read(&vha->nvme_active_aen_cnt) != vha->nvme_last_rptd_aen) { - vha->nvme_last_rptd_aen = - atomic_read(&vha->nvme_active_aen_cnt); + if (!vha->vp_idx && + atomic_read(&ha->nvme_active_aen_cnt) != ha->nvme_last_rptd_aen && + ha->zio_mode == QLA_ZIO_MODE_6) { ql_log(ql_log_info, vha, 0x3002, - "reporting new aen count of %d to the fw\n", - vha->nvme_last_rptd_aen); + "nvme: Sched: Set ZIO exchange threshold to %d.\n", + ha->nvme_last_rptd_aen); + ha->nvme_last_rptd_aen = atomic_read(&ha->nvme_active_aen_cnt); + set_bit(SET_ZIO_THRESHOLD_NEEDED, &vha->dpc_flags); + start_dpc++; } /* Schedule the DPC routine if needed */