From patchwork Wed Jun 14 03:47:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9785235 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 F3BB6602DC for ; Wed, 14 Jun 2017 03:48:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 10A3B27FA3 for ; Wed, 14 Jun 2017 03:48:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 04E2A28589; Wed, 14 Jun 2017 03:48:20 +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.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID 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 BCE0C27FA3 for ; Wed, 14 Jun 2017 03:48:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754044AbdFNDsR (ORCPT ); Tue, 13 Jun 2017 23:48:17 -0400 Received: from mail-by2nam01on0069.outbound.protection.outlook.com ([104.47.34.69]:53248 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754178AbdFNDsK (ORCPT ); Tue, 13 Jun 2017 23:48:10 -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=XNoZmw14M6NYCReNG+K9atSocHBQ/AjmnVItGDldiBY=; b=FFCx8LnH5od2+4KFdDTtivGtNSJWWv22HO7U+wZAAXdEbRxALzMkhzyoeuOZrQ5i0r26uFOBBlhicJ/ROfJjkEPeSdCFENTCPxgApCml9x+TeOjvcossJbkqGs9QRAtY+sqwn3thEBrJEqrR0uGLtl69iRa6bPWp+L618dHVnGo= Received: from SN1PR0701CA0057.namprd07.prod.outlook.com (10.163.126.25) by BY1PR0701MB1580.namprd07.prod.outlook.com (10.162.110.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Wed, 14 Jun 2017 03:48:07 +0000 Received: from BL2FFO11FD009.protection.gbl (2a01:111:f400:7c09::150) by SN1PR0701CA0057.outlook.office365.com (2a01:111:e400:52fd::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.14 via Frontend Transport; Wed, 14 Jun 2017 03:48:07 +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 BL2FFO11FD009.mail.protection.outlook.com (10.173.161.15) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1143.11 via Frontend Transport; Wed, 14 Jun 2017 03:48:05 +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, 13 Jun 2017 20:47: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 v5E3luYv015491; Tue, 13 Jun 2017 20:47:56 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v5E3luHC015490; Tue, 13 Jun 2017 20:47:56 -0700 From: Himanshu Madhani To: , CC: , , Subject: [PATCH v2 07/15] qla2xxx: move fields from qla_hw_data to qla_qpair Date: Tue, 13 Jun 2017 20:47:22 -0700 Message-ID: <20170614034730.15428-8-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170614034730.15428-1-himanshu.madhani@cavium.com> References: <20170614034730.15428-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)(39850400002)(39400400002)(39410400002)(39840400002)(2980300002)(428002)(199003)(189002)(9170700003)(356003)(101416001)(54906002)(48376002)(47776003)(80596001)(50986999)(76176999)(33646002)(305945005)(38730400002)(50466002)(6666003)(2950100002)(5660300001)(42186005)(2906002)(36756003)(5003940100001)(72206003)(478600001)(105586002)(106466001)(87636003)(86362001)(575784001)(81166006)(8936002)(8676002)(4326008)(1076002)(189998001)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1580; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD009; 1:eKRoeml2jg+naGPsjnzhMCD/177NuUeNDjFUprUI1msGhRhgIZG2T07wFMwYv0If+yTRF1N6aps+6YxdyjDS6Dllj1fsC3XsBkmdRgT1iBRHM5mSwkDNV5tOxjnYokPmVVRL58+h57dbnRnuoA/NZpbYtiFFuO/uru3yp7CI/K95pSW9VJvV5XsuVKNonijUZpeBvdylirjIp+ZBRL70tUEkLH1hF8i//D0u8BArB4IVPXZp7xeoMlIdTngpHtjDsiNC/DpwBRgjlmjWl1EiXMfx+XAUqJdzdlEgbQl+PLVwnBQmKOxNfgWgzwB8GNPypR4VS3WHCVEqnO8z4MvYxnNoua/30LgsVorFQwgh7tUWaIUd9emoQABfmB5NaTE/I2+fx5b8k0H5Xc/kq/RBun+XVHyk8MfVgnNUsw9FKXihf0jB+sm8EvCsB62+V4zF1L/fgIy38QQWeyS8ZoiRRAx6U+wZCV3x6LZP/bmJtoEAVyh22EzTQ1z7AqcsrdRZ1x5xXb2/oF8TO8+and/Qsg== X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PR0701MB1580: X-MS-Office365-Filtering-Correlation-Id: ae77eb2a-5f50-41fb-be0f-08d4b2d82b1c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:BY1PR0701MB1580; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1580; 3:q3henQjbQNng7EnLArQDxYSTeUNPGR0F2E3K7jTgn7BIPgiY3CpgSoh2tdUqkYfuUInVIcA+lNRy3JGglLzGa/32PvqCvizUtQ2TLn4eORtMXDHe+G9GIBKAfQSe6z8X1brb3Obj1cFItf+Yw4hRWWZcnhtrp35b8uXMu02Kmst9EvdMGlv0rffWjHBUWDLyg2hxgvVnAwmsUjhGeB6KDxsZX2qgcOj1/mAjd4sCOvzOpbtotzquF2NRcvpSGJ+G5pJ2F/cmLhzvXdaUrBK5H28F4HtkUc5SNfYgWHEnaV0GtqXh09kQcMNdxhZrIwqEuA9JQNQWih6Xga80zdagF5g6568OSALuKZrRVC3gOfkj4KzJ1sHPEAD9OUXBImTyWne2pietET1+8XAzwgUctgSKq6W0686QTPGa9439aXcSn2c9SrczE9CIVbyIb6DyYXz0s2x01R1EK8+2RfK21v01qr7b4c2cd+imduqE4CwyxCe+MznitBh8a4piNg1O X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1580; 25:Zc8yYOsRmiwAizK7gbib2K7ANb6L5AHImGBIzvjq4TCb0sQwT67WY7DGSt3hTIBmk72ThvvJNDElqCna35QPpCnkuv6CiiiNHKsnoATDHHRWd47vnpoONCR59yTXNQjilf+F40dCtcdvO9vemyb7kZLAU4T5rutq5aYzmrimuk1EinmcyhuB0RslzGTEc4nOaxJU2TW4RUTOVyNgVQmVqC0zNQWWetG8EdReaYBCymIE7VGGgo7gwiMquP4TieZAAaxXLsUyVNs0zFaoyjTp8BHzviKLUKhKmyb90KTUa56C/Dlhf1BBCFHgel0lvgDiKoUMUhCfjPGyxbPAYxEZFIyG/AVsi6F+0v9UJtsoNHpA5XVzNq6WbB1DA/OMoaLhEWYW12hKGOlCCdZgwhyemGpomc+HRsWF/gxJ8as0F2hSC/cK289BAbj3QoAAU0YpPMRGbEADgrD+4FtDPeuQxypayC9BNhQtjNcEeM0+Owg=; 31:IKVygViTaBSijALQKoIWOjLflXug5jt2xB77diRVSqiKWz2uwY771OzHjUWq1eeaVZk8OvGj0q4iikfYuKo47KGOpfte8en0pkedIsAFFxwzmnY/X/rh5DcOgAhZdDAR7NTSn+xnKDQ8ntMUUCI2ve2TDxApkJv48YfcmypXkdRig0NCU/iL1sSuFrLHbIFO2lKOGolbKlko9qgnVFrWIyYqch4ElaU+wcaYxTqUjH42XYnNcenQam0rJuq1Fj7X X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1580; 20:2+Gn+Hj57BjqgVzvvc1/+DvpnS7KC01q0FcF8dllXtavxUqr42C/8Jvqj6VPN5ysBkw17zGmwBlYgZKbazoXG8insMRFK3yCSyroiGhcLnzXrX5xKBmuwDLpMRiiblhSMmrUJux8ABTEpe//Jffu9ZnbhM6kD/aR/5TS8B4UDl7eLNQ7lBbhNGiY6C5g8K0j1A8JNT8Lu61dW/6op4YOveUmMbN3S2qDzJPnaKqX5uLO5Ld9D6N0/zHFKigaFWufGsyPvFKF0jsyLd3ThPPQFYwzHxht428qPCuG0jwbw/sC2QETtnbwT4Oj7fa3hMm0RKznuGMkTzElT2umPD8YWV9Tzuo9fXuhZd8NmB9XE1YgVgmODmBrVJC8lrcUjm5i6IqHI1OgWzapeMpgHDcOtQkU3bgxye0/paUlyvmTdoeU4byuVAHSmMf7eOXrGII0qCsN0qXYnn/dXig0l0QhTYcWUewuBjvzfrv5IKG+dXqXCvgA+DnlCNsJdtDBfpd9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(209352067349851); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(13016025)(8121501046)(13018025)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY1PR0701MB1580; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY1PR0701MB1580; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0701MB1580; 4:K4q35+kF8Wt8FVxS5W0VBlS7pfdD0Ay0WYRTV/qn?= =?us-ascii?Q?/lP//bK2giJyzdT+5YsuR4fLiCj27B1+4nEIfazgF7zeGF/K0sQ/ilPHSeqN?= =?us-ascii?Q?KWhlYefozYUZWK85FBRTxWFmLIZ0Q0gFcQlSsgmP+llAq9OcZckUEEte1/TH?= =?us-ascii?Q?aZKuR1wX2P0vv7GR4UxQSEYJhwQdN/s3rZ1hjZhgu1BpUTEfDsfsZ4QPCqpn?= =?us-ascii?Q?tICdH4kVewHj+8Q3+3eMDhuhwem9d+2HKglgmpY8eGG3IDv8H7sbk8d+7fE8?= =?us-ascii?Q?w1Faxz4qPNME1ItXxiOSkxuCr8ZQhefQ633XJeFZpvdK06JfbzGT9Wf04WCW?= =?us-ascii?Q?yn8PG887WCUDpyBc1lNbm13JuLI1H9ZS6BRoeLP2eqqgbYG7TGyZLUletB1T?= =?us-ascii?Q?bO5wx9/4ONe5SJUB6PFfbs/yrJ1+I4sgaBNQ9dbs2j8PH8eV9wcix5q7KTy7?= =?us-ascii?Q?C8YXwShgnYv6y3Qs5yf43uXlni/XFoOf4VbifL57LLmjjQELWEG8NpRLOrPg?= =?us-ascii?Q?1qGf7Kseo3eMIWaLz0drCaIMgUFhoEVKXR2UzpKq/rHDCd0dmbETo0FK2+UC?= =?us-ascii?Q?ByoULefNwWTRRlQcFJfOEb+5V2s+sfdQiE6pt1IKvr+jniIlQEvLmNCLp5Fy?= =?us-ascii?Q?CN+wEEQ0ZlOK84tlMCB+ZJLY6OjfgM9Ba1rQy7CoskRPak6mJEEJJa/u/nB0?= =?us-ascii?Q?X9vumUVKbEuKQLkBScnb/0v8f+z4d1yIfECfYvQHhT5Kf4Oaq83Tqflp13aR?= =?us-ascii?Q?0WiDWwyKJR+72YuGZYYEudnSJUbv5uEW8dsl7Y+5K11UdHD/4VpUwyc/t3DQ?= =?us-ascii?Q?0C7kbaQUywCzt0D6lXMD327OJg8ni6xycLzY1MnptK/9j8yxs68lnoM4nzXG?= =?us-ascii?Q?1XdNDABf5lTTSE4DhbWfc9dxanMWSHtjyJxt0SjTRk5dGz+2S7wQ81RytfS0?= =?us-ascii?Q?FeAhf9zgQcfv73OZlwP//tVxytL+q0kWHP7sJpn2VuzVkPm9L84rtKt03cSo?= =?us-ascii?Q?5mYPBsDDVKfRFmtPL2dEWK0Ly26sHTEONHP1pMleYKutgLlFmYfX9avE4CF9?= =?us-ascii?Q?pLIOSe/CQVrYxRNUrXNsmtwY0HNgOq7DWhg7ULULOj8ZBjBAWUP7BKWkkjPT?= =?us-ascii?Q?Iq9t0lHDsGqBchc4fSyE1SHRt+r+PxWe5tSaxo6rTg++7RXPS4W4v9AR7mY6?= =?us-ascii?Q?240gUu9gpcEFUZ9dAn+HR3c2mahlOXfg3eQ+jUPxlipxDpKAQ27RcYEPng?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 033857D0BD X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0701MB1580; 23:p/rH3qOIo1VilVslleH5GJY5ZOR/fjt+YxPxt8C?= =?us-ascii?Q?LViMf26cpBNs4OCHv2mrKMfXcpqsakM7PC13PDVh0GCmK0p6KjdO3umB306h?= =?us-ascii?Q?wQTgsvbTSNZ0mfsqHiEAaO2rrzbYt6mmMbXbRJHSXHdWvm3ZJLbfjqHA+ooP?= =?us-ascii?Q?wRu+95EdvhCtujWZbKXVOR4h7QV8hypuRvkJQZKesdpn9bZWPKSa5nlQUgSx?= =?us-ascii?Q?MEIu7BnNx6k882SZSW65fmWID+wm4ZZAwYMtSlhbj4RYVsUCKj6V8LzZW0ht?= =?us-ascii?Q?FdPEWBWpz28gJu8j2pO9YRfm7mT74g3j0lz8ckR3LtTR1gduuzBsrrnJjvKU?= =?us-ascii?Q?dIEi8f7AN1FKnxoIAefxf9rq2xoBB0MU/y3fChuiWOddinQEdJ3Z9SBZeqHQ?= =?us-ascii?Q?Cm4KGS9kfyJea+N0aBHw1++JMIm3FYVR5Xjbu6CItRnqjDDi3pEMMjs8iy5K?= =?us-ascii?Q?wbZLgoNQGLddUsJ9xHl/luIHgUPqhwCeWsYfVqxOQl4JvIfegn1UpDlAvX0f?= =?us-ascii?Q?gTa/3zdxpCGVgLMu7Tb7uVV4tzNcTS5Cr19cx48UMfnkqzwQqsiiHQJu/1ah?= =?us-ascii?Q?VmAn7OEtwyWYR2vAbAiX+yO+8osKnKCbRS82zVxsSRuY5JCNnjdOgwFyhe40?= =?us-ascii?Q?dgjEgU1gbTys2xA4tcv3pFXL6PeidyC1trHAq1cfo67MDwvhKZJGLgk8Z5V0?= =?us-ascii?Q?s145ytqtB4C3jcdkoK5oBATMIterGXRetrZCXFcw5uWRaMZmNFQnqLrjR7ae?= =?us-ascii?Q?cuRvEqEYTcypRg0VPvoTUq+ckU8tclmFHx8RIg0zOXH9XV3MFSXPHoqHkK2T?= =?us-ascii?Q?b0kDholSH9g25qtsTu2tFiaxEvKnsVcq0GM04gkhD/OjM3olxKfoZAOWxIP/?= =?us-ascii?Q?Tf0XRWOVLsGyryqZLKD5nR2UtEViV96vjkdGyRwzBZTiMATgGszjZKYyWadA?= =?us-ascii?Q?ArbPjuP3By4gs3w1NJhZDOGyDkzZ9MPfzVwgvoHUngwQS+GiIIMtthf51MPD?= =?us-ascii?Q?SMGaSR8c9pINCUX5H4p/mDfygxpXcE0sbUcHKD+ENTreJif5YimBSwE/GCZk?= =?us-ascii?Q?SFfLNoAoT4xtN0ovK+DGpGU44tu1CTthywkWoERwQAtLcn0Vd9TAqjeqPaAp?= =?us-ascii?Q?z8EVUDgOiw6k=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1580; 6:iK1GorIjOh7X6R6emAIEjmh/WQYNfb+tvAlXQ97I6CF6IY4ELailOXEYNunkpy37whPMdbg1QC7HF+A9quESy2o8yn4BD9kIJPEA8PQHOVCMV+RRxlS/DeouMwsY1Msy5SHGb3FvvfB/EoUak4ZW06ntCKWZIam32CXsxSZeS6rw937hEKn7vUmyllEdfdF11P9tOPeLIsdYz1y3c6R9iCzDa9TYSc1QVKKURWpIEAxUitwvFgvuCZgG1q0zrDMjHpwQ46sxiG37Ndkv+yeknb3I4rDNf8cZrElYzqM/lcwgHq5lDLJf3YV60FSJE20yp84Eo0amr0c3sNXaBddLyNlWfURTZWTMwEp6tbEjsIdiXn5XFk7lN9VvARxIVukkyQ5fLiMC+/O7bRcebCay7tqO0I9Qlp8IkW28qhJmBgKRY0qyPPtwlkT132A0crVOUU1UUdOzjeNjO6WKWjoS4oKniz7A/zCKZ9ZsYcXQVTZ4RZ+nzE0/Mtw2eHxX8qCz+iXHAfn6ReFwsR4qPC8wjw== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1580; 5:mhBk5VkHRnidoAuECsfWNYR1aoUnMmPSqkzNgEq6yOheZDhCTrkstz6GJ6yHCaIqwQz/RWWqt2UXscR4Qsq3V+hoRNowCSheRgeMCgjaE3GB43FmEes4KSQeU7reCCRsQ7s7Ws7ANzGi6MnKIynjDPR3JVumrpJtrIhRd+1kPpg7XJ9sHRmXAgX2VrQApoEbCKqR55pz9Z0E4LpPyLiXy3e/hGatTPDC0UQPDHRujQGNxMZVHJ4dUCMcvxbEgrYt4ch7POH0bCImrlTo5qMjDREMKLLf42nO31+b5yQf+tjn0NnAFFOEgIdWUPEdI0letSyY0fyHQSXruexyxbG4PS9vjZkdEQo18EFte/ITV3d/3WCkNDHCbRrVWKSh0dWtnX0knTsqNkL3Mb4SNFBRh3MqEQ/S07O5G4GquFmW9DE9KNLPKpPZ9Rf/h0k2dtraSb2Lur2nEn/niaskqe0RURRVfjOlqj1JhOODS5pF/k90MBF2wpVi1Vwlo9oNYTyt; 24:VZR38zTL4uLjTp7Ncgv2wxVt/IVmhO/coHwruHAlDcyl+41I0QVUzyG//mE1lbwz5xW1doAke6coubSwjuheljLnswgUIdkAzT0o0SKjQbc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1580; 7:/qhzprEA1K6PAFWlxc/uBexYrilqhiVMA+YlqfUamEidzf2jWHIkMOW9Ccr8Ui2zO+Ri1LAiQF8T9rJMec4+6flboHJg+xvvQMqoRdx0rapTu7nHy547Wv2jKbIZnOz/YI0vKSKg2TCsqjjR2F2awEIT1JzIYYZL48nZuul3qRWT7HmJwWjoeDP4dAdvuHtxJseaQcJUuTyZMsYv3DSTb2ssfV+XbV9xIIyscHfokw8SxjUAtt81S6iau+mneh/nrvQnWKRQQTVMNgwHOaXYT3PRh8qRXtUfbACvr6BXptyafVPXI4kG/ql9v0Q7xagzumocGAKbubGpaTb+1ofk6w== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2017 03:48:05.7090 (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: BY1PR0701MB1580 Sender: target-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: target-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Quinn Tran - Move chip_reset, enable_class_2 fields from qla_hw_data to qla_qpair to reduce cache thrash for target MQ. - Optimizations to reduce unnecessary memory load for good path io. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_attr.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 25 +++++++++++-- drivers/scsi/qla2xxx/qla_init.c | 14 ++++++-- drivers/scsi/qla2xxx/qla_os.c | 2 +- drivers/scsi/qla2xxx/qla_target.c | 75 +++++++++++++++++++-------------------- drivers/scsi/qla2xxx/qla_target.h | 3 +- 6 files changed, 73 insertions(+), 48 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index f0f16d313faf..6dd984203666 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c @@ -2289,7 +2289,7 @@ qla2x00_init_host_attr(scsi_qla_host_t *vha) fc_host_dev_loss_tmo(vha->host) = ha->port_down_retry_count; fc_host_node_name(vha->host) = wwn_to_u64(vha->node_name); fc_host_port_name(vha->host) = wwn_to_u64(vha->port_name); - fc_host_supported_classes(vha->host) = ha->tgt.enable_class_2 ? + fc_host_supported_classes(vha->host) = ha->base_qpair->enable_class_2 ? (FC_COS_CLASS2|FC_COS_CLASS3) : FC_COS_CLASS3; fc_host_max_npiv_vports(vha->host) = ha->max_npiv_vports; fc_host_npiv_vports_inuse(vha->host) = ha->cur_vport_count; diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 0dec148a4580..dfa001357110 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -3252,6 +3252,7 @@ struct qla_qpair { */ spinlock_t *qp_lock_ptr; struct scsi_qla_host *vha; + u32 chip_reset; /* distill these fields down to 'online=0/1' * ha->flags.eeh_busy @@ -3263,6 +3264,8 @@ struct qla_qpair { uint32_t difdix_supported:1; uint32_t delete_in_progress:1; uint32_t fw_started:1; + uint32_t enable_class_2:1; + uint32_t enable_explicit_conf:1; uint16_t id; /* qp number used with FW */ uint16_t vp_idx; /* vport ID */ @@ -3296,8 +3299,6 @@ struct scsi_qlt_host { struct qlt_hw_data { /* Protected by hw lock */ - uint32_t enable_class_2:1; - uint32_t enable_explicit_conf:1; uint32_t node_name_set:1; dma_addr_t atio_dma; /* Physical address. */ @@ -3954,7 +3955,6 @@ struct qla_hw_data { struct work_struct board_disable; struct mr_data_fx00 mr; - uint32_t chip_reset; struct qlt_hw_data tgt; int allow_cna_fw_dump; @@ -4247,6 +4247,25 @@ struct qla2_sgx { #define QLA_QPAIR_MARK_NOT_BUSY(__qpair) \ atomic_dec(&__qpair->ref_count); \ + +#define QLA_ENA_CONF(_ha) {\ + int i;\ + _ha->base_qpair->enable_explicit_conf = 1; \ + for (i = 0; i < _ha->max_qpairs; i++) { \ + if (_ha->queue_pair_map[i]) \ + _ha->queue_pair_map[i]->enable_explicit_conf = 1; \ + } \ +} + +#define QLA_DIS_CONF(_ha) {\ + int i;\ + _ha->base_qpair->enable_explicit_conf = 0; \ + for (i = 0; i < _ha->max_qpairs; i++) { \ + if (_ha->queue_pair_map[i]) \ + _ha->queue_pair_map[i]->enable_explicit_conf = 0; \ + } \ +} + /* * qla2x00 local function return status codes */ diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index e6a1f9ca0e95..360abede3f6b 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1322,7 +1322,7 @@ qla24xx_handle_plogi_done_event(struct scsi_qla_host *vha, struct event_arg *ea) ql_dbg(ql_dbg_disc, vha, 0x20ea, "%s %d %8phC post gpdb\n", __func__, __LINE__, ea->fcport->port_name); - ea->fcport->chip_reset = vha->hw->chip_reset; + ea->fcport->chip_reset = vha->hw->base_qpair->chip_reset; ea->fcport->logout_on_delete = 1; qla24xx_post_gpdb_work(vha, ea->fcport, 0); break; @@ -5524,6 +5524,7 @@ qla2x00_abort_isp_cleanup(scsi_qla_host_t *vha) struct scsi_qla_host *vp; unsigned long flags; fc_port_t *fcport; + u16 i; /* For ISP82XX, driver waits for completion of the commands. * online flag should be set. @@ -5549,7 +5550,12 @@ qla2x00_abort_isp_cleanup(scsi_qla_host_t *vha) ha->current_topology = 0; ha->flags.fw_started = 0; ha->flags.fw_init_done = 0; - ha->chip_reset++; + ha->base_qpair->chip_reset++; + for (i = 0; i < ha->max_qpairs; i++) { + if (ha->queue_pair_map[i]) + ha->queue_pair_map[i]->chip_reset = + ha->base_qpair->chip_reset; + } atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); if (atomic_read(&vha->loop_state) != LOOP_DOWN) { @@ -7624,6 +7630,10 @@ struct qla_qpair *qla2xxx_create_qpair(struct scsi_qla_host *vha, int qos, qpair->id = qpair_id; qpair->vp_idx = vp_idx; INIT_LIST_HEAD(&qpair->hints_list); + qpair->chip_reset = ha->base_qpair->chip_reset; + qpair->enable_class_2 = ha->base_qpair->enable_class_2; + qpair->enable_explicit_conf = + ha->base_qpair->enable_explicit_conf; for (i = 0; i < ha->msix_count; i++) { msix = &ha->msix_entries[i]; diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 13e4d2428a9a..44be2c8237fd 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -387,6 +387,7 @@ static int qla2x00_alloc_queues(struct qla_hw_data *ha, struct req_que *req, /* init qpair to this cpu. Will adjust at run time. */ ha->base_qpair->msix = &ha->msix_entries[QLA_MSIX_RSP_Q]; INIT_LIST_HEAD(&ha->base_qpair->hints_list); + ha->base_qpair->enable_class_2 = ql2xenableclass2; qla_cpu_update(rsp->qpair, smp_processor_id()); if (ql2xmqsupport && ha->max_qpairs) { @@ -2708,7 +2709,6 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) ql_dbg_pci(ql_dbg_init, pdev, 0x000a, "Memory allocated for ha=%p.\n", ha); ha->pdev = pdev; - ha->tgt.enable_class_2 = ql2xenableclass2; INIT_LIST_HEAD(&ha->tgt.q_full_list); spin_lock_init(&ha->tgt.q_full_lock); spin_lock_init(&ha->tgt.sess_lock); diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index e25f1fae2c3d..66bb4825339f 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -577,7 +577,7 @@ void qla2x00_async_nack_sp_done(void *s, int res) spin_lock_irqsave(&vha->hw->tgt.sess_lock, flags); sp->fcport->flags &= ~FCF_ASYNC_SENT; - sp->fcport->chip_reset = vha->hw->chip_reset; + sp->fcport->chip_reset = vha->hw->base_qpair->chip_reset; switch (sp->type) { case SRB_NACK_PLOGI: @@ -1032,7 +1032,7 @@ static void qlt_free_session_done(struct work_struct *work) sess->login_succ = 0; } - if (sess->chip_reset != sess->vha->hw->chip_reset) + if (sess->chip_reset != ha->base_qpair->chip_reset) qla2x00_clear_loop_id(sess); if (sess->conflict) { @@ -1162,7 +1162,7 @@ static int qlt_reset(struct scsi_qla_host *vha, void *iocb, int mcmd) static void qla24xx_chk_fcp_state(struct fc_port *sess) { - if (sess->chip_reset != sess->vha->hw->chip_reset) { + if (sess->chip_reset != sess->vha->hw->base_qpair->chip_reset) { sess->logout_on_delete = 0; sess->logo_ack_needed = 0; sess->fw_login_state = DSC_LS_PORT_UNAVAIL; @@ -1917,7 +1917,7 @@ static int __qlt_24xx_handle_abts(struct scsi_qla_host *vha, cmd = container_of(se_cmd, struct qla_tgt_cmd, se_cmd); mcmd->sess = sess; memcpy(&mcmd->orig_iocb.abts, abts, sizeof(mcmd->orig_iocb.abts)); - mcmd->reset_count = vha->hw->chip_reset; + mcmd->reset_count = ha->base_qpair->chip_reset; mcmd->tmr_func = QLA_TGT_ABTS; mcmd->qpair = ha->base_qpair; @@ -2146,7 +2146,7 @@ void qlt_xmit_tm_rsp(struct qla_tgt_mgmt_cmd *mcmd) spin_lock_irqsave(qpair->qp_lock_ptr, flags); - if (!vha->flags.online || mcmd->reset_count != ha->chip_reset) { + if (!vha->flags.online || mcmd->reset_count != qpair->chip_reset) { /* * Either the port is not online or this request was from * previous life, just abort the processing. @@ -2154,7 +2154,7 @@ void qlt_xmit_tm_rsp(struct qla_tgt_mgmt_cmd *mcmd) ql_dbg(ql_dbg_async, vha, 0xe100, "RESET-TMR online/active/old-count/new-count = %d/%d/%d/%d.\n", vha->flags.online, qla2x00_reset_active(vha), - mcmd->reset_count, ha->chip_reset); + mcmd->reset_count, qpair->chip_reset); ha->tgt.tgt_ops->free_mcmd(mcmd); spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); return; @@ -2568,20 +2568,22 @@ static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, struct qla_tgt_prm *prm, int xmit_type, uint8_t scsi_status, uint32_t *full_req_cnt) { - struct qla_tgt *tgt = cmd->tgt; - struct scsi_qla_host *vha = tgt->vha; - struct qla_hw_data *ha = vha->hw; struct se_cmd *se_cmd = &cmd->se_cmd; prm->cmd = cmd; - prm->tgt = tgt; + prm->tgt = cmd->tgt; + prm->pkt = NULL; prm->rq_result = scsi_status; prm->sense_buffer = &cmd->sense_buffer[0]; prm->sense_buffer_len = TRANSPORT_SENSE_BUFFER; prm->sg = NULL; prm->seg_cnt = -1; prm->req_cnt = 1; + prm->residual = 0; prm->add_status_pkt = 0; + prm->prot_sg = NULL; + prm->prot_seg_cnt = 0; + prm->tot_dsds = 0; if ((xmit_type & QLA_TGT_XMIT_DATA) && qlt_has_data(cmd)) { if (qlt_pci_map_calc_cnt(prm) != 0) @@ -2592,7 +2594,7 @@ static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, if (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) { prm->residual = se_cmd->residual_count; - ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x305c, + ql_dbg(ql_dbg_io + ql_dbg_verbose, cmd->vha, 0x305c, "Residual underflow: %d (tag %lld, op %x, bufflen %d, rq_result %x)\n", prm->residual, se_cmd->tag, se_cmd->t_task_cdb ? se_cmd->t_task_cdb[0] : 0, @@ -2600,7 +2602,7 @@ static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, prm->rq_result |= SS_RESIDUAL_UNDER; } else if (se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) { prm->residual = se_cmd->residual_count; - ql_dbg(ql_dbg_io, vha, 0x305d, + ql_dbg(ql_dbg_io, cmd->vha, 0x305d, "Residual overflow: %d (tag %lld, op %x, bufflen %d, rq_result %x)\n", prm->residual, se_cmd->tag, se_cmd->t_task_cdb ? se_cmd->t_task_cdb[0] : 0, cmd->bufflen, prm->rq_result); @@ -2614,7 +2616,7 @@ static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, */ if (qlt_has_data(cmd)) { if (QLA_TGT_SENSE_VALID(prm->sense_buffer) || - (IS_FWI2_CAPABLE(ha) && + (IS_FWI2_CAPABLE(cmd->vha->hw) && (prm->rq_result != 0))) { prm->add_status_pkt = 1; (*full_req_cnt)++; @@ -2625,17 +2627,17 @@ static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, return 0; } -static inline int qlt_need_explicit_conf(struct qla_hw_data *ha, - struct qla_tgt_cmd *cmd, int sending_sense) +static inline int qlt_need_explicit_conf(struct qla_tgt_cmd *cmd, + int sending_sense) { - if (ha->tgt.enable_class_2) + if (cmd->qpair->enable_class_2) return 0; if (sending_sense) return cmd->conf_compl_supported; else - return ha->tgt.enable_explicit_conf && - cmd->conf_compl_supported; + return cmd->qpair->enable_explicit_conf && + cmd->conf_compl_supported; } static void qlt_24xx_init_ctio_to_isp(struct ctio7_to_24xx *ctio, @@ -2644,7 +2646,7 @@ static void qlt_24xx_init_ctio_to_isp(struct ctio7_to_24xx *ctio, prm->sense_buffer_len = min_t(uint32_t, prm->sense_buffer_len, (uint32_t)sizeof(ctio->u.status1.sense_data)); ctio->u.status0.flags |= cpu_to_le16(CTIO7_FLAGS_SEND_STATUS); - if (qlt_need_explicit_conf(prm->tgt->ha, prm->cmd, 0)) { + if (qlt_need_explicit_conf(prm->cmd, 0)) { ctio->u.status0.flags |= cpu_to_le16( CTIO7_FLAGS_EXPLICIT_CONFORM | CTIO7_FLAGS_CONFORM_REQ); @@ -2654,7 +2656,7 @@ static void qlt_24xx_init_ctio_to_isp(struct ctio7_to_24xx *ctio, if (QLA_TGT_SENSE_VALID(prm->sense_buffer)) { int i; - if (qlt_need_explicit_conf(prm->tgt->ha, prm->cmd, 1)) { + if (qlt_need_explicit_conf(prm->cmd, 1)) { if ((prm->rq_result & SS_SCSI_STATUS_BYTE) != 0) { ql_dbg(ql_dbg_tgt, prm->cmd->vha, 0xe017, "Skipping EXPLICIT_CONFORM and " @@ -3047,7 +3049,6 @@ int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type, uint8_t scsi_status) { struct scsi_qla_host *vha = cmd->vha; - struct qla_hw_data *ha = vha->hw; struct qla_qpair *qpair = cmd->qpair; struct ctio7_to_24xx *pkt; struct qla_tgt_prm prm; @@ -3065,8 +3066,6 @@ int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type, return 0; } - memset(&prm, 0, sizeof(prm)); - ql_dbg(ql_dbg_tgt, cmd->vha, 0xe018, "is_send_status=%d, cmd->bufflen=%d, cmd->sg_cnt=%d, cmd->dma_data_direction=%d se_cmd[%p] qp %d\n", (xmit_type & QLA_TGT_XMIT_STATUS) ? @@ -3086,7 +3085,7 @@ int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type, else vha->tgt_counters.core_qla_que_buf++; - if (!qpair->fw_started || cmd->reset_count != vha->hw->chip_reset) { + if (!qpair->fw_started || cmd->reset_count != qpair->chip_reset) { /* * Either the port is not online or this request was from * previous life, just abort the processing. @@ -3096,7 +3095,7 @@ int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type, ql_dbg(ql_dbg_async, vha, 0xe101, "RESET-RSP online/active/old-count/new-count = %d/%d/%d/%d.\n", vha->flags.online, qla2x00_reset_active(vha), - cmd->reset_count, vha->hw->chip_reset); + cmd->reset_count, qpair->chip_reset); spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); return 0; } @@ -3133,7 +3132,7 @@ int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type, cpu_to_le32(prm.residual); pkt->u.status0.flags |= cpu_to_le16( CTIO7_FLAGS_SEND_STATUS); - if (qlt_need_explicit_conf(ha, cmd, 0)) { + if (qlt_need_explicit_conf(cmd, 0)) { pkt->u.status0.flags |= cpu_to_le16( CTIO7_FLAGS_EXPLICIT_CONFORM | @@ -3222,7 +3221,7 @@ int qlt_rdy_to_xfer(struct qla_tgt_cmd *cmd) if (qlt_pci_map_calc_cnt(&prm) != 0) return -EAGAIN; - if (!qpair->fw_started || (cmd->reset_count != vha->hw->chip_reset) || + if (!qpair->fw_started || (cmd->reset_count != qpair->chip_reset) || (cmd->sess && cmd->sess->deleted)) { /* * Either the port is not online or this request was from @@ -3233,7 +3232,7 @@ int qlt_rdy_to_xfer(struct qla_tgt_cmd *cmd) ql_dbg(ql_dbg_async, vha, 0xe102, "RESET-XFR online/active/old-count/new-count = %d/%d/%d/%d.\n", vha->flags.online, qla2x00_reset_active(vha), - cmd->reset_count, vha->hw->chip_reset); + cmd->reset_count, qpair->chip_reset); return 0; } @@ -3979,7 +3978,6 @@ static void __qlt_do_work(struct qla_tgt_cmd *cmd) { scsi_qla_host_t *vha = cmd->vha; struct qla_hw_data *ha = vha->hw; - struct qla_tgt *tgt = vha->vha_tgt.qla_tgt; struct fc_port *sess = cmd->sess; struct atio_from_isp *atio = &cmd->atio; unsigned char *cdb; @@ -3990,8 +3988,6 @@ static void __qlt_do_work(struct qla_tgt_cmd *cmd) cmd->cmd_in_wq = 0; cmd->trc_flags |= TRC_DO_WORK; - if (tgt->tgt_stop) - goto out_term; if (cmd->aborted) { ql_dbg(ql_dbg_tgt_mgt, vha, 0xf082, @@ -4197,10 +4193,10 @@ static struct qla_tgt_cmd *qlt_get_tag(scsi_qla_host_t *vha, cmd->trc_flags = 0; cmd->jiffies_at_alloc = get_jiffies_64(); - cmd->reset_count = vha->hw->chip_reset; cmd->unpacked_lun = scsilun_to_int( (struct scsi_lun *)&atio->u.isp24.fcp_cmnd.lun); qlt_assign_qpair(vha, cmd); + cmd->reset_count = vha->hw->base_qpair->chip_reset; return cmd; } @@ -4391,7 +4387,7 @@ static int qlt_issue_task_mgmt(struct fc_port *sess, u64 lun, } mcmd->tmr_func = fn; mcmd->flags = flags; - mcmd->reset_count = vha->hw->chip_reset; + mcmd->reset_count = ha->base_qpair->chip_reset; mcmd->qpair = ha->base_qpair; switch (fn) { @@ -4474,7 +4470,7 @@ static int __qlt_abort_task(struct scsi_qla_host *vha, unpacked_lun = scsilun_to_int((struct scsi_lun *)&a->u.isp24.fcp_cmnd.lun); - mcmd->reset_count = vha->hw->chip_reset; + mcmd->reset_count = ha->base_qpair->chip_reset; mcmd->tmr_func = QLA_TGT_2G_ABORT_TASK; mcmd->qpair = ha->base_qpair; @@ -5202,7 +5198,7 @@ qlt_alloc_qfull_cmd(struct scsi_qla_host *vha, cmd->tgt = vha->vha_tgt.qla_tgt; cmd->vha = vha; - cmd->reset_count = vha->hw->chip_reset; + cmd->reset_count = ha->base_qpair->chip_reset; cmd->q_full = 1; cmd->qpair = ha->base_qpair; @@ -6644,7 +6640,7 @@ qlt_24xx_config_nvram_stage1(struct scsi_qla_host *vha, struct nvram_24xx *nv) return; } - if (ha->tgt.enable_class_2) { + if (ha->base_qpair->enable_class_2) { if (vha->flags.init_done) fc_host_supported_classes(vha->host) = FC_COS_CLASS2 | FC_COS_CLASS3; @@ -6748,7 +6744,7 @@ qlt_81xx_config_nvram_stage1(struct scsi_qla_host *vha, struct nvram_81xx *nv) return; } - if (ha->tgt.enable_class_2) { + if (ha->base_qpair->enable_class_2) { if (vha->flags.init_done) fc_host_supported_classes(vha->host) = FC_COS_CLASS2 | FC_COS_CLASS3; @@ -6872,7 +6868,8 @@ qlt_handle_abts_recv_work(struct work_struct *work) struct qla_hw_data *ha = vha->hw; unsigned long flags; - if (qla2x00_reset_active(vha) || (op->chip_reset != ha->chip_reset)) + if (qla2x00_reset_active(vha) || + (op->chip_reset != ha->base_qpair->chip_reset)) return; spin_lock_irqsave(&ha->tgt.atio_lock, flags); @@ -6904,7 +6901,7 @@ qlt_handle_abts_recv(struct scsi_qla_host *vha, struct rsp_que *rsp, memcpy(&op->atio, pkt, sizeof(*pkt)); op->vha = vha; - op->chip_reset = vha->hw->chip_reset; + op->chip_reset = vha->hw->base_qpair->chip_reset; op->rsp = rsp; INIT_WORK(&op->work, qlt_handle_abts_recv_work); queue_work(qla_tgt_wq, &op->work); diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h index 22c783e3e38f..5f497311d7b7 100644 --- a/drivers/scsi/qla2xxx/qla_target.h +++ b/drivers/scsi/qla2xxx/qla_target.h @@ -881,6 +881,7 @@ struct qla_tgt_cmd { struct se_cmd se_cmd; struct fc_port *sess; struct qla_qpair *qpair; + uint32_t reset_count; int state; struct work_struct work; /* Sense buffer that will be mapped into outgoing status */ @@ -906,7 +907,6 @@ struct qla_tgt_cmd { int offset; u64 unpacked_lun; enum dma_data_direction dma_data_direction; - uint32_t reset_count; uint16_t loop_id; /* to save extra sess dereferences */ struct qla_tgt *tgt; /* to save extra sess dereferences */ @@ -980,7 +980,6 @@ struct qla_tgt_prm { int seg_cnt; int req_cnt; uint16_t rq_result; - uint16_t scsi_status; int sense_buffer_len; int residual; int add_status_pkt;