From patchwork Wed Jun 21 20:48:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9802885 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 86D98600C5 for ; Wed, 21 Jun 2017 20:49:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 74D5F2853F for ; Wed, 21 Jun 2017 20:49:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 67B6128542; Wed, 21 Jun 2017 20:49:11 +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 5FC3D280DE for ; Wed, 21 Jun 2017 20:49:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751883AbdFUUtI (ORCPT ); Wed, 21 Jun 2017 16:49:08 -0400 Received: from mail-cys01nam02on0085.outbound.protection.outlook.com ([104.47.37.85]:53856 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751789AbdFUUtD (ORCPT ); Wed, 21 Jun 2017 16:49:03 -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=zaSpKE+TsjamJTA5qasq9iDzPsvAvbCck04TvjPCON4=; b=mkDLqFC+2Mt/zFtp5MHAwMGzE3CZt2q/5U8nO1zSjwGfVcby4DTDOkqB+L1sUYn58FH2kq5dOngdAAQZDFhMK9scUDWdggzFpLG+78IpCAazvyMk7Yx+JOOaMWChdSVItWtoAHvBSJDud4L+zUuhLv0eV83hpKRm8H8gY/NxWFU= Received: from CY1PR07CA0003.namprd07.prod.outlook.com (10.166.202.13) by BN1PR07MB423.namprd07.prod.outlook.com (10.141.59.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Wed, 21 Jun 2017 20:49:01 +0000 Received: from BN1BFFO11FD045.protection.gbl (2a01:111:f400:7c10::1:187) by CY1PR07CA0003.outlook.office365.com (2a01:111:e400:c60a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15 via Frontend Transport; Wed, 21 Jun 2017 20:49:00 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.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 BN1BFFO11FD045.mail.protection.outlook.com (10.58.145.0) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1178.14 via Frontend Transport; Wed, 21 Jun 2017 20:49:00 +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, 21 Jun 2017 13:48:47 -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 v5LKmlZk021714; Wed, 21 Jun 2017 13:48:47 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v5LKmlJx021713; Wed, 21 Jun 2017 13:48:47 -0700 From: "Madhani, Himanshu" To: CC: , , , , Subject: [PATCH v2 4/6] qla2xxx: Send FC4 type NVMe to the management server Date: Wed, 21 Jun 2017 13:48:44 -0700 Message-ID: <20170621204846.21663-5-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170621204846.21663-1-himanshu.madhani@cavium.com> References: <20170621204846.21663-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)(2980300002)(428002)(189002)(199003)(9170700003)(72206003)(105586002)(356003)(110136004)(36756003)(478600001)(38730400002)(86362001)(87636003)(47776003)(2906002)(42186005)(54906002)(1076002)(81166006)(101416001)(4326008)(8676002)(6916009)(305945005)(8936002)(50466002)(189998001)(5660300001)(6666003)(33646002)(2950100002)(106466001)(76176999)(50226002)(50986999)(5003940100001)(48376002)(2351001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR07MB423; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD045; 1:4gtPSPETFxh9hV8tegQNvToBOolMR9FUZtgfAfo81asRJm8h//T1hy/8NtOM/tNq5Wr3jIkjnnL71seo4JhODkKg/ZN6cpfWwiPI52k6n59Gl/SLgScnewuBkabysFySPl3HmtYdKmS7DZWdTYuf43+GSlhhM5NZIoxi93Kxj0zrZTk3j6LUDuT1GoWO0VxpKuzOLahqLkKwA1LI/FBNTLxDsUThn5migvIw78qBouVxh1RXtWFKdICpzumFyOvDUHixZ5+deYdZwrcKqPofAWRsP/JakEMB7GEs4W70mkl2z91nkHKYauSxB01F/G0Twrsrj5159gOjxFQiN72iFW6rxBNsBiGkTgshstdihwExdp8VqEBFj/0P/kRIJA7bWr4pDUqWncqK316izC5vlzJXbxjChvWkRKcVtGhrusxaCv0NMEENnYTAnMHc1sFtepUPbzyMTL+pOIFogWfu4CC7/BKFI0mgsaqIgtDSxdXCeN5wlnZzTSuRQPV+033L7x2c4Qsj7jzqrIU3ZQ3gwg== X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dbedfa53-3ec6-4ed5-b7bd-08d4b8e6f201 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:BN1PR07MB423; X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB423; 3:J3imfOu6Muigv2JFqOfXEhkpATnOqhcLWKTyNhEYEdm42YDeUAJbUVtGEoAiLpzmwiTfwDXqYuLJgM4nrHNYz+HfqHgfl4rLBliuEmjV9Uvpsu37kS9GOcqIK3Cgp9oCOwZ2PjICB+ZeXkRQZbRCziTuawxtlz+uhjZLnlAvKXMsYehO0MjWZM0phwax8n/3L0MHEAGjoHg8zpBC25LP83F2mBxKI4uuBzkIaBrRksz7Pa1SRdoFmxqpBg2q3EO/3yEJH4G+JhupOnheV7ZyW6hiv1h031EV1Bsxe1CFR2RawoF/9Q4j4hHb3cX3oQya2g0EsSRxuWhBHXVOeLrR3y672hjRjbDHyGv1m3f6H1pP0S1dFaJ18KAYF/kBb490oMHenD9+kjWuQJ1gxLhFEz5mHQZ0dzAIql9Abg320DtkGyl4hk9hBUc00XKVAfQ7YtvBgR/J054qsO733NDCE9tqNnRJqZtKNWxCwVvYPS1yccLQqhnF60OnUoB7y7Oy X-MS-TrafficTypeDiagnostic: BN1PR07MB423: X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB423; 25:r1eSIilHI8tuME0Vi94u/S4l6nZLK/wX+Lmz+HlgUnf8KXSprJHq1W2tTGFiSiC+P9g1hPBHBkzS0v0IaHNBAk2qo4wrv7nOjHMvak9kaVb/FWZ0smCrFEnhj5Ia5nFnpgkXRdNVcJ3zCAdgmKyxfj51mO6eEFy6UwsjH8OVTMj9BhfrAqy6F8XdXhDYy4Sdx5ngwe9D/P4OOUqB5Qt6GTfyuups8kt6kzYunQyofk7K90WKIN125/thaKb3jujgoEtOnpa2VjCYzVBLEB+dH18jGWcmwsEFXaKTumbJlQ8sqOpmMjfpbr0ijiyMfrrX4olEge5uLV141uU8jpDt/L2c+Y+I9kv19EjLT8KBuk9X59+P6f0NVW3dr13zY8Yt5V7FdSxhxY5te1pTbCluPIi/Dr1/zZRYWUEOaa0gM0FiMv0LEvHf0hl6dnhtOr6C0+NyV7S6pVgFdxwZV/0/vx3CbSJ0P7hz2aEvOuqhdTZ8K+Dn6tFChudRbIIEwVNJoWmksmWojviPtKQKspUMbZokijezLWrBQl9kHntMwUvIGHPJ+zVDSFH9ZyD4c9ncFynHOzW5BTN4pwh3jM/uTlFVj53zmjBjNlWE0wD+eUag+yQ1BRefzIPU2R6a7J9wpjB++yHSxF3pIhbwUHqnbGLBGkwkUfcyfsH16wYk7e3tyYEQEt2/11m0yzVJj2EmptX6LEC2IqqhEEUL0Z+ERrAINCHaHJVfcI8OAAbwGawqCePaANeYsGpfq8Bjh67zue3CEUBbmiG3YOvrv4n30aj3t8lTbjd+rJB2fX+oPCvXrNLf6UsP1qp8fGEmxsHSRciQFR8SfctcwAr+fh4nhLZJkdexW0H+fCsDzqnBoUY6ohA09EGA3uPQ9O0QOeSzEX1Vv37VHm3448xQbsu3OpdAVD6DxUVpa8OeEhJ990 I= X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB423; 31:MQ3+79yZCYJUXbMw/82pVubET8CM9x8LqmQQ9iYoUfqB6rqpWO1FrU6slkNIru2El5uOf9SzSZdbZKY3YM67pZF2oMsHcki2earJU1TLs4WfTYV62Uw760ZonpJ0fuq4s8/qlqnFC5SOcQG8uRYxI8l+zV9g+UXVJHNtkVWVNAPqIBaf1WbSwkmyrXR7Irg+LBBw/yYb2nRK9JBpaVHEXTN+hIcgEdEJh8gm2XnO//V92xbQmscYGzryIHaJ1gSgKk6G9mbXQgyEn5VSZs1ZoGc1tpmZh7J7V4EcmMSBFkuAglhOPHyN0jES3bgTBQJjeighn89xJNN2LFujyRd2/nh3OW1hoUkOEqwOLnuFIBJVuwqB1+CyCUT2rSUil/I/SH27M1RIglrlYLS5ENECftoFaEblfXkWAnP6gfm/tqlPpiJI8Esuxuyy6X2YGOSZOJet70U75kvY3xCtgLiCpihx3sLA6H0hce1KHouaV3tS9+7RJjR5ko0TgQUhjdUt1YuhnnEwz3QDYtWFADLuTpcHY1QYA6xHAwnU3eySE2QbYO2dX3Fmwt+DwOJkiSkaavZ4ckbb+ynKAHyvbHKO3fSCPpzquUc1NujSYbK3iDK/qxM+uSOrmTErkYa6m0StsdbhG415rdGs0aVwPrtLkFCt6kRjqZ+ilUz3umuxXXKnk7+1jLbjKy3p8jMD4eYRqx+xVvZyIu6khA5KD4uv8Q== X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB423; 20:fa8zrpEcpUXNycm6nWc8WORo370GV2UpuxVr95MdI6RDTt3WFCPxhQY0Rh7MhzwAAwb3LZD9dbDTnHAbd1zV6UVwMwMJcHH/LqM0nVCa0wGNbwt3IndK3R15A4nZc/O+Dds+Qrg/j1slNF3xSGkPwTLr6H2ZTZG/+apWIaeIqLnypgLGo07ADxjHyfbC354k1ouzq8llRFBcyympw7vwS1XmIzAwSyypWo4UT3jymqcEMW+sWz0bVXLM9RpDOAdKc6MqGNTIRFopvu2xRdYJRFAWJd6rKoTmX6PcS/pRSDpzKvdLxtmn/06ANJVvNhbMxvFK70RYw46+NXu2c1KmD/2LM80+f0XsfLywLgNMe52dbK2XpmqTcjEVQ5aVv33vXcHXBj622Uz+G1V3EIEm0FxNXAbPunCaSh6BsIhHPPm37dGrjn5sQIpQGcPo6pu6/BF0RWNGwovpIbehyZzLJHAXkwcXqThcL14VSXJ0FhyKJIQ/SftXYgAOicomb0QU X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(158342451672863)(209352067349851); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN1PR07MB423; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN1PR07MB423; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR07MB423; 4:P8nUQamz+31/iI7xB7uqt6/GSF26b+pnMEDJYiGpxC0?= =?us-ascii?Q?Mry8e9qsP9aOHSR55y2ucFoOJ2ntMA8zDuje5JaWC64SWENl5YrRNvomy6Am?= =?us-ascii?Q?DIhKLLf1ZkNnEtm6tkPSW4KVy4yQtqO/WPaRKvSJqx26KVX5S/yEqxcr+tTh?= =?us-ascii?Q?NAzEMEcsmLlKPRsKbL8cJDVJBacBG8upGddccfdPR+wlNStGcgUeoC4Ska1A?= =?us-ascii?Q?cF5YHyxvl8vYcVjn5M6P3+F9Mpa8C/xel4IlpWQtH2d71049m+FJHsW3niK/?= =?us-ascii?Q?CZ3JlNH03lhEnhzwmI+fNOTTyX0rjvjEzh0VhRe/HdknzJiK3F1ApvpfgUfY?= =?us-ascii?Q?iFe8rftCbm7V6Zgruv9yxlUMRxYO0NTL77yRjZso6kRSzT7w0B2zYqyig+GO?= =?us-ascii?Q?xA7aklx0zpvp30raUH+8Bi67Ehg6gADtfFmAJb6c4cUEQpLC1k/slUe6QybK?= =?us-ascii?Q?kwxT+myjUaOUCzCIIuOhZjg8zjP49HKwcXXDou7TXdxM5t+r+n/bNe4qaHin?= =?us-ascii?Q?JJagnLfgY9ghllqNVUDLb4gl6oFCEN7OgkQ+r0JvPFSLK8spMDhsPNIfkDIN?= =?us-ascii?Q?8AjM/Bh8KYQu6LrGLz20k4liy1rwbNjMZp2O1VWcAr36aKdTyB+b3o3eEP61?= =?us-ascii?Q?D/d2r7goFXnFeQXUT1Q3ATNvg9JXYVrhNitcrErn5pIK6QVvPbTToePjuv3x?= =?us-ascii?Q?UE3gdWAqelOxmS0Sa3uKNM6opKeSwExiXry6WafGR4Fv7k7oHKGl/VJsQUan?= =?us-ascii?Q?0OTJJbMbly6A1TB9JcL2EaaEti9P2INLHI6069eMs0CKmTd5C1Mbrqu1eDV1?= =?us-ascii?Q?0gWlPn33IvcIghPTOG8J8qWhRjuY4x3m71RAGNK2LZFv5uY6iLuVzGKC4I5D?= =?us-ascii?Q?+4Nd5aGU+hHJt0WnlXtz/33xezCzhW40DNNcltjde76C46C3GyAjfVUI+R/z?= =?us-ascii?Q?5Hhi4CXc1KfD9Nrdgy1rNmNmhRWsZrqU+8Q0ZtbjygxewSQWXwCd1uT+UKXd?= =?us-ascii?Q?OSFgle/8ysD7AAVQ0/kmY/4BgXB9HiUlQ+FkS5dOMMaNeAWNBxO9ERWG7lMU?= =?us-ascii?Q?IUn2ZnyDs7kuDaZmsxPPHHsnjMmWQHVTW6TiKScDLOFHy5klH/hrhUbac8Vm?= =?us-ascii?Q?R6TUwES+JthOH8PkTE6iSVSuC1joZ/aT2UQKwo+cv8E3ek4FkqvoUGtcKMhW?= =?us-ascii?Q?TRjQiqWBgZDLwLXpgkV34t1L+NUhbT822MVZDZ6R+8uGLXZ/tWvqO+Twla8f?= =?us-ascii?Q?DIhL9AjQrEqQQTeRlZCr+6ONNAzhF8RsUtSib?= X-Forefront-PRVS: 0345CFD558 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR07MB423; 23:xRIVCfICJIXVE+2humOaggzE/nqp4mQD4voTu83/6K?= =?us-ascii?Q?TLUp4KJEM8TM+M4nJiTTgYsUpUOVIdPeUHICoZVFHTkbOTJ2p8Q3iZ/zbPQl?= =?us-ascii?Q?uJb3MayxCcpMyJ6MAa3AENj9vGhXdhAZJTXSAe+b92MZ6w6MR3dRgjx4PZw2?= =?us-ascii?Q?qaDYyh43kSEILeM1Z72471t/7adIJyGLnfA7mhFHpzNUd3d1+AJxmkhsXo4q?= =?us-ascii?Q?Zf+m6M+e//i5iMe05Gh6MA64xMtrVnsZVMVi6XKCLIy+d7Esmy2cSwRrMiei?= =?us-ascii?Q?bdm0VWYlWUreFjK1D5ejlV+90bGizQzxIRw+s/vFXX768O0OY9Gmqohi7Ov2?= =?us-ascii?Q?OjHgML7QUBJ1IqhL+RwvHETLt3Tu9MGRtET4BHxO/UiCMrIy/5sgASxbI4xi?= =?us-ascii?Q?wtY1uEjTEi/R4qmZzIUO4SPGiO6VbTduq+52jh1cvyHcBoEnsegJAu2IMz2q?= =?us-ascii?Q?HWQjbbMiBX518G0JlQRul0/cXdPo0iKkX0DNg2lpqBfzCxO4AiM+7d29U3wi?= =?us-ascii?Q?7jZNcYfU0Xmoj1l4dcSclZ/TYQwKjJ4sOyX1fpGog1DwHgXVyygGMuB4KbVB?= =?us-ascii?Q?GYEo1ujrMTEVa6xi2wgAoyLwvz1mPKsUm1EawK+CrpXRHp1+oeLKQ1ALFZSZ?= =?us-ascii?Q?wsHYpnrhvpA4TMlOL3Z7wNalcxFcrZsLJAI3rM2qwmKGT7C7J/HIPtH+McJS?= =?us-ascii?Q?Dte73gxJNESNauEN8QQfy03DPWp+ZiVwJPa5FRxtxocZff2xVzbTbbvdTjTq?= =?us-ascii?Q?m/WcQEtsCcFJ02ltmK2Tb0tZHt53l+BcOc348uy6HhzfK8j7gRnuTGp/lFlG?= =?us-ascii?Q?5TWekxeHSFou3tf1x8hIq7PV73jIZqnMJ5Tq/tkUwepAq0062DGijal5bHEo?= =?us-ascii?Q?7LBF5gMzclV0pGLm96CMbTEHXZxMiBTot6dVCMKEo7dUAoPt9MP/XSON6MyT?= =?us-ascii?Q?6nbz2s1OGszhqx54KfuwJAD+Tnp7J0E8RtihiOUvDBxwsrz6gyLc1jjFTKfu?= =?us-ascii?Q?uVQBWY+C+6qHUo48G68/LW4yRcJ2SoH4zHfZe0Y0yuLirDg+fv8A+byfqKOX?= =?us-ascii?Q?HClCeYR3IWKYaFBlwM7lEjYZz1TbEyNs9pEQV6id1T9eqtUA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR07MB423; 6:+d3JgDtYGYwGYfkxrS8w2snX94AMvlVYgDKb20rAuEv?= =?us-ascii?Q?SC+a3u3UC+CwgWr24JtRS2OllmmRx5wNkvOp4SKfArdEI3bTcsIYvI35EcZX?= =?us-ascii?Q?+G02ZjNhKachbzBCq7THQs5j7n9lU8EGEkYo/4MkRZQNBFe6RRjK4hq43iLp?= =?us-ascii?Q?CRn9xU/BXaqJwvm88oC3DmIg6oeg40XJ4iDFZih9ZJyG/OO2iEEZcbtlCYII?= =?us-ascii?Q?3xIEGiS7/cZL6X63F7KsVFx/KgIzwdrG+/gmPMMmWToDN4O6c5NWau49ry3R?= =?us-ascii?Q?BewHbnL7VjA5/jqhYJT/TggCAl6rZtmpXHpXOKO8gAuDQ2nKBuDP7nT8dz+n?= =?us-ascii?Q?4/z+Cc52LjrJqOuckaHOXtaCteXD273OacX2OLr1tFAgfpsWVS+CkUFR2L+C?= =?us-ascii?Q?hjBuvUG8XKuv4ecXnoPHV9TXL+eMjCGz28RDrgCYh58nbgfud5Hxj/ytrGiD?= =?us-ascii?Q?ZNOMX2R+9lz0nSZaSnTay2gf6XYiO4K06EtZXXfxZU7quRmPm7inXYPlJrKA?= =?us-ascii?Q?UKIWVPEcAInS9Wm6GMQdIp04uhKu69kHVcv2nUqBhrzLZNA53oXT3s1MlH9m?= =?us-ascii?Q?zFrywTs16kXhpefaaETAtPYBPdBmNZTndW9VRI4nSLJK2TXnlKwY1cfKY0eb?= =?us-ascii?Q?+ohkH+oIEdLaRVhrg+c/XFsleNvpDemTI3n3lBsoHfZV8De1uYlsPJLFHFSe?= =?us-ascii?Q?oMpuOGbt/1gs+Dx64f2QrxvTiFjxOANfuouSAyDdFbCw17T5HwM04OZt/5iO?= =?us-ascii?Q?PPdt92zUwfhE0W6S/SXBi+3qmwH5ImMTMRLiWBkEoqs4TFsVHeHHsV4o8TAl?= =?us-ascii?Q?xcjcemxEHmXMcdSprRE937E41prbm/gLx6Lvj8vayZaxwF7w0CqrNxNe5h+N?= =?us-ascii?Q?2rgeBkQzmeTLw84vn+6nxllKzGPuSvjYU1HDApQNuxq6YIxqlch79jr05MVg?= =?us-ascii?Q?bq8iqcUNS8fefRXXKfgXRTHFC/iUaKb5ayuzpfUA9Ek3JRdMdE8rUPugy1bw?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB423; 5:VXZj4E0Emopf/O4gxjuBZ0REfEaIT10q6gQ3R41ub83cim8eQM6lH+/tVr5C3WV22gj5bHGji1OBdk1ZFuMgKkp3/IJcQJINv5rqPEBQ3otlCo0fVa/oULcLQWSF+intuKx3VqmIK8W7Ai9Z52A8zVggRWb3MJtglB90PgR2VbnyJ+Vkrrpz6grPisyeDfBbinC39Scbe4LwCXVJPnrYs2l9WW7S47/ibOZtlTSCFc6RhiNZPddhADNBtQKFoKwMyWi6ZlwgxuKFwPRPIFZ+4uS2NNyvYBtbsLDqY95pwqRkMlEKQMpew1KcFeD99fSYOHtl9L1KTBWcMKK9FayChCZWCJT+m0P43oAG1CHfhgiCCzmuxU0IXyU0hX8UQM+1I+9gk5PvaWcc7cgtdN+mnQ0zG2sQruVB1oM5qyisOqJTwjqgdhZjcwyH457S288Koq6uJ95th8jDjYdDMJxmQ3lmY8GSr8Bkp4k60iP45hOIYrF14CJ2f9gzQ32Sg2st; 24:HhsXDEAWOzhLMsE85dLHfckdPOb5z9ptmyDir7RDhu4tY5sNnQamL7K4jXpJdc/Q9rWvQ+EfuosHGm6JZeCuIVh9DPioPx3pOcylvqlcBDo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB423; 7:d1kG+soM7iZPCdzSLYOyHsvAn42qwd2e7oSkpTHDF76YANeiWu3IdtOc2E0ddeu4fDj6GUYvy7NQ3crygx7GcJ4U1HcWvsvchCBWTOXjlp1hM+iRdnYTDHVlJV0vr1ta9tppHRTPeP1VeWCWFhM4iHAcuCNsmw6Bi5nkQrpvn521TWPSTrynXeqzQak6FYmxs8HkyE84kINlv5Kj0/6tGL6XUPQSxmBOsCzmHkadsKDeRrOBAGryrL9gbooAAcK4Y9vqpKy/xzUviesbHK4X6ItEJffG2yJwGpSyB6A/peWix52Omjstbxv3JBdTdPeDtTPDAqyxk2zeaW9GZTedRq2XrOXIArQE9TD9tGHlRVH3QcXz66sxLpVxSJvn3QEA94SaTAJSGPDCZBDyiVtZrNzeMoJXKMGzDfsJ85ka1CAxZkE2HFWqIj67j1slMd/+wNjrDotVeVusYy1ujh+bVfid62VMXB1/X05Bxv8AQc2SMjBDHwmDReMFtWzeZR8W1BFbUp1i144Timh4WFnZpEz7/L3VJ4Z5Sp81oN40ovXq7yZeNnvNo8ABk93oRV9/mDzYKyc+ffM4bETMaZSFtdB0RoRzB3PEBvKOnIy9pqV604zAPUTDLKALOGCN9qi3KjOVlZa1h+tISwwgqPdV+0dwiWnJ14VZyXOnEew+Q1Zrv3tqrAncioLwtRXRaFPsOLjJ1ax9nVI27vYoUga3hvHXXBQtTc1kKMhvZGENpA559ZZG3axmrHm14uM4sIq9su2CT+D47S7D9Sc3r1Q3NNz+DVSxhejpTSe87HGQh/8= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 20:49:00.4838 (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: BN1PR07MB423 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 This patch adds switch command support for FC-4 type of FC-NVMe (0x28) for resgistering HBA port to the management server. RFT_ID command is used to register FC-4 type of 0x28 and RFF_ID is used to register FC-4 features bits for FC-NVMe port. Signed-off-by: Darren Trapp Signed-off-by: Duane Grigsby Signed-off-by: Anil Gurumurthy Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Reviewed-By: James Smart Reviewed-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn --- drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_gbl.h | 6 +- drivers/scsi/qla2xxx/qla_gs.c | 118 +++++++++++++++++++++++++++++++++++++++- drivers/scsi/qla2xxx/qla_init.c | 11 +++- 4 files changed, 131 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 0dbcb84011b0..0730b10b4280 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -2867,6 +2867,7 @@ struct ct_sns_rsp { } gpsc; #define GFF_FCP_SCSI_OFFSET 7 +#define GFF_NVME_OFFSET 23 /* type = 28h */ struct { uint8_t fc4_features[128]; } gff_id; diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index c6af45f7d5d6..cadb6e3baacc 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h @@ -18,6 +18,7 @@ extern void qla_nvme_delete(scsi_qla_host_t *); extern void qla_nvme_abort(struct qla_hw_data *, srb_t *sp); extern void qla24xx_nvme_ls4_iocb(scsi_qla_host_t *, struct pt_ls4_request *, struct req_que *); +extern void qla24xx_async_gffid_sp_done(void *, int); /* * Global Function Prototypes in qla_init.c source file. @@ -618,7 +619,7 @@ extern int qla2x00_gpn_id(scsi_qla_host_t *, sw_info_t *); extern int qla2x00_gnn_id(scsi_qla_host_t *, sw_info_t *); extern void qla2x00_gff_id(scsi_qla_host_t *, sw_info_t *); extern int qla2x00_rft_id(scsi_qla_host_t *); -extern int qla2x00_rff_id(scsi_qla_host_t *); +extern int qla2x00_rff_id(scsi_qla_host_t *, u8); extern int qla2x00_rnn_id(scsi_qla_host_t *); extern int qla2x00_rsnn_nn(scsi_qla_host_t *); extern void *qla2x00_prep_ms_fdmi_iocb(scsi_qla_host_t *, uint32_t, uint32_t); @@ -644,7 +645,8 @@ void qla24xx_handle_gpnid_event(scsi_qla_host_t *, struct event_arg *); int qla24xx_post_gpsc_work(struct scsi_qla_host *, fc_port_t *); int qla24xx_async_gpsc(scsi_qla_host_t *, fc_port_t *); int qla2x00_mgmt_svr_login(scsi_qla_host_t *); - +void qla24xx_handle_gffid_event(scsi_qla_host_t *vha, struct event_arg *ea); +int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport); /* * Global Function Prototypes in qla_attr.c source file. */ diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c index 540fec524ccb..c91478529b51 100644 --- a/drivers/scsi/qla2xxx/qla_gs.c +++ b/drivers/scsi/qla2xxx/qla_gs.c @@ -550,6 +550,8 @@ qla2x00_rft_id(scsi_qla_host_t *vha) ct_req->req.rft_id.fc4_types[2] = 0x01; /* FCP-3 */ + if (vha->flags.nvme_enabled) + ct_req->req.rft_id.fc4_types[6] = 1; /* NVMe type 28h */ /* Execute MS IOCB */ rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, sizeof(ms_iocb_entry_t)); @@ -575,7 +577,7 @@ qla2x00_rft_id(scsi_qla_host_t *vha) * Returns 0 on success. */ int -qla2x00_rff_id(scsi_qla_host_t *vha) +qla2x00_rff_id(scsi_qla_host_t *vha, u8 type) { int rval; struct qla_hw_data *ha = vha->hw; @@ -613,7 +615,7 @@ qla2x00_rff_id(scsi_qla_host_t *vha) qlt_rff_id(vha, ct_req); - ct_req->req.rff_id.fc4_type = 0x08; /* SCSI - FCP */ + ct_req->req.rff_id.fc4_type = type; /* SCSI - FCP */ /* Execute MS IOCB */ rval = qla2x00_issue_iocb(vha, ha->ms_iocb, ha->ms_iocb_dma, @@ -2754,6 +2756,10 @@ qla2x00_gff_id(scsi_qla_host_t *vha, sw_info_t *list) list[i].fc4_type = FC4_TYPE_FCP_SCSI; else list[i].fc4_type = FC4_TYPE_OTHER; + + list[i].fc4f_nvme = + ct_rsp->rsp.gff_id.fc4_features[GFF_NVME_OFFSET]; + list[i].fc4f_nvme &= 0xf; } /* Last device exit. */ @@ -3305,3 +3311,111 @@ int qla24xx_async_gpnid(scsi_qla_host_t *vha, port_id_t *id) done: return rval; } + +void qla24xx_handle_gffid_event(scsi_qla_host_t *vha, struct event_arg *ea) +{ + fc_port_t *fcport = ea->fcport; + + qla24xx_post_gnl_work(vha, fcport); +} + +void qla24xx_async_gffid_sp_done(void *s, int res) +{ + struct srb *sp = s; + struct scsi_qla_host *vha = sp->vha; + fc_port_t *fcport = sp->fcport; + struct ct_sns_rsp *ct_rsp; + struct event_arg ea; + + ql_dbg(ql_dbg_disc, vha, 0x2133, + "Async done-%s res %x ID %x. %8phC\n", + sp->name, res, fcport->d_id.b24, fcport->port_name); + + fcport->flags &= ~FCF_ASYNC_SENT; + ct_rsp = &fcport->ct_desc.ct_sns->p.rsp; + /* + * FC-GS-7, 5.2.3.12 FC-4 Features - format + * The format of the FC-4 Features object, as defined by the FC-4, + * Shall be an array of 4-bit values, one for each type code value + */ + if (!res) { + if (ct_rsp->rsp.gff_id.fc4_features[GFF_FCP_SCSI_OFFSET] & 0xf) { + /* w1 b00:03 */ + fcport->fc4_type = + ct_rsp->rsp.gff_id.fc4_features[GFF_FCP_SCSI_OFFSET]; + fcport->fc4_type &= 0xf; + } + + if (ct_rsp->rsp.gff_id.fc4_features[GFF_NVME_OFFSET] & 0xf) { + /* w5 [00:03]/28h */ + fcport->fc4f_nvme = + ct_rsp->rsp.gff_id.fc4_features[GFF_NVME_OFFSET]; + fcport->fc4f_nvme &= 0xf; + } + } + + memset(&ea, 0, sizeof(ea)); + ea.sp = sp; + ea.fcport = sp->fcport; + ea.rc = res; + ea.event = FCME_GFFID_DONE; + + qla2x00_fcport_event_handler(vha, &ea); + sp->free(sp); +} + +/* Get FC4 Feature with Nport ID. */ +int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport) +{ + int rval = QLA_FUNCTION_FAILED; + struct ct_sns_req *ct_req; + srb_t *sp; + + if (!vha->flags.online) + return rval; + + sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL); + if (!sp) + return rval; + + fcport->flags |= FCF_ASYNC_SENT; + sp->type = SRB_CT_PTHRU_CMD; + sp->name = "gffid"; + sp->gen1 = fcport->rscn_gen; + sp->gen2 = fcport->login_gen; + + qla2x00_init_timer(sp, qla2x00_get_async_timeout(vha) + 2); + + /* CT_IU preamble */ + ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GFF_ID_CMD, + GFF_ID_RSP_SIZE); + + ct_req->req.gff_id.port_id[0] = fcport->d_id.b.domain; + ct_req->req.gff_id.port_id[1] = fcport->d_id.b.area; + ct_req->req.gff_id.port_id[2] = fcport->d_id.b.al_pa; + + sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; + sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; + sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; + sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; + sp->u.iocb_cmd.u.ctarg.req_size = GFF_ID_REQ_SIZE; + sp->u.iocb_cmd.u.ctarg.rsp_size = GFF_ID_RSP_SIZE; + sp->u.iocb_cmd.u.ctarg.nport_handle = NPH_SNS; + + sp->u.iocb_cmd.timeout = qla2x00_async_iocb_timeout; + sp->done = qla24xx_async_gffid_sp_done; + + rval = qla2x00_start_sp(sp); + if (rval != QLA_SUCCESS) + goto done_free_sp; + + ql_dbg(ql_dbg_disc, vha, 0x2132, + "Async-%s hdl=%x %8phC.\n", sp->name, + sp->handle, fcport->port_name); + + return rval; +done_free_sp: + sp->free(sp); + fcport->flags &= ~FCF_ASYNC_SENT; + return rval; +} diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 7286a80f796c..227c18426c6d 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1244,6 +1244,9 @@ void qla2x00_fcport_event_handler(scsi_qla_host_t *vha, struct event_arg *ea) case FCME_GPNID_DONE: qla24xx_handle_gpnid_event(vha, ea); break; + case FCME_GFFID_DONE: + qla24xx_handle_gffid_event(vha, ea); + break; case FCME_DELETE_DONE: qla24xx_handle_delete_done_event(vha, ea); break; @@ -4626,7 +4629,7 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha) &vha->dpc_flags)) break; } - if (qla2x00_rff_id(vha)) { + if (qla2x00_rff_id(vha, FC4_TYPE_FCP_SCSI)) { /* EMPTY */ ql_dbg(ql_dbg_disc, vha, 0x209a, "Register FC-4 Features failed.\n"); @@ -4634,6 +4637,12 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha) &vha->dpc_flags)) break; } + if (vha->flags.nvme_enabled) { + if (qla2x00_rff_id(vha, FC_TYPE_NVME)) { + ql_dbg(ql_dbg_disc, vha, 0x2049, + "Register NVME FC Type Features failed.\n"); + } + } if (qla2x00_rnn_id(vha)) { /* EMPTY */ ql_dbg(ql_dbg_disc, vha, 0x2104,