From patchwork Fri Jun 16 22:47:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9793799 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 99F976038E for ; Fri, 16 Jun 2017 22:48:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C26D2867C for ; Fri, 16 Jun 2017 22:48:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7F689286A0; Fri, 16 Jun 2017 22:48:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD4782867C for ; Fri, 16 Jun 2017 22:48:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751901AbdFPWsH (ORCPT ); Fri, 16 Jun 2017 18:48:07 -0400 Received: from mail-bn3nam01on0052.outbound.protection.outlook.com ([104.47.33.52]:60000 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751144AbdFPWsE (ORCPT ); Fri, 16 Jun 2017 18:48:04 -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=yLB/EjJSuQuo8CdEWV8SP9q32ZUy1iiS+nvADychcVc=; b=UVCUhlQvxxQSr9MvofrQ5FEwj+5Zs9MWalhGlTUXkAxpH0jYMq6qP2dDQ3jbMubGOBTw3xjh8G3vMw8rClPsNRNQ35xmQNZvH1kDvhBGdTBEyArqD6DhDG7s59YF+fYqTxpRl4wRDv4yT5XPkOYNv9mOLX2Fpxn1/yvnsyGbD3w= Received: from BN6PR07CA0041.namprd07.prod.outlook.com (2603:10b6:404:a3::27) by CO1PR07MB428.namprd07.prod.outlook.com (2a01:111:e400:103d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.14; Fri, 16 Jun 2017 22:48:02 +0000 Received: from BY2FFO11FD035.protection.gbl (2a01:111:f400:7c0c::101) by BN6PR07CA0041.outlook.office365.com (2603:10b6:404:a3::27) 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; Fri, 16 Jun 2017 22:48:01 +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 BY2FFO11FD035.mail.protection.outlook.com (10.1.14.220) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1157.12 via Frontend Transport; Fri, 16 Jun 2017 22:48:01 +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; Fri, 16 Jun 2017 15:47:51 -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 v5GMlpAh003740; Fri, 16 Jun 2017 15:47:51 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v5GMlpJH003739; Fri, 16 Jun 2017 15:47:51 -0700 From: Himanshu Madhani To: CC: , , , Subject: [PATCH 4/6] qla2xxx: Send FC4 type NVMe to the management server Date: Fri, 16 Jun 2017 15:47:42 -0700 Message-ID: <20170616224744.3681-5-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170616224744.3681-1-himanshu.madhani@cavium.com> References: <20170616224744.3681-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)(39830400002)(39400400002)(39410400002)(39450400003)(2980300002)(428002)(189002)(199003)(9170700003)(101416001)(305945005)(110136004)(2351001)(6666003)(36756003)(54906002)(2906002)(80596001)(87636003)(48376002)(6916009)(2950100002)(86362001)(478600001)(50986999)(107886003)(76176999)(42186005)(105586002)(50226002)(50466002)(5003940100001)(81166006)(8936002)(33646002)(8676002)(5660300001)(189998001)(38730400002)(72206003)(47776003)(106466001)(4326008)(356003)(1076002); DIR:OUT; SFP:1101; SCL:1; SRVR:CO1PR07MB428; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD035; 1:SJ0oLKC4zO1D6oEsJ3H0tgs68swXoioRBH0staDsKsPy5OkYNYGFNh4QPd2ymesROhUUkVQ0eQPM0q/yAunn6ZfGRO3ynuLDYYx/JOuhZ6U39PNtW03oMNfu6lVfHz2PSRNpJ+t8zv7IqFyl6mk1wf6aP5r+Vcl59pBi5601SsprORj0GE3TGD3hDPjJQCQGNrxTYiFD+/XaB6JohrnCx4+h/T1/dp6Wk6U+WWg6+vU8pde96jIkxZItN3C9UWWYGjgSoVWkayi6uPyV+Pf3+8C4FBUHsvqJWr8kpSgwB0mx1zG49Wiz1w+cmzVmxujzK7bE/oyww6dpOXfCyqxOY21iJ5Y31NC6Ig+9zsu59OQjPX522zCsqdBaTaagA9tui4QjqYwFSY1XbeJj9M/6uImwttoAes4EVRh+6wTR3Cv5ODwT5hAZGcGCwTxWLDdevKY2zqe0cFkCAagWLsyP1PskrqgdU1i1r0kXEJQtwVEaX6JPHrfbOBcq8u4INHSCOHD0J+64Gq6XnynW20aLSg== X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e3deba86-d062-4924-7f86-08d4b509be25 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:CO1PR07MB428; X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB428; 3:f1h9aV0uYC4u1iWXGq2Jf2vsTjicBd1dy0Av7p4hOKIq5VAp9AgfA2W4GuZqJEANJ9O3PD6Q27JjTSBkSfYQa8yjIc5x2yUYI7iHqg/uyx7z4Trqe2rX4acsHZTyDf1WA8226CHflaZmSgpxEYcCGKGNcDtfu5soXFh1qlfFYIdkzb/KNnzUVk1BzcdP0t6TyyPLbW97mVNVdKtMzgb32exsiD8/Mq+cnyykh+5LzuHdnK8vVZXlHNRE9/VlY5vUCyJt048NlRq0BXxX0+bTgMCKv6WBp7Natmfo8+pxTTj1BtHU1c1ihbX1KGo5Lj4051QocUWVPgOvc1Hr+SdffD+0oGqg4GTewTdIuxpYE3dVfgqJjrmQrLnokx1IWdfVPEWiv18zf51FJNeG6/OnnXBQ1fO0RB6tTDcFMB3qXv5FTRzwXm3+k+dyT0j0jthxUUysMFstPqNHXnTVUgOQ81g5k3X4b6BkWepSi8NMBHoXuXoDVzK7DvxQep04lOwO X-MS-TrafficTypeDiagnostic: CO1PR07MB428: X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB428; 25:u9eimUR7Rm7gucc6AUH7gWOgY1HARmki/gkg+L1Wh7bS8dgLmMrFBo/p3w3dL/0P07NZ5HFuOWnSA7RhVP37h1uhFs8Zv9n4F07tr407A0KLbDwYcaQOt8J9sDA5ISj8WQYVxx1KUQ1a9qKNXbt3JfIaGu02kba82fOxgM2MfqjiMpGQDCxENyOrZ6F2gOs/jt8RosQgP4iYXESqeRh6v2lXO78mTjZSZZ+RJuJLHKjGtFPUUl34BxiLxW64Wio7JJxLalEtgoGiAvNI3k5wo18IsyIW5mCGillMvvvKv6BifoboSHX6oE6Tr+UqSV5T5fMd2048CPq1IiE+S5mMUaLk6qmRckCvZWUtmOjs0IpNHJJHsrKPTFr0a8chsPmawr4S+YMYhfNDII/4mbxm+2hXuUfHXuMfCLu/wYU2wjI6jJnN29juFAMQj2gw9MlPZ6ROUbBtTbChg45OqCXcgHbB/WZwMosRF8O8BUtVguPOqTHJKba5A4j9s7cigRB29SdnH5BZkdW9RMyE5h8yNmZY8bTYFbvgxR8xkCExq1KGruwvJ21/omvdB94X1107pwZR56sfqYJ1F/fxxHtj6rg26eAhRepyLF9XYgCXv6qXJGHYVTORfSIsn87U/mAplqxEULaQF33Gh2uefliD1kzJM0iEyXtjvGaY+FalkS8bxdDeRS5Wpl0UAebVEFKpR7QLW9p89tGK3EtOgo2PtttVSJnavKQUcDH+5jTonMVQPXTyuzfI3J+VJ9aw4Q/Z8Gjif+sOSwrqG3Yvqs52ReLJjzfA6SzvyOfB1ksPd+qmsqz0KMquJieROqNCV7s+RbQcD/2oQTcAqOneh1T0WMMo5V+l6+d2y81/tqqUMKYiZFWk2dsO4zc3jcfrhmv6EUJfO7uc2+2NZM8QQoVvKecwvxXP5K87h6QFEjlpCe 0= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB428; 31:bsi0sQyDTqqpCjHfHtk9/id0PHXlLc91MzbQCH00Nhfj+aOqWfKiBma0Drw/mKeXBrID/WDeXeG1gatbIB0as0jDHewY7DbmLC8VTK+uNBmjjxnKak59kCn5opFFWDr7L7LwaC/OwmCHPUr+ARNQpzm5au8a72z5ytS3MMXp11JFYZ5Inl9BxylHQoIElP4j82Lmmozv7RLDfeDi20vPPBWTr9Bm+ooQaWbL2oOw1PWkFvO0uSv4WC0P2RFT27vDhtV21CaNffA+Fpzbhi4Tb7Y7Sfd7Sq3wIhTxipylzS84wpgSenCm3I0ep/wVcQDLl0iEFpKPhDiE8IjAsfvjfAmSlxUxrxjTfLLnAxche7BsTedUPFNMiwzL3lkGhIZ7CTf9V+TDHcQinhxp/Ygw2bGjtrs3tko1ppjy5N3vsnKNmZ8zhQKggPzyHIYHZAO+U6c9ziXjgnPMNXmJZvBCT9bq84tFJyhxPxjih7ztUTBZlMlEPedYzrMb0MGyQ4yW2pm+0zJbo8mYUVtJKEdRmDQIoyNQkegh2KtSkPApG4eG7czmCklkVQDSCWUvch7xy7Z18tYgbGNA0wQIkkPzpWy9zXsbNa6e6VLbbPsW5yZgRcxuhdfcEYbmTbFvJQIhX4G+IItEdOM49GxXq0QlQw== X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB428; 20:qsiAnz766cwZZx9no30a5ZRRdesmF6inckEwtrxjaKTHS+Xyptu32o0KW+Zb1b1weccC6fECGE3uBbpuKP/9EK9OTK44JWRPTS4bXy/JCIAV6ZZIeRjJ+v7UwuPoH5ZI5eoqzq3VEauH7kjUwjWQ7QWNHITELxD+nXGijXGNXMIXT52S1OvmqE24wNPnMkfaBLg4CvUYsxpK6RP0xpSwpPAE/+IL7OJ54e2vOnBjkE7cTY0W3hhiqFjzknsSdIQGpt4h8XVSgPNgVWOTKLotwVSzcUdnZ+c4UL3GOBudXKEF8w6iHSPNLRT7uGAh2Fc7c9hIvrSKvAX2UjK7vdVC2KE8vGheb0/d0OGhm08whbDekzDe0I91TFNaUYu1QjRb9HKiWxv+NIoe1kABsIishquG8CHUAJZTk9FNWUE5/IdI8X0KBywObvWWhQSKQ6D8acKOV+9VcgV+KRDwAbVNWD6QWS7WQkKzTvb9ZjSmD/PMVdfTRPfm/j+sdIhhjtOv 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)(5005006)(13016025)(8121501046)(13018025)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123558100)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CO1PR07MB428; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CO1PR07MB428; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO1PR07MB428; 4:sXj9wGUUHNXOtH4oCXFPym74k10q9B0GlEilmbnew9D?= =?us-ascii?Q?nPMb2DA9yN/+bc38SxlVE3PvejsNtYIYfyfwABrjqLXtiS7/qrLi1Ht7hZaq?= =?us-ascii?Q?3umlLTdLWlRHGTKhpxMhug0R/VX51cfmsYbKao+RB9lt730C9abkR7J9aZzh?= =?us-ascii?Q?RKuhE6XOzv2DR5lH//BSNd4KWa7RDcqF6nQrq1kLnppYYkGGVzy7ztHoU2/m?= =?us-ascii?Q?suUJDfmfqq0KBwSEvZzcSGzi8zqpfup/F+AQh1vM0iVc32TvbtkNeS7N2eVS?= =?us-ascii?Q?Svg4jXMfwslKr9sXpP39Am6EzjDCnsgNuuKDBLGRoHimQi+hyUuXZWLzbxsH?= =?us-ascii?Q?mZd8RF11bBU66zfSbvN1iOlqX2De7df2TiY8BR5nTPHULAE0wxqKj46NYANY?= =?us-ascii?Q?yxXdJ/PB22FAagHx1gJ9cuZd9KVCRIgmULAW8bZ4OVdkwINlArkrDY7iYIfK?= =?us-ascii?Q?mbt+/vJVK7v9dxfn/4OiDGtF/aeHQXAT/CDhxwncoZIaW6/Z2TkG6j8Eftq3?= =?us-ascii?Q?8poIhEoZ7my1R2bNjVyFv5yHhVjaid5+hs4LlWmwDxrevS7cK4Og4SYZUspX?= =?us-ascii?Q?lmYBZ35XvepohFtYckuCdftY1G8ZtWBpQgiCl1MvE33c/zeQ1dig1QN8lgj9?= =?us-ascii?Q?ZP+Gi54vgmA0Jz+LWYuWEqYxojpXPVgmyQxjVCFxe5f1GShP7X9EKTSdAoQp?= =?us-ascii?Q?EH6aE7mgWgadzcnRC7L0IeLauQWVNylY6hrI2RshT7UVfL3n9RMovrhC8WjE?= =?us-ascii?Q?hwidDLUZB1K7QB2PvpgxJl+8X6aP2PRaJp/iU+UTrYqCRcjimGt1eDV1Sfdi?= =?us-ascii?Q?IkDVVr73VnnWLUmkNMABYXJMDBuLBJqF8GO/VOySk/KmCIBJd0tKYGBitC6C?= =?us-ascii?Q?2ySOAdou1h3wurXgkcLIo6H3JkUJeiQtMS2Bc6B8uXyKtXO4/p4vsSgMDiFd?= =?us-ascii?Q?8YhLG47Epph7hSegwAJ3TA7pmh0rbDQpKFA0F1zsF9Comp80fKt/OCBcNA0g?= =?us-ascii?Q?ATLaYeAgRuESfuA1iPPm1urWAe7qIQpqh49yKLALZLuCTJ4gf3WAXc6kHAbe?= =?us-ascii?Q?yaaDsZPmBV8WivfMZNy+7RLfaJV4eF2wlJ5b4aE9avF/Sxg2xpzNEYkYVery?= =?us-ascii?Q?Hur0DNW2cHkadJRGqO6K0RzRQdeRUqx14624SgakE/Wq+KxKH4ft9ZJdbDVg?= =?us-ascii?Q?xN8kT3Rife+GzSZiQ4vuzWfyoNlNwykIaSEDtUmNdwE2IBCjJDZFUxYvd946?= =?us-ascii?Q?zI/dyap5dLHX/NzU9I6tbs1zoVAp8AMbE6QRG?= X-Forefront-PRVS: 0340850FCD X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO1PR07MB428; 23:9d4N7WK61axb/J7KeXJ/V1WGpYJnihcilUmAChGTJC?= =?us-ascii?Q?aBEDfzX4fxO382MWig8Wg1udOyUyh3fGltAJTlZJV2nd3Io2Ja0Z5TSOeWVh?= =?us-ascii?Q?BTiObP6dJuAU+J0j55TbkBWLkFl7TacbV3J38Og0R56Vyr5RCEbcfNu5qLop?= =?us-ascii?Q?+R3lv/Gk6fkk5xkJMDrAbCqBc587Lft8/gn4MTb6Dx2l4NTxX7aAQVfVO3Cw?= =?us-ascii?Q?drrefYU3fq7OusqdZ0ZmP43+rc1MAeXwJfj0DfAvakPu6OVaoS8uwYIH3vb7?= =?us-ascii?Q?poNioQyq+5DpJEhv3BWHirrW/vGVTZZ8t0Ljx1Ie5dWpzKmV2WDBbVf+JAeV?= =?us-ascii?Q?XCgv/x44k698DkuyTgbY74XTjxbGXHiDWHQMZ7jpNi7CgU3l8SjJi8xfgY/8?= =?us-ascii?Q?WWqWuI1xK0g08KdUJKGZfLo44s4gM6qeZ1Y9FZgEdNeeAyaZ/YufiEBACk6T?= =?us-ascii?Q?mVVIEembDqaAuvqMcqGlCxhRIUKzA4rOZt1RTq5wF7N1NK/ShTTCrGu4x6ZJ?= =?us-ascii?Q?7tqzj14BXVFA90An56gur098lNSxhadrAsRlHcdqPMtr+1qp/QmPXPeZNMxO?= =?us-ascii?Q?h66yh9qbqiGq7Mi6tHNk8C+e/o5aEfb2BO30llSz92sBeeg/oh7vHmCOsAXX?= =?us-ascii?Q?gX6qEKPYyl2Cr3JT9gKQCPKK/oVmPUCt+xQIY1YIeP9fLxtWne6GrRuKtcK7?= =?us-ascii?Q?pd7bVIWu0UpDsvZhrZ9LSSRXe9o5MhXPSTv66Y3eStAWzXe1I+wKxq1yGADE?= =?us-ascii?Q?vDLnl0ENdqLSVjIW4uAWmh0jow5B3YP7IQe8kXHtV2c1liADyaoJMPZJ6h9g?= =?us-ascii?Q?wb8Hk5AeyQUOSdtEtxf7CcQbXXNETgippWA+cDCObmKUz8m6QPRdUDaU7myM?= =?us-ascii?Q?3Nb7UFJtlzqM6fX31KWiOn9smcHPLn8tSWP8+Zc0tTtKSJBb8SketYIK9OOH?= =?us-ascii?Q?Ufjp6cfflfAr17zewHU6TNGn9tgUqsQaO3iU3hpd+ySfedWJ6BjleHT6WbN1?= =?us-ascii?Q?wfO3/MrEXn0KAkR7AFUS6zQcdecz3dHlmpPeeeDFINeRrL2/jVkyiwTtHDgt?= =?us-ascii?Q?fwBt7o79U/UM9b3SvwheT0ysTPHF3H5dI09QIFTMRMAfkeEIfSl4qdo3sBLj?= =?us-ascii?Q?tQ7BmEWNkuOHA9WjlrLddKUSguW6u6?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO1PR07MB428; 6:+hKrbKw38e8WMLgLDU8IliXOPm/dqx1cUPJqfRyFbgo?= =?us-ascii?Q?hc1ddy2H2L00VDjc8D0eBYQkrcsskakXAY3wpxrrV/H5VffMZQPyiEiA6l3p?= =?us-ascii?Q?FmrYZTM97cEhXRZE4r6N4hOO765TTampl3+G9RQvVAXryi0FZrX5v1JhqmHr?= =?us-ascii?Q?Jd+KmFPpMl+BCkRZAfLOZFlSRgn+pbXTnl71LE71Ec2Zn6yE920p9RWRDKTM?= =?us-ascii?Q?Xmpx8gY63rMA5pkr5SggY4+8/oi9N/KbxikGFtgUDVhG4zsKuACLpLDUOKgP?= =?us-ascii?Q?vzajqDC2DsIR1IksVCav/6IjNdOKAp/TIhlKrjbjet68EW8T6MbpOXCx2/j1?= =?us-ascii?Q?VEDSZjDqONK8eCkfCGRcuu1ZDLBlQN3yf5+taoHm0jcRTGq7hchBl/DcxKG+?= =?us-ascii?Q?9b9rtwRGTb6RfjNHZoyw5ROI5nbGxQ1OOwyoZh/h4NxiZMVLMXodFOJoWKvp?= =?us-ascii?Q?Uzl9tqUX6YHH980CcE7Dw8i3xMX8Mkb0s16Aj/bUvV5dfZsfiJeNf37zjKb2?= =?us-ascii?Q?JlyYG8nl8zvYWjv9H+KaBdk7zlz9EPWlGbbPjBW5GqvazB39fgbafPKWlpDy?= =?us-ascii?Q?2+IUQStuC8w3FclGSNpioZIiOhn+K8U029bHc+lTxlTAiihhRlw00AZCFswf?= =?us-ascii?Q?jMvaAgfFFHveWVxsGFMRQMgQMyn0MkWLYycTh4nwklzoFloxRKsNermRSG7L?= =?us-ascii?Q?t7RsF+gyMcZj/XLfx486Cuu/pXnTK8CFpwaSQEOGh9n8FSProsCLrz0ExKK/?= =?us-ascii?Q?gbrDucoQuF5TbtOPNcdnEyozBat7eWdZ/aQEEx58AUd6ETQGMnjMVykfon4G?= =?us-ascii?Q?C4k+1DRTeKrfrCirqCrOXQZ8wjE4dTY8Zt0qEEBeGZPbq7ynPdykmJZ5uXSd?= =?us-ascii?Q?o8zg19HD8O3mQqF70kQZ9/pzbkt9G5h7SPjb4AO145c8ZOZeJJ6Y6Tob7hbP?= =?us-ascii?Q?ScPAgPndU0Qy5CJcQ3oFZhicIuorRT1f3PxnJiyX+R5JW8kU5Le7qdtoSqwc?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB428; 5:A2cT+hyB5U8D1ZKVwPFizXao/gn7VP9CK5P0nhdbftzufgQAK4PuF87S+tD2IsPBFyFXNVU33i2gJiSTBvK8COfoLglkrQqpBnn0jc6O4mFAiMag6uqpyLOApG1A6QhGx5kK9zCxJWGeGQ+IgiUSu3PGYkIGmEQ9EIay4eXuAV55W9vGIfN6UjVAIMSjaIlYspDZpOp2IPbE6m1c7Cd7USQc9t6A3CsXlnWN8xC+cK4Rt9oeNrPjHJvx6dSe8k5MmBkspHzQb4ma8C2sdIV0nDKEjHD2+kwTvwabJp/q3kqpmjrczPZ0NyrgS/tlXMWAyf2NyJhsMbIq9JSVV+IfcMDYyXuXDfxxgQbEO698BxK2m3xYGzXIYkVsBqOAhUEyWTbzTPQWXsd+ZlvCWpEH125iahmsDfl3pOfICMfP1GaG6Mmfoe3q0KVNT7Oh7kMwOthH/EOogGOLuxa51unJNsapZXkVwW6V3d5kkQq8hLkxdrRkXQJM9Lu6GlKwZsmk; 24:uRr1njGULPRweVbcvHzUY5hObtcc1Htk9DweGOwzig+3A4Vyi/6C3u875ECiepnrrLhOW/y7UGyW81b9yMe/xLWicBooHYpclxYHuANYgwg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB428; 7:yohDFp9uxQvolDjSeV78bQjlqswJkDru7zRrTEDxh9bx3mEO1Qz8fgnU/nMG4M6UdaVz1HaW0gpC/c+mmhp1GHXqfst+KTSJTyiZGxwIKGmTGIS4nucUrDJa4CA0o3rL9G5uadSpRxxQAlRYdGaPw+3pm8dV1R/k6NVY9ApyI0bq5t6YdQnYRW9YJmK95jalD6sS0viBqDFO52+GLfGQKdu++Vz7hwRlGf8XCROfDAj8XE17EPn3a7ZxNTFqYmUUwAzdhyXG5Jif9DTGM+YZ0HvgsN3xCsCTgR0+SAWtkUJ9wIVoFNuZwDLPJOWCo+sM+/q1JgCChvWyuNgJ4SjQBZcXhZG8V3TGpoBUOphhfkrIgYY7KjZyWcPJNbZRblM78zz+FS8Q+toIaVXmM2heljhQMsvUWkY2a/M7yFdbmBYb6rp59TdPLie/if5iVJYtSACyTguCYcMvHmD8FIfZ+spkwtoy8d7GbpXxC432cmGydKWP0IDE1/X9pOv/riZc5dIh/1/wn64t1Nl7A0mioAMCEj6R5BukQOMrwalXcgcra6oCmTXhB9TO/ZBzgPAykqiDmDeZa2m3vmZ8Okg6P73up4sGZkhTHFCKLlLJVIrRl/zzFq/wJjezvGYqH3dpT11xizS435aeUltgtfekxWp0BkxjT+lww8q0hq7Bx9Zxmm8dmAl6KhUiXZRV+S/9qS3XXMYj1s6ouF4cndn07Ro6R0kKJeNovTZKhiFTLmtgcG4BUyXEVS5u4wDe3bns3U4cpDuBm/5dOyTA6joSLtK3ICr3MsEoQ5U2f3LlNwM= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2017 22:48:01.3516 (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: CO1PR07MB428 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 --- 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 c1edfa55b071..c68c1cb1aadf 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -2866,6 +2866,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 fc2c03bda731..1a2b5b791e22 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h @@ -34,6 +34,7 @@ extern void qla_nvme_fcp_abort(struct nvme_fc_local_port *, struct nvme_fc_remote_port *, void *, struct nvmefc_fcp_req *); 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. @@ -634,7 +635,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); @@ -660,7 +661,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 73125837267b..5dbb3d582e22 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, FC4_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,