From patchwork Mon Jun 26 18:07:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9810263 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 C752160209 for ; Mon, 26 Jun 2017 18:14:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C6159285E8 for ; Mon, 26 Jun 2017 18:14:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BA776285F0; Mon, 26 Jun 2017 18:14:07 +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 CF3CE285E8 for ; Mon, 26 Jun 2017 18:14:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751434AbdFZSOF (ORCPT ); Mon, 26 Jun 2017 14:14:05 -0400 Received: from mail-cys01nam02on0058.outbound.protection.outlook.com ([104.47.37.58]:25120 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751393AbdFZSOD (ORCPT ); Mon, 26 Jun 2017 14:14: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=BaH33gTUY1clWSWZLrru3v/QvnYVf9eLPQsps4Oi9zc=; b=JDyoPKNUnS3p1pQ8J4IVQsQZ5bqfPT3149yc/ecwfuQh2I6Uv0xXTGySmh3uSfaEQ7rLEaIWB+z8VBQV6gKz0F8uFTTIfddxw73WQHmAPTveHmWY9mr4idSxwAxusjqmKb8Bf/9kxv9Gwpm0T/pVDEay49qSsZzQvOkWFdWjhpQ= Received: from CY1PR07CA0012.namprd07.prod.outlook.com (10.166.202.22) by SN2PR0701MB1024.namprd07.prod.outlook.com (10.160.57.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Mon, 26 Jun 2017 18:14:01 +0000 Received: from BY2FFO11FD046.protection.gbl (2a01:111:f400:7c0c::189) by CY1PR07CA0012.outlook.office365.com (2a01:111:e400:c60a::22) 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; Mon, 26 Jun 2017 18:14:00 +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 BY2FFO11FD046.mail.protection.outlook.com (10.1.15.170) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1199.9 via Frontend Transport; Mon, 26 Jun 2017 18:14:00 +0000 Received: from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Mon, 26 Jun 2017 11:13:58 -0700 From: Michal Kalderon To: , , , , , , , CC: Michal Kalderon , Ram Amrani , Ariel Elior Subject: [RFC 14/19] RDMA/qedr: Add support for registering an iWARP device Date: Mon, 26 Jun 2017 21:07:04 +0300 Message-ID: <1498500429-22557-15-git-send-email-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1498500429-22557-1-git-send-email-Michal.Kalderon@cavium.com> References: <1498500429-22557-1-git-send-email-Michal.Kalderon@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)(39840400002)(39850400002)(39400400002)(39410400002)(2980300002)(428002)(189002)(199003)(9170700003)(105586002)(2906002)(48376002)(50226002)(50466002)(86362001)(36756003)(106466001)(2201001)(5003940100001)(4326008)(50986999)(478600001)(107886003)(38730400002)(305945005)(5660300001)(76176999)(356003)(72206003)(189998001)(8936002)(47776003)(77096006)(104016004)(101416001)(54906002)(2950100002)(6666003)(8676002)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR0701MB1024; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD046; 1:LyRuFUY4CgAcg9oqA+xoeOheTx1RYXaQSiOKiPzMrLAJyv1bSTT4YefGldRQuiD7quLRn3fDdvaerYdLqgV+etSZ7bU+XdwczcqBEzDHpYADv9WHzMbNeMuTwX9aPtXWMtpKZjuVxjS8OyexmCZ3DIMBoOH+7DcTUt4bwH8esXbOt4DEeIrU6w0vWuvSd0m87ixjI1oCvLGnsvGXNyHZ/aJplT+yYHHhhsvOpzpOpr3oAj9NNTw5WQLDQbY1nc+uYdEyG1WFzCuqGpxRG15V5RXu53RIKQbkFSguHirf6QI99xDMnoN+kSRko9bLN0J4wKnycCQdm/ZgGeKxSfjePXBij9J2r5ko9UxoLJQGULg8Gkb01cTCUwRXBD4mCar7+IN8/5F6p97mPVk0wvRZ6UPZdq1phZ+1IX2reU1AgyqukiYcHXjbru2ggjpFBK+1OmKVo+yMfVgvasP9k6xJO2Avps9ae46U4LtrdkNXuBRif7av4CiCU5xy0NDSjMUT/m5FRyCEWjuqJZrTwcRWjnlB9SVyFUhK9vaI7ZsJJI7a6A19+LdCvYI6Erd3xirbgyMmfYboV+6YQ1oVGe7pvMOpdZ8SU0tt9bjb3NnmDrYUXU/0yH//GAQwYSV1nzani96/WNOnRHzXVdwsnto63Tp+0raZBhkXMShsg9JoFRVnKylZreeGjo/kVHRETnqRS8FVCAsBRzbP468f8FWn7PLuHzBGEJ97M8ExahQGtNdERubBwXxTM/ahpr3mWY0vYEX1LY5aKAcUaTyVrl54GsHVDKYbEphgIMzWr+MCsfgIRnjcn0ceZm0i79kiHXAF7DtOA0ugVr+rwGReE3AQQRW86xlwiPPI6DJFJ9HFHL0= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6b8eb819-b55e-405b-500f-08d4bcbf1eab X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095); SRVR:SN2PR0701MB1024; X-Microsoft-Exchange-Diagnostics: 1; SN2PR0701MB1024; 3:ZwX4aek+8D9OFvAT6VW/mvl/6Iokdi/15K7HuqBN/6hviywahkVOaO/EnVC5u04bpXigK+NJxqYyKrsaok+6tC4r06x907mlkhmtrvIVqSmans9q3bRAJGSOCGjIyPGiAf0so5pmvE1IwDI+78c/iyq0CZCwBSwOLyi91OTNpViCUCSaZOkNmwTPdjbFUejTTaCjonogTXjhFrgbSMEK87eWw5FAWKeO+n5jUXezZW+Kh8xzaWSoF00ZzWpLt5u9RfaYIHM7sDdGZ7SDwIDE24H2s/Ds9WRNbw+VUfCxry9Qhb4G7Q51waqXq5wTUhWvtKuAEsQE1gxxzgcs3YWW/IyMZujS5c5N5gXZDCn2oClUyrlhPqJaaVWBS17ywGZXIhlQtn9nOYl/BzN+1ZMLoiWD5NS1GfkC658M4t8/TXN/GiLDiUfZoxPt9+dMZwZ1oOGIF0iPokA7DFk6BmCzF99ykTKXKidTk836ybcWFUSrTTr3J1Q4tlSnflwp+40kJDp3hRZ3YgtxjObDzZG+hqgi9hAah4euKAM+ej8/PiIqQd/i8WhGrbz941Id/o8enbdwXB67s/cDyNj2ayWqp7LVZNmLzZanOzkja3+xbKswMc5RLCJWvsF/gD8qFEN0+u/LCxV3oVx+LXC8iZCFZOyOCnvUvWEvGo8BZQ7jjg45CdQs+D0OFv+X+CF/w3rQvgjNvbTtHa/wBrTDk2nhVgN8FdryQHnYMFLlbft7vtA/LqzYaYW8OUUnIa6n//CL08Yxz58vtJ9O/kfsJcbHLVOscxdFETE2WCO6oS4ZyqK4rnRZBX5sIjg5VCdMQIeaEhq1mO7G7ZmkS/kOTn0ecA== X-MS-TrafficTypeDiagnostic: SN2PR0701MB1024: X-Microsoft-Exchange-Diagnostics: 1; SN2PR0701MB1024; 25:X0je99xcGSSRF4wJsXcVzWhV4PUs1LWZUOhLM4kPBagW7pAmuRjy3EYyb1J3mgqeVQ7fgXAEH+FNRe9j47Hrg2CV+WU9hJ0Uzs2a1+ksDl7tUfnB98o9gE9tVlWNuUuW0L5K2Aw42U8SNiD8rFY63uQLZa+nAEBZKrHSrbRdPZHqjhuZKtNyXF1kjbhM5ukOlddC2We+sQM5ax3MlUaiyLKibjDaLJc9wVneB8WSYdUa693z3SuyZgDE+nNEuVlhnFhWSuWfINvVh8dq10oOoUpfZI21o2VEAduCFGeW44BVUQuAss6FxhR2xu9Y/IxCbwYHr9z2RpkcsQscDdVW2D85svOzg4csOQOcACmkQmi4hhsE0M3Rbqfd09848M9jM8KlC5n8awTMEJ370jfwSlKCTGzdlUViA+8l9Bn9BUIBoF3KgH0pAWXnlr9l9HNytxLx7upzt44xWhEQ7fZC2NKeAyLJkpowvSa2UmM9cXEcZ6iDTI6qIMLq6HufL8tYC+iLu4iLyCse+uysk1tRDaGYRZ+5r3cFFE4jJ3Qfu5U8Z5VHlXeOWfsQ4CrQhi4I1F/1EN/x/j0NSncDnbwpnenP47Ig8dKd0GS/YdNwTor33QGwAGzBu9dYMpmd3+9pwjqhJQpYN6n27DR7WtQWpgBAkh+opmLNkBMbEMWKGIwp6nkZw65i9yZHZO+sSb23h2Y9IatGP+eqr0WKB2W4zvO19PmuMWVCFbsKLokinZ1Hs7WzmfFOxqpDmnF/PSSVMfoLq5P8cObzAWwhp0zTIUNDX1gW17H74Q97UvRbwdUEyiQbvbKSFr9FkuSt3+Uxrn0peCIo8LQCuI9RvHcf9h8KQ+5sN8U2y/fdYftwGb0pIavsF4v+BS6tO23vsHocyyxJy2at4bWk3zHz3u7+vQbjriozOZR73UceURQ zFjE= X-Microsoft-Exchange-Diagnostics: 1; SN2PR0701MB1024; 31:FEE2qnxzFlIxBiGmZUbu6qTKURvY/CkGAxQg7ZGEoSCPe9YwleM7VThc+tU8riYLQbc+sUbe/gm47bFKwQm78D24YuWslp2LcYcQDihlfNoSporPibtUrEpuvJbShGD55D3pvkBLptcLMR7hLoOtC6nlD5vq6uYRQTj07ewLllMSboxXMwGVApJHbT8cdbQLy/iQOjOepz2nc2dLFqpttJqJQwFvGfvgnK2pc1f/ZuQKDTaJdOWzHT7uprPD54gERnIPWTudeX5qCaiBZNIgMZGfoRGlZApYaYBpeVBJbMCicdfOrIu63Hei4ycxs9hDsXL+1PI7eRi0TCS50x2QtKHJD3RZUGTaY2QYTLHNcOOBOFM4aQBV/sYYIjta430muVjIPn1oy90Re7jWsO9C4RjM3Y8fMUb+qvWNMXguFPR3pQHzYo56BS3mgOCahToRh1GaXZQfyaP6SGbfzAO6NPG7858Fku/nb87Gc6/va+70NpIllLdioP777MT6FcIuMuHiCFjm3evxvu7vc3GEw5zL0lPcisRWIr4xOS0lCtRqmWteedp8MVUmTBA2vGf23DjgniEHqCgaHhGGr8of6PrIUQwkfxPgON9mpe4RNWZbwkeI8cChxFr6UMhKiwfTjmE4v20FCy+1A8jpFdcbG7aSa5geEm+bY6FMawKnttvrGblhxfeQSMVXWO68/z55 X-Microsoft-Exchange-Diagnostics: 1; SN2PR0701MB1024; 20:Z11E1xmclo+FdS+zcq6EMI7cd28XIiQSArp2lTfXJPXYTP2M2Qp7QbO33daWN7AbXiqGGxb6Ny0OeQZ+n/zmB6kH2Zws5Fgg7bhMa2fcDho5aQb99QU0nWgxVSoevYm+XFDTXpt9WfxwUvlt2Noyq4hnkMlCqmTngHE2iVRbtbL+BIaiwCsL2yA1Av/7oCNWkAxoSsBMBwJe3obmvuvCWUBTHfC4A4nGu9c5skVt2Icm/0hNtV/lZZRBPfbOAC8cMNB8SLuLeelyx7qIH1vXlEwCMoZlqnNWawiy0j04+pFm5qpJ2GqAPIw4/BvuIhSdC/TmvONzEjL/XfYuY+aFDbbY89zU9XPT+UCBm1FFRwtdDHL3Rl5kbMdiqp0hQoggrZPEvhhZeQhIQQDn2U7Pbhpumn7vupaT1eWDDWmruIfwVqjzHlVbvCQPadiLxDZeSBqdrO3tvkgfTCn9FXX+TgBkpLyR8L+x4swM76EFDCNkHJ0aeAQ/m1+ea7gr5x1+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13016025)(5005006)(13018025)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6041248)(20161123564025)(20161123555025)(20161123558100)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR0701MB1024; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR0701MB1024; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR0701MB1024; 4:EQxtf8UduUvwsRt4AWkMgETinNSPjAE61zyja6NJ?= =?us-ascii?Q?vRhuGL6tmRu8rbFt5qMb/Xce3KJabI2d1knp3xtW4ULAivgeYQ15y/IpAVBS?= =?us-ascii?Q?0edh7r02q3EzD29ybmVS7f+wfQvBU358tyKfmXZqJFqyl2OwA4VFyZKq5ZfL?= =?us-ascii?Q?KjILhFDBF62gq3kbLzOqxIi4fin9/jIaKTLc4YcnWyRm8xyKvLyiDcR/BWhB?= =?us-ascii?Q?3hN7VhfPGZgwKnQ3Bu7JE4/4WDycEH1COwBpB4otZIvsEHJezlo5cVm+RTbL?= =?us-ascii?Q?Jty9tCKxVrF9QBq9RpPbe1RfASUI0cRlyQPjo1lSZBqdwqadjEo7jv0gEjzS?= =?us-ascii?Q?+181Q0W9VHc/3B8ATGx5pLgnxYxhEqoN3xXC1UtLTV2TtYqvwbq8ZyPTwaEC?= =?us-ascii?Q?BQ5cJVM50Kelj9MwCAD+lcmnaSZITYx7gZ0rjs2cvI+/ccBERK03ENkuS/+X?= =?us-ascii?Q?gUUFGR4ieLpghOUAEh3FZ+FUrH1B6QIzWbJQPWA8C5Dkng+hwhEqynQqFyNL?= =?us-ascii?Q?cM4Ujb+PNck0Vs8gIeUGksjkmMw1+7XmdQbhRe0Ozlo790KUcjD2lMGY73Lj?= =?us-ascii?Q?WNozzKV9CjSwT2a4T+I0XIg/M0iGcHWnaTSTkPOsRg2TbYsdXqfAYK7uMJb8?= =?us-ascii?Q?58R6xWeW+IA+D1IedE92kLheibACIu726YSQbiLeO8CsACrpJkL1k+hG0wrA?= =?us-ascii?Q?ym4nsQYdPEH0FvbTGBt2pUzQwKDWdjYEv3SEZwgsy6xjrPk7+e0wtllmXaH2?= =?us-ascii?Q?4pm/6gkzQGcDDlIjTGlXreDhECqMsyTzGjMjKjHT8RIXo9KwLGgxl9BOJ5ga?= =?us-ascii?Q?ejxiPcGbWZw9/cmOfShhGQBGHFdNxyC9EqdAuIbD1s6jOCeSW6leG92S6S8b?= =?us-ascii?Q?OAhvHnr1Q7paHv5734WTJSTofVS12RGSIvVuE+UO3kJf3RSBVO4Y7zlsR+Km?= =?us-ascii?Q?sf+eqZPW0+j361J1+xv6UAB0BNTAk+5Cl7mvKmGcCS5Q8gXnrGqNumB4WT83?= =?us-ascii?Q?9QXXGDTZTsie6IL4x2hox2CjAwZkqWts9xNHFdkr5DGReM/UOfFiYOj9t6mg?= =?us-ascii?Q?qtaKdU8blT+WoCNHcIvpr6IzJlDpfLkMmDVDSQnC1vXzCKIgp/aR+6UMYFlg?= =?us-ascii?Q?oA5yFqSafDzNoUJ21sZvIbtDTWiVKtkAo8izZSJU/m/MWFeFhlf6BMLpVXQf?= =?us-ascii?Q?nIlBYuCdUdz1G9VZtPZmQ46rie59J0aF1iu/hkJh+R4qcI35yB1hZMpusne+?= =?us-ascii?Q?0ZxFpSHmV1zQYZs4wrg7ut3X5umv7PPiRLHj2SaN?= X-Forefront-PRVS: 0350D7A55D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR0701MB1024; 23:niSykXtsdrYQJosR4KYkCV9vlGGKva55Ih36KLl?= =?us-ascii?Q?h6NZtVACJzgBdG/g6KMesQ/N4B5LyvS03J07RGovMcx7cIIOV/fdB4St4+KD?= =?us-ascii?Q?NJf5H9WoP8khdL6lxqZGO7Y1BG4sZXP2BaT/p7JLySZzDzblmtsUu5xCDUPZ?= =?us-ascii?Q?4tzegrjkU6/HYCBPEjXs5PmX7HY9bYdVdghTgpJ0wr1wwxOGnXBWmH+kgp87?= =?us-ascii?Q?K31RGcBzlGc/zYidyaemM7gxgi/umdZvPNuDnl+BfMzZHT2KEw1qJtO0j5or?= =?us-ascii?Q?3ai6R+qVxYm8XdOFqqL+im5kM//D9KUoJ6j7NKYJFjIAU/haZDFgj4lai+VU?= =?us-ascii?Q?enGL3eImyNNWr+J7L+OnMJFXwHH/FfIYAVwWZAtCDn31XFH/q+whWlbRrsDN?= =?us-ascii?Q?SD1zRYhMT5xQCvJGNG+PYNaOeoNYGWAYsg+2kLb7rvaDXH7Eg0y6ed3mVsQ4?= =?us-ascii?Q?gze6izEHryn+HlwPfN01qhnqiDgPj8B6SMy1lR9IBTYRVmPHUGfNrFhEwbc7?= =?us-ascii?Q?aSknwa3Vw8Zce6X8ITbU1Ar1hZtuRuTIJHEFvhaQMOyBMiUXSKX6rXbZ8B15?= =?us-ascii?Q?MVVEBmASRmDgHCSAj8pu2W4j6nwk3nGgguD2LdDNw2g4SH2aTiUbjYmGcQ5M?= =?us-ascii?Q?4sJU3/TKdtYSyoLZ6c4FVyC3Wbhk4SanzHykkJiW18mFyLaS6zz8/kjkZ321?= =?us-ascii?Q?7CqilloCjzgUoF83HRmVWhzZY69MGkCD5UTnPNZDzOGa/PYXMjjuP99cD60c?= =?us-ascii?Q?DAZARXAFwbltgKhe6WblGV1zqC0DeU0gqqwt4paLDNofKGyoT6bXiKSbGOll?= =?us-ascii?Q?1VatvYY7khNc5w9IzpASA9k1ycj4snIuoGV2dIauVI6ur7G0PZTDr4DH2dRC?= =?us-ascii?Q?eVOyTK2Lq+CcWeX2G7ERdQRsKuPZae4eaTgRL/k4o4lSGGIVXqGXKD2m+hRW?= =?us-ascii?Q?/ff8BAY5sue7Fj774zGvUJ4pDEqYguJbkdACgeEZ8YvMRvxPuTzn8UwZROYY?= =?us-ascii?Q?SSqid7RCVQ9xUhaEnUXjFfWDqf71/jK1GoKGpax/aV5x/tXpJxFGW8xyP8lM?= =?us-ascii?Q?ND/IxCjM=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR0701MB1024; 6:JNPnhYmNr5es6GTVsrHRrQgBZgrC5x22AsSgqPCX?= =?us-ascii?Q?9h1hcFyJtmXi87YXYpH7XwbG1ICTwL1+ViqsKuhQ/H8gCggm8e6RbeEvFycJ?= =?us-ascii?Q?xBotYjyrsNtP6bNyLmukLBTf8rIMluVHwQ7DA+vxwqn0rN6TiO2igSy52hPg?= =?us-ascii?Q?ZSLllzhYaoqNjjOwORQV6EERJUjZ3dKYUtiT/f9jkbBg13BIyXdITLe5u5Pv?= =?us-ascii?Q?ditNpDmzYmOu0hTLfvVLHFM37D+iljw2u526/FZ0qJoZRR8k3qkP1jTkyne4?= =?us-ascii?Q?0byUzELA0qTwZIN4y9PCTJO4NqUCKLLDjmF6Fgs9RJwRrU00sLeJwjSmu5So?= =?us-ascii?Q?lJNYioTBSo/imx1gP3eZ1NLz6hLn5J238uQ0rDAS3esRGWYTAVqIharAqDC+?= =?us-ascii?Q?4juPMQ6btSAl6mMgeMgruWSO2BPW7IDnmwiZTipiBUGuciRlFxg4YEIyqYWk?= =?us-ascii?Q?ItuEwDtI1sC541HzcA21g9n03FSI7pZZsCu11ntfXlRaZ+qvI6EizcqQcmmU?= =?us-ascii?Q?8sXpbFLzUlYFpYgc0M8OubfKlGQcJN9hdEQBrNycTrCACuW2e3JN06Vj79cr?= =?us-ascii?Q?4zwzMyWxihw8nI2My2zDBj4AmoR68/sJObz88A3Spef5O918Y9UKr6ytQDjY?= =?us-ascii?Q?axyac/ptYKTRXi06AT5P8aXIMeTWgaX9ODGFr3Xz2Lg++GZv7a12hS1osz2h?= =?us-ascii?Q?QXKLobZbXotNOuTKyfiM55B273v83vuSdW27abeRpj8wEC5wkeUIp1PImlZl?= =?us-ascii?Q?x3+kwzAbwK9NZKsZ8KGv8SgASGY0dnOIG0Pf9Lqe+z0dZDs8Tr0diyQnSn7F?= =?us-ascii?Q?1PP7t23mawJMTQ58fNb3qQQrLE1FmMN/vbkEsWEOJsuqlhjGjwdjA/3I2TtW?= =?us-ascii?Q?S9J1TOthhFpnGLTtWVSOnd5wSVhGKao91AOBlNFfTd1BkATl/l1tayzwnXrF?= =?us-ascii?Q?1NoR/hf3VUwMzao8Dq+d/X+kU2Y51A71RHnuzEytCzpXFyx5miz9ZUs3pdit?= =?us-ascii?Q?rHw=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN2PR0701MB1024; 5:+mFZcGP/3LcGyXMbHBR9AND7Ke/n1dhKIolVoBKbek/WEGDpOcuaoZ/4VSfu9pHhkpXh8qzQ3zR2rgwvo31rLwlmrNI7/QcFC4sYOecVyYh8k/fQw1k1Eg9RqKImQB5aCgF4SzzEm/J4wIX924MASsLVwSusdMUuCG3fBLWzObgZudEKlLGAd1yficnSTIRnBoaDtckA6ODS1PDtZpmUd4IoXEl2uQUkcmzL5P7ONmGRoQApbJr8DNEMKz2MbZZRoYVnx3d7sVlmKfrB+iChCq5+tkKu/qGmMfSnKRmuPXCfyjCtWuWelfi/6P/f+hBDi8SCWletqsM88ss/JnBtLByKs2xVQGzD+djBoTDk78tVke8z1/xbQpu7HeOXnY8Ce4M1mmqBfSbMZkoDOJhEWJQMEjKFKyZpvgvsJqjlHxgsVXIgypxmDBKBAAMd8awaATu/uzNDxTh9kVKRMmgWtudspNvnSXy4wI6aSH7WpkMExhYLMOerv61UuKb9NXV+; 24:JYiiOkl+4VQ1k3mILVNnHksGFU4Sj855qUPJgeF1fwYTtQRFwa4Ek1NX/mwU7R7lXNhjnpNlVpul7NclLrA9yp1qzMo7xX+YGy/8AYUXcBU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN2PR0701MB1024; 7:XSD3GkoeJEG5OeoICGjDnXKxpYExTXmd0KD4XDZYCY7Vra9t4qHgV+joCl4Pz2COfAF0LdSOnBLNx64YfBakg7t/3CMJB2Jyz61rk/ED6ZzqKxvI/GRX1QkyFsAmHWXDZwXUgm49frU8WEBS2yZX9mJr1n1zi6bH7MgtJRyS68z0WyETX1SnpT13xwSNm7/y8IQ+4X454t9kKGHsctbccym68mXqbhx694BxSThfNtQjvxMRdYYmiexrZilkjF9ls3I1+7nYguAHpgz4MupZC6VwddPEG+smA74SIXYdJjDuf4hqdQIoTvHhCfrecA4/UN6zRHeGlLk/fffoW9dYZVVlJXyGzc64LdnzTQTr0s++sUrndQwB43/Jo6aMlG5Ki84Pikft2ueTXFJjm1qVeZ83HXBLmFHupoTYPLYcdIZoUFv6l1ckVM9Hv8QvSeBfcqHbYR1ho6Gxf5t5+ba1NuorYPeeOml5cvz68H8dYS1MZWle9e4Ysk8wdUQsSuhT1JuE8QIcZ6KqGrmPJag26kOVsJGJ2uKn7w4mSVrZltdD4Tngn2htf1VcYqUk43YtvuKVPPfpfF+hUNnWUPdci4PJfufc82AP4eAUVs3W3V8RS4TfsLuHT6edPln7pnDVR53dYDIjdqlsPxuAW4gqetmiEsm8X2mYzkExPyMnEhmjY2PHR9wWgJ9VzCPby7pFDYynK3ZpayNZPim4NZJvig73uTuyEkqtuwcd3tGiCBUbZmXIpXu8nJJ2+3dN111Yv64eRnzT3O9A7p0X7Euj+cF+tVk9qHF3HbqwW9627Go= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2017 18:14:00.3373 (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: SN2PR0701MB1024 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There are slight differences between iWARP and RoCE in the ibdev registration. This patch handles the changes. Signed-off-by: Michal Kalderon Signed-off-by: Ram Amrani Signed-off-by: Ariel Elior --- drivers/infiniband/hw/qedr/main.c | 84 +++++++++++++++++++++++++++++++++++--- drivers/infiniband/hw/qedr/qedr.h | 3 ++ drivers/infiniband/hw/qedr/verbs.c | 34 +++++++-------- drivers/infiniband/hw/qedr/verbs.h | 2 + 4 files changed, 97 insertions(+), 26 deletions(-) diff --git a/drivers/infiniband/hw/qedr/main.c b/drivers/infiniband/hw/qedr/main.c index b5851fd..ad227b5 100644 --- a/drivers/infiniband/hw/qedr/main.c +++ b/drivers/infiniband/hw/qedr/main.c @@ -33,6 +33,8 @@ #include #include #include +#include +#include #include #include #include @@ -94,8 +96,75 @@ static struct net_device *qedr_get_netdev(struct ib_device *dev, u8 port_num) return qdev->ndev; } +int qedr_roce_port_immutable(struct ib_device *ibdev, u8 port_num, + struct ib_port_immutable *immutable) +{ + struct ib_port_attr attr; + int err; + + err = qedr_query_port(ibdev, port_num, &attr); + if (err) + return err; + + immutable->pkey_tbl_len = attr.pkey_tbl_len; + immutable->gid_tbl_len = attr.gid_tbl_len; + immutable->core_cap_flags = RDMA_CORE_PORT_IBA_ROCE | + RDMA_CORE_PORT_IBA_ROCE_UDP_ENCAP; + immutable->max_mad_size = IB_MGMT_MAD_SIZE; + + return 0; +} + +int qedr_iw_port_immutable(struct ib_device *ibdev, u8 port_num, + struct ib_port_immutable *immutable) +{ + struct ib_port_attr attr; + int err; + + err = qedr_query_port(ibdev, port_num, &attr); + if (err) + return err; + + immutable->pkey_tbl_len = 1; + immutable->gid_tbl_len = 1; + immutable->core_cap_flags = RDMA_CORE_PORT_IWARP; + immutable->max_mad_size = 0; + + return 0; +} + +int qedr_iw_register_device(struct qedr_dev *dev) +{ + dev->ibdev.node_type = RDMA_NODE_RNIC; + dev->ibdev.query_gid = qedr_iw_query_gid; + + dev->ibdev.get_port_immutable = qedr_iw_port_immutable; + + dev->ibdev.iwcm = kzalloc(sizeof(*dev->ibdev.iwcm), GFP_KERNEL); + if (!dev->ibdev.iwcm) + return -ENOMEM; + + memcpy(dev->ibdev.iwcm->ifname, + dev->ndev->name, sizeof(dev->ibdev.iwcm->ifname)); + + return 0; +} + +void qedr_roce_register_device(struct qedr_dev *dev) +{ + dev->ibdev.node_type = RDMA_NODE_IB_CA; + dev->ibdev.query_gid = qedr_query_gid; + + dev->ibdev.add_gid = qedr_add_gid; + dev->ibdev.del_gid = qedr_del_gid; + + dev->ibdev.get_port_immutable = qedr_roce_port_immutable; +} + static int qedr_register_device(struct qedr_dev *dev) { + int rc; + strlcpy(dev->ibdev.name, "qedr%d", IB_DEVICE_NAME_MAX); dev->ibdev.node_guid = dev->attr.node_guid; @@ -123,18 +192,21 @@ static int qedr_register_device(struct qedr_dev *dev) QEDR_UVERBS(POST_SEND) | QEDR_UVERBS(POST_RECV); + if (IS_IWARP(dev)) { + rc = qedr_iw_register_device(dev); + if (rc) + return rc; + } else { + qedr_roce_register_device(dev); + } + dev->ibdev.phys_port_cnt = 1; dev->ibdev.num_comp_vectors = dev->num_cnq; - dev->ibdev.node_type = RDMA_NODE_IB_CA; dev->ibdev.query_device = qedr_query_device; dev->ibdev.query_port = qedr_query_port; dev->ibdev.modify_port = qedr_modify_port; - dev->ibdev.query_gid = qedr_query_gid; - dev->ibdev.add_gid = qedr_add_gid; - dev->ibdev.del_gid = qedr_del_gid; - dev->ibdev.alloc_ucontext = qedr_alloc_ucontext; dev->ibdev.dealloc_ucontext = qedr_dealloc_ucontext; dev->ibdev.mmap = qedr_mmap; @@ -168,7 +240,7 @@ static int qedr_register_device(struct qedr_dev *dev) dev->ibdev.post_recv = qedr_post_recv; dev->ibdev.process_mad = qedr_process_mad; - dev->ibdev.get_port_immutable = qedr_port_immutable; + dev->ibdev.get_netdev = qedr_get_netdev; dev->ibdev.dev.parent = &dev->pdev->dev; diff --git a/drivers/infiniband/hw/qedr/qedr.h b/drivers/infiniband/hw/qedr/qedr.h index ab7784b..c52fde0 100644 --- a/drivers/infiniband/hw/qedr/qedr.h +++ b/drivers/infiniband/hw/qedr/qedr.h @@ -44,6 +44,8 @@ #define QEDR_MODULE_VERSION "8.10.10.0" #define QEDR_NODE_DESC "QLogic 579xx RoCE HCA" #define DP_NAME(dev) ((dev)->ibdev.name) +#define IS_IWARP(_dev) ((_dev)->rdma_type == QED_RDMA_TYPE_IWARP) +#define IS_ROCE(_dev) ((_dev)->rdma_type == QED_RDMA_TYPE_ROCE) #define DP_DEBUG(dev, module, fmt, ...) \ pr_debug("(%s) " module ": " fmt, \ @@ -161,6 +163,7 @@ struct qedr_dev { struct qedr_cq *gsi_sqcq; struct qedr_cq *gsi_rqcq; struct qedr_qp *gsi_qp; + enum qed_rdma_type rdma_type; unsigned long enet_state; }; diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 16637ec..9b74015 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -62,6 +62,20 @@ int qedr_query_pkey(struct ib_device *ibdev, u8 port, u16 index, u16 *pkey) return 0; } +int qedr_iw_query_gid(struct ib_device *ibdev, u8 port, + int index, union ib_gid *sgid) +{ + struct qedr_dev *dev = get_qedr_dev(ibdev); + + memset(sgid->raw, 0, sizeof(sgid->raw)); + ether_addr_copy(sgid->raw, dev->ndev->dev_addr); + + DP_DEBUG(dev, QEDR_MSG_INIT, "QUERY sgid[%d]=%llx:%llx\n", index, + sgid->global.interface_id, sgid->global.subnet_prefix); + + return 0; +} + int qedr_query_gid(struct ib_device *ibdev, u8 port, int index, union ib_gid *sgid) { @@ -3592,23 +3606,3 @@ int qedr_process_mad(struct ib_device *ibdev, int process_mad_flags, mad_hdr->method, mad_hdr->mgmt_class, mad_hdr->status); return IB_MAD_RESULT_SUCCESS; } - -int qedr_port_immutable(struct ib_device *ibdev, u8 port_num, - struct ib_port_immutable *immutable) -{ - struct ib_port_attr attr; - int err; - - immutable->core_cap_flags = RDMA_CORE_PORT_IBA_ROCE | - RDMA_CORE_PORT_IBA_ROCE_UDP_ENCAP; - - err = ib_query_port(ibdev, port_num, &attr); - if (err) - return err; - - immutable->pkey_tbl_len = attr.pkey_tbl_len; - immutable->gid_tbl_len = attr.gid_tbl_len; - immutable->max_mad_size = IB_MGMT_MAD_SIZE; - - return 0; -} diff --git a/drivers/infiniband/hw/qedr/verbs.h b/drivers/infiniband/hw/qedr/verbs.h index 0f8ab49..1a94425 100644 --- a/drivers/infiniband/hw/qedr/verbs.h +++ b/drivers/infiniband/hw/qedr/verbs.h @@ -39,6 +39,8 @@ int qedr_modify_port(struct ib_device *, u8 port, int mask, struct ib_port_modify *props); int qedr_query_gid(struct ib_device *, u8 port, int index, union ib_gid *gid); +int qedr_iw_query_gid(struct ib_device *ibdev, u8 port, + int index, union ib_gid *gid); int qedr_query_pkey(struct ib_device *, u8 port, u16 index, u16 *pkey);