From patchwork Wed Jul 26 11:41:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9864611 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 A179C6038C for ; Wed, 26 Jul 2017 11:42:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A984B28634 for ; Wed, 26 Jul 2017 11:42:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9E36F28753; Wed, 26 Jul 2017 11:42:47 +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 C0FFA28634 for ; Wed, 26 Jul 2017 11:42:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751615AbdGZLmp (ORCPT ); Wed, 26 Jul 2017 07:42:45 -0400 Received: from mail-bl2nam02on0082.outbound.protection.outlook.com ([104.47.38.82]:53639 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751616AbdGZLmn (ORCPT ); Wed, 26 Jul 2017 07:42:43 -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=o688JxH2wPnCpie8ii3ysD4qIJwOtPvcNu1eNEAn27Q=; b=MiR3iu5CTyaBxT6qQThhMOXx0AcuIYlpPQQbjaqB3sUmkonuFVGQSNvlaBWz3FqVsq6cS4r8LCBufXjo3wl7aHVJLZGjcKm8wUI2xG5Xr+eeM2rn6GIFA66uSdz5Tve+H3pwQkc/0AFPaf/DehgHKWNxZChXvTvrM+DSFdIvYiM= Received: from DM5PR07CA0038.namprd07.prod.outlook.com (10.168.109.24) by CY1PR07MB2184.namprd07.prod.outlook.com (10.164.112.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Wed, 26 Jul 2017 11:42:41 +0000 Received: from BY2FFO11FD017.protection.gbl (2a01:111:f400:7c0c::197) by DM5PR07CA0038.outlook.office365.com (2603:10b6:3:16::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10 via Frontend Transport; Wed, 26 Jul 2017 11:42:41 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; redhat.com; dkim=none (message not signed) header.d=none; redhat.com; 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 BY2FFO11FD017.mail.protection.outlook.com (10.1.14.105) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1240.9 via Frontend Transport; Wed, 26 Jul 2017 11:42:41 +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; Wed, 26 Jul 2017 04:42:38 -0700 From: Michal Kalderon To: , , CC: , Michal Kalderon , Ram Amrani , Ariel Elior Subject: [PATCH for-next 3/8] RDMA/qedr: Add support for registering an iWARP device Date: Wed, 26 Jul 2017 14:41:52 +0300 Message-ID: <1501069317-16601-4-git-send-email-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1501069317-16601-1-git-send-email-Michal.Kalderon@cavium.com> References: <1501069317-16601-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)(39850400002)(39860400002)(39450400003)(39840400002)(39400400002)(39410400002)(2980300002)(428002)(189002)(199003)(4326008)(81156014)(478600001)(2950100002)(5003940100001)(48376002)(626005)(36756003)(8676002)(107886003)(86362001)(5660300001)(81166006)(2906002)(6666003)(2201001)(104016004)(50466002)(50226002)(38730400002)(305945005)(105586002)(101416001)(8936002)(50986999)(106466001)(76176999)(72206003)(77096006)(47776003)(54906002)(356003)(189998001)(69596002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2184; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD017; 1:Lc4OjZ9DmU8sy/z+f5OIZasMDNuZwU4zveFtP054W+WNidT5SL5PurUbbx0a9ljgXup0Xk2vbi99ax9Bpd1mSvaw34uj1mZ356yRm+SX8ayNQ1RA7G4BJV37vwu8HA78HmCyP7TngQUmDiAUEeiF5Adazp+gY93QXfuZ5iuBNdfwDif+WlODtav28YUfGWFgJG5dwkV8J2cnB2Q1E2q8Xz6HPb6931cjh9xHqXNu9Ol/yGNXtkPZ44B2MVJusZ1DzyVef76W1Ldv6UWN0i2f6jzfpKLWsyq6b4IZhdKANBWW9DyUwdHpUL5agbDNhfTnyrAMk3g+eURiQNTbt2PoPQ8y9W8/aHzkFf5R4mUUgWCzCQlHdWyl7viP9KqB92UCS0IpE/gPgS7Etgsu4MRIwH9FNkRtNWRSqD10K46GXdyhkP4tDigacShIJcra7xYXXp4lU7zMabTRjVXTdO9zzClOSJfp5IPHJ/1viiP5H7OSQqgn5abcC4A3WUnGVpgppAL44jhtXXMscHS/TaOLwI/IloKfteJMK0H74hpQ8sh3OvZAvESfszfXfr8TVX9unK0rmzpPDcBePb3TZSaeANhpEIa/ejHuDSvCIlJ/m4AQGjlZrng6JoSKzXFvIuHHBx+jwOL37eGwVtTqlKJ5JB8x2jGAZBxg+ELR10gjtExV/jXOy+pQZjraLgFQ2slmRhVn0K4Jul10d9Fhk2CB/XPjrjbQKezujkUsf+3U8UZLZs63fwxkoxoRFuv0LilI6192pAwCRvznt2wp/eiu3XQR9bSGKtF6gw+SqtTJog+6yeY+16eEMfWSiu26R0wYtBrppZSwxGaz6z4ylo0RhA== X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9e26a69-1776-4997-12b9-08d4d41b6c4c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR07MB2184; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2184; 3:pMBm8Y/nVPsw1VDEj5UrXha9nGD6rxgUff4znBAGhpR84bStu5+fi48fDrR8UpKfx93tyRVz6uI8Z+u1EJe0P0+F/lFL7EMHLGm7rFmYQO+0CVe4FoMyP+mIiecn7MZnHGzjSV2vdS+iFRUuws95lsUS6Iz0bNs7xKk9/vhhy4Q33a15bNsZIzW7AUzcYOzINNbJc+OP4c3lRQMFVBqdMb8+/rlh2Wi/hUP4pNVAtWRZagO33WyXqUJ55BVMi1zGoKRBCq6Nu40ohoDH0rgREZFDs0zLsM9jn9OAN3j59Hkc8beCD/hcEItHRijIm2otYDcAZNC5ozMrkmnzojKK8WqyQJhDN27wlhJJ1UIskdEBextm+7bK12JiEn+XKRmaGmMMWkAZL79ZJSSfCECLnFlrIH1OFU9RaSA6MmieoDjsfp53SzfN8YLTPb6JUt6MPMRFfbPQ2gZwdT0GpJ9t/tPqqP0y8jFxTXFYGS3dLDf8wVkMs2ZCoQsaCPw5ahAgxykLTVkCP3GQD0eiE/zP3n1crilRtrRaNxJ4lr5WY5vT7VriWWCXQMJuQhfDToV8lmnFk7pM037gq7VGyy5mW0C1RVnmgYd7LF0qdIGtH3qMPzHwEdZU095OqSkLTigQV2FUVCqwmUqll9Mc3IR9ARxWv5WgXc/bYljrzC/6CkaEUhItZ5a8iza9wn9UAy/jAI6JHofC9blllPZKgpWWEtettvuG+VDg+rXXfjTFczVguCvYp/dW5xQgxjVu/uQkkA9koBv1s0fXaQ+K39ZYrr3RI4X5ieS0wurLyqPQqXlhUyl2lAoTBXwmebL7xfJxOj8T3u/XWpWMT2ODZFdtHrCwjCUwHOEcHxbu2rLaRef+c12z6MIvEbxHMwiwYhvBDJ3l7oiyW2MXbqN3qsDABzGq4mY0czCi+EDAtvwulq lGG5AK4A71y94WUFZuY1G/ X-MS-TrafficTypeDiagnostic: CY1PR07MB2184: X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2184; 25:7jFgYDvphxs8utfoBYFvOviTzfCRwTbJEzYrcZU6jGyUNZm7nR6Vz+eaPtxDTI7OBrisakl/MGxxMs5c/mnIrYsX1lwxjiw0ZgpZn3JP9hScOM4DyRymv41hGm0fgaZuRfWj7a+nZjSD2ttmYrNMjh31EmW7+zQUUDBkqRAVAWCVbU+XtqQanriewU/dnEyTLAFxOcx1bNCMVYAS3x4ieY3Ca+mepLTRyowoMmV0UR/JPl2Kw4fpViQ1nxMVQ4/2eAz9WeWChbwhlPVllYcUeWgZz2cYyullkimpl8CPjyr3Qo0cWSOjJ4W6FJSPthSQWf868pZ4J0GZI1kpNaoRvasnDfv7eZjGbY2o4iW8Swn6lIZ7eutZC+4hBCscpV5XfV6Z9Vh/z3V9eM9tuJyRXqjdaRACAcE+O36LGGqmktiTzKUIkAwtI/zeVfJ85bPl4PXp5BP6sUKxlSMlbG4GODC05FFP+9PhCBWwxlRw2r7/h/+Mvpm3kWDn/kBGNFTUt225PmRCSX1vRtqsS26dHy8+lPaH/0J+gWI8twYRE80yaijUECZSmxaWPajQUvWXMRVZcNW4xjxav9ZoIABzh77hjof9dps6TSvf7HhB6fc9jMhpfRkPo2LVztYk9Gqg/2Nnl0LU5FRtNjCI5lCLkMsV5f4xpLsBXZZasmrSRTemR1vOWA22cUkuCnijgBL5vSo+aiAYRiT8f2J10ed8VS8vR5Ar3SNFRQk3H3tb28WXP5+2oNhsjvcWCE5qY84T5secZsaE3hVo4BQpg5jdX92u2oDYOQL/snW5Tg9vtIHRRbx7YNNx094PpbI0Qft56bmjJsylYvyHAW+1Gy1T+8MQicwoymdZUoeE16P/GiVtxlQdlpe0gjFdunvLboR6AZ0ZAM68GonkzJirWaCpUYhKW9KuoPxjjPlxU0sp5 h4= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2184; 31:LcgQyfzB5eo4HwU/A89QAHQ2YhIBErVZ15bmEjKqaM+IodvASnZ7Vp4M0diA1BQlwq/JYrl2JoyF8xEK5isLax1rZUeRbUvkh1/Ej9m6OReqWk5XcRiu8jk6kwoIHSN2B1/dJAp+1L8ll5S1bvPNhk/mmvNzsI/vJdO3tDUyfpLCut8fhS7XRvBmIkpt9w0d18jHWLGANwEUAGXhxCrAhruzsm5SdjIENHJFCGQVPOO+iFxulzAIR4kG/91XQG5gAtvfWj+cPidCU6htrb2BLG4MM9ONb3cDgcNk5V2NtQYamXZYWsI5B8bnDijjag8Lew3LQtg4CW5gbyqAL8Ft3MJn6NZfJIbkzwO0RL94/PDpNn0IubNbGF307U9+CoPtXKBvbwodGVwca8xGGMIBkTvGXfnQPvlNZF46LJevIAHq6NT9eODgMN+Nw/6dxL/1zoP3+JGGJUB6JReddXrCfZV9cou+fpx5qVi44r4ojJKotlN66sHaW7WRN/iRLU2wjAN9QJnPkg8lcJet0VbWSNKjDvSsFVrKqb1z9sgs+gdAJ7sECeZTmn/bI1jjtpaP9P6UQGhGju/xkgukJLV9NOPh71+MaurAvhsFa+Pr+N1ape2PQjHam0idy1lh337OmhPWHCvU095Mzo8GqnjI4Rn2EQvpKZcDBQhIH6FvE3k4P2TOIWrB+gyF5IrIjRmb X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2184; 20:6ZfC4eAzeVezKPFljjTux3zygIf+krKQBMB42PRaC+uMyiJ9PsrJHQRgeixThdDrGcjVNYmK+zFENhU+rn9dkY+8aoxJ6aj6nMbYTVric8hndRPYnxJSdj2WULuN9nFG20Z4PmGgo7qrXknJgcoDp5zEpuCQ+cdi+I0hMSgtuw7JfVon6eevVUnRC4cpvVigg2W+Ss5McMk5a9kqm73Ws+83mKSa/JblLA2HS0XQmGUR9gNFTr0fdlsdrjm/7AH1IeFcWyXPmX8qfmR7NknzBBedE6GI+liTg00x+/gZKBq0ghoNHwFyknX6K2iSW7qfWhQQoh4kIugxBQmoaVFRnmDK/ITKcQFByE5tHx8ZX36fRDXVNciBfPRQsTKV4OeXiI6HBp4RA5/sRn6D6XcxJlUjG9f0t9NOa3HIIlLPNfuK9PQJY1Mz6YbVZRbKnIu3Jda9kQO0qTwWjTR4gQyAelMQsZy6aVCrFBNNkBlfcRRfXQOS85MUSD74OdnCZNR7 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR07MB2184; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR07MB2184; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2184; 4:9ymzn4ROOMhPuKhG2ruVFFnC/OF2VdBK/qEL6rb/3V?= =?us-ascii?Q?jTq3rS6MjtVm2La9JUzecxlx5IkMBX7AWM57sWOMUYNMFlryPz14n7d3X8j0?= =?us-ascii?Q?1TKCsYjXO/BI3RYS4/i6xdP1h99k5YFtYsUTAio+6265hnncmH08axXG2z9b?= =?us-ascii?Q?YpwNeA6jwNqOYGlxXH4W6ODzkGKnFF5Hrp2DTxC15au8Pu9ifZvy0y7SXY/g?= =?us-ascii?Q?AWdpUM+zOQbQ8FPt6lfiHq1Vqz8IerH4vySE0OtEAzBss/HNNe1mpUGurf+Z?= =?us-ascii?Q?i9li173tGx48tdI4QgkI1tDJf8xn2f3mENBeLLbEM+w3LGOstfPJ6ddXgS6j?= =?us-ascii?Q?Vqdq7jxzZoSFy1niMLTioaH3PfSyWpUh8gV9trk4Y+Y4CJlOy1SVW8WwIaHy?= =?us-ascii?Q?BjmLetyQz86MP1ka0NH9GcHzirMRtJr9Pg/iYVmca+xBsE8d7zQCQ12Cc60n?= =?us-ascii?Q?1gEi/YpyLR/2jbrgaoRa4oZpSD0RABSgMvu1mde5awivOqe1tg8xsI4zzAEo?= =?us-ascii?Q?vRmS79xu/Cjpt16cVaPyIR9gF8ZWq2oomIEdKNM1UT6hTgx02J05zBJmr5Ep?= =?us-ascii?Q?9Ito1eQUEDqJpV6vhuKjHs4HWaU8OQC3idkkywzHRnziK4Qu3GffEQ2ogBZU?= =?us-ascii?Q?JgjMA1OxwUAftixw6zhKQhHSyldyansgfoFSVMsjKJrZezOMR+mHwz/1toYB?= =?us-ascii?Q?Izc1X2WKy7SYMLquxeXW5mRv46iP8bIRdNc8J67Y6gO+pYHOqQ3g/CHEWwng?= =?us-ascii?Q?8VQylVUWXsQv/QVwJMLZIhYd3gn5KVkRVQj5yMPZZEb41WIUnEjILd0s1uXR?= =?us-ascii?Q?9edvtUSS1s6R2sIIuJ7JfTR2tQRjZlvV1HMbGqItYfqslaeuhTgI5DOwNxom?= =?us-ascii?Q?bJPQMa0YokxTfchxcxQGtklzEsjpwzGP4MbSabT3sCYwwNq/1V07w6h8cR64?= =?us-ascii?Q?X57Izk8gEUNjkZKDJAGohmc8yFSyLhIRvMPM1ozk6/hVVBpZlhI1x18KXPiO?= =?us-ascii?Q?tzhLP3ZDTiTg8adp+uqZYqmFrUCfi/oit09qJOqNG52i4/0YXV5Q2GZam9Sb?= =?us-ascii?Q?YlDGSL1fuINXNdMzcIJth1RnYiXpZgoTLaJf+jbTE1LelN+H4OBPDEZESUsj?= =?us-ascii?Q?DtWoxr8xee+aczJdkM+LUMk6X+1OjYmoLn/9i4mvNxN54lfbwmYf5+jCAm4P?= =?us-ascii?Q?vlRk/G2f0DXOs=3D?= X-Forefront-PRVS: 038002787A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2184; 23:fBwFL2wm77TLHotIROHEJCp2jQKTzrS41gLSuQ0AF?= =?us-ascii?Q?0HWya3/B2FN52WqtucG+E11N6w83kEfUkNbL+s2P1pPOvT6bjns0QZdgBDvl?= =?us-ascii?Q?SXsNkN77+VSDeD9eYZ4FXRg0XYjE0fBTVfJAAqKtBboJQLR0jxPUcJCiNzxw?= =?us-ascii?Q?tYv5Gnvsz0j4v3ELIlxea1UmeyPmtJd1Z8ahRi6as01jOFz8LaI7ZXhSKDoF?= =?us-ascii?Q?CfB2kain1lnRamhgayXqJvsCdwAg3BMr9Fyxbbt55tqkZVqA6bH/ehlfzcY9?= =?us-ascii?Q?LpIBaoqd1/uFCuMqc+Wxb/ffHAJ3rpmSmiID9gmw57zV1O98ND5AC5MeKcI3?= =?us-ascii?Q?EW+chsrkosdGXYdmNMZIY862/w3mQmB0mpckeS8K4wPhQG8an2hmuQzZjVY6?= =?us-ascii?Q?GeesPyG9dvQmkpv2QTEb1Ym1Fzk2jrS2CWXonAG+NhLdP7zCNzS6BPq03o7c?= =?us-ascii?Q?59Xgq6+CWJ2rT18EQYuNkvE0Xcf2jhwWoMk9/5kKw8WCdoeU9l6w+Uug6Rhx?= =?us-ascii?Q?6fI4FE0Ro5ZV8WEodkKOH1G39EjBN2L1V/uAy4fRoyEFNXjNzNwZJjzfjZ36?= =?us-ascii?Q?9JKmBfYiuda0IMl4AecKzhj2VzBFJNqILvcStF9In+5aPRyQdDVtRRSSfB0x?= =?us-ascii?Q?BWwyp0I1lNFId/62wUyBudwp7tzBPotghkc5KMRHc8Vg5Yr3RagzvV5NQrWA?= =?us-ascii?Q?hFUJS4FrwPlMuRkRyRGhEHtYOudWLNWf+HYC4Gwbr1o/h/FDkqUs9ecJtKWE?= =?us-ascii?Q?SLW0qsVM6kjQ3qgIQTNIwEQI7QZuvJ4pmtU4t2nmlW2wt4y/w7MI2/AtaPF4?= =?us-ascii?Q?3fepZWJwViwLY8YNL8HpTkiusCKLbTYzIJOg3mrn/JjMjLyniroLxxeRz73p?= =?us-ascii?Q?ENL37aUqU31J2zo24ftarCwrih2lz/kpEHQ3r01mEl55b9zc/Y1dCJZHKhrl?= =?us-ascii?Q?A0fv5re9t06muNq2XyZ3Sd4cxxMBp+KujtUf2NIXKJL6SSFC0s4Cpy2EgGFC?= =?us-ascii?Q?zhGn8wZI7jRS1xCYVEiBWysCTEO/BcfhYKcrdmNviNTC6TBuLNqkZd8Xza+i?= =?us-ascii?Q?2220pvob9y6AOo4vWkYYXCSFY09NhLoEKl4j9zVo1xqT08ksPAeJDy5RlmBn?= =?us-ascii?Q?/VJRj7A5+4=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2184; 6:1Zzp5e0xThcZXb0opaq9FjYt3rY+qIEyH779SZNi22?= =?us-ascii?Q?mjYHFxUBJXUui8cfdv3gwXXU8vOaqXsH5YZ235IHvzF7D6pa6k4fRx7nScaK?= =?us-ascii?Q?CdYGnler7qIlNnVrZQYttJz7UjNgWbN9UVJnqEr1hPZxHgYMZ2SD3z249/qO?= =?us-ascii?Q?qmL3hoXtA17VgrEs7nFn+q5NRKNWJEGV5/3kcY8OVH750vch9Y7BtDlHuhRY?= =?us-ascii?Q?iCLAL/efueetyGecGQX6dFho7BTy1GnoJLWg2d+FmncyDq52cXI7/znlTZGV?= =?us-ascii?Q?K+tyK+xrOm9t6ObqUJv5YfwbafFh5Ly6UynV4hNiNDCIywtjVuBp8OUQpZ6R?= =?us-ascii?Q?Rh2cLzWtgX/zQS3cHWO0NUyWMWfzeOkKheHRpzrwpQp+mwDaRIo3JOhINcXh?= =?us-ascii?Q?qC9kGJpujOENOPVgr4KRzgmeU20EPXXf7Ave9ctpW2R/5gzm2h6FhumwqfX+?= =?us-ascii?Q?kHoW3TmUHyYFwBLOrLudvIBEgC1vmENJRQsWlabX2Chps8asmd72fBtTDbDO?= =?us-ascii?Q?X6ohksY1DN8fPGW3+caYKvfq+0KZ6i2xEyXlKMsGpqHD6sWx7VSprVULxboj?= =?us-ascii?Q?5eSCcaOfDDLNxXgSHSjULxXczTkhocKKCqxcDNlv9RJS5+i+yjvo0IfBonZM?= =?us-ascii?Q?cgsYXo4f9FhCsePRt0Tdblvs45xc2PtVwgMtP/soHfGNSNetfVplB/xGh6gv?= =?us-ascii?Q?wTwefPflG0wZgir8ZjnaE92THnJoBhbR+BM3nmXuGVc65sdQGXwC2ut/xdlt?= =?us-ascii?Q?dn1Kp6gZnSX0DH/CtL1CN5WSGsL2qdsV7iRsymIKkEh0MAubAuLj+w+68AiX?= =?us-ascii?Q?oalm2b6xKKkHREXh8CC/cFNhti7AFqEMb7/Mmynta3Sif6RGvowmqenwrvYS?= =?us-ascii?Q?aMG1n13wMlJ/Akt6jdGj5mTmxC8amdBKFsUnPDW4rzinKfXij6a1wwcnZL8x?= =?us-ascii?Q?9uKEm3363oPkEOtPxGvPF08/pH+QXfpsdAu+r+EmMOuGJyxhYg6SkMKfByBF?= =?us-ascii?Q?k=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2184; 5:wUbN/o3W0tLSS0WEeOW+q9qcy4yGGf7qBqfA8PpkbA4hpnSIHzuiv24i/909ifW/9ChfI76/vYYODm0/rV+/UosGaq4PxrA51g2o7FuwvTFnPLmoQq6M7RrTDyjdvdTS+txm49kBEGEjLqwPN94+zcowz/dPexF4+NUE8uHJCoOUxIr7YrxrPvF5oC1tAkyJBYdoCnZbpvDQA4VUS8pboRONt7t8eyIvlQeoqRX2h3MY30u38M+xop8r0eLjerGAn37aWbWhBQdepObra6nn3sAdP6J8vytSfojWgM26CIK+dwm6/9An1n8ce+O63ByGiLDeOUTl5s2eBg6ZxMKI6Dc1On8iwfZrSUbWlonIbh4ooqRhmWxRf8N0K9yVVBEiYl21HOoyPA89K9fXK3RE3bMDev/cyEDiDFc6wm80xD4zz13daqmTpu+k1Vm57z9NdVkqBlNGlsAhn2MVwKl3ffZ1kQgz1AV5/yCXd+0AzhHVDM5j9UeXUsf59bHK9S78; 24:2GZ2QsrszAWSfdJ2BSjLkNxzQlUfKOZD949g0HyM5mDIysx4btUYoNLGbs0w1lFh8lHBIUZcLJj9s8HgSEHUiLM6NaXSNuHZV3L20YRH+XI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2184; 7:OIQT9o229HLSYjS7QwnRq/6CArdCnb4DngaKAR/HKjx+YCXVISwERE/NNppcoaHx1RURr1jzEHzR2qp204GO1ZkC84kCjh3UPUYHOGuKgs7syRbWXrI0je7/NGAc3OoI4ZQP/Npslk1lrpsHo5isXdjuGyGEDxdkrfhvn0Icy9XqqWLf97lTmEy0OaUaARnQXLu7Q+fophSiSep1KZsDJrfQzWF8RFJzgyMjsrc08LTfSrhJMZErHuvuxRgl7H0jVqzDHSDFsMLx1Ij1sfM5isgf7fLr0eo9SooyZdO+35A0MohXD4tTkaONSqUzw8Q7Nv1nx84K76ncORjs8nkVrj48kXYPi9Q6BXMCdosYp0ByVpesIt2AyxOJAk04kmQF1/7FO+iSAJulP3NGdSn7/Pa7aeHFcQOlPEif/vQ0mvnSEUK4h5dh55/eqvSpnNNBX+/jMQeA5dHYATFuTL+iS8LAYWX6a6xhBY3yg++XAnRwsfApoifNsrIcw8t5zAT+L39cQjhH1NW5+iBIQwfXYAtkpdJu3d0xsdDe7tOS5EaBGaIMu3O+QZnl41YUUDElzyVPKshvtwX7uj2Q9Ij75alh/X7XanALolPCqdibSh4gLQ0DdmxAZeAYXxvSj++eR62G8SeDgEotUYMj6Zkx/2owOZkng5zspWnkae4DEgW03AGG+6O3ALEHQYCRtq58JjK+bbynawhiyvpx0ebQPoU/CO7rPmIm5GMqU15ETXMboaD9jVOmXdvmCmxe9q3zzyuWeQeP16nvMCsk+RtorL/wTdbojpDJzh7tpIAC5HM= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2017 11:42:41.0028 (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: CY1PR07MB2184 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 199b6ed..3a38a1a 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 @@ -93,8 +95,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; @@ -122,18 +191,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; @@ -167,7 +239,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 b2bb42e..349e6ae 100644 --- a/drivers/infiniband/hw/qedr/qedr.h +++ b/drivers/infiniband/hw/qedr/qedr.h @@ -43,6 +43,8 @@ #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, \ @@ -160,6 +162,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 03a24a6..b9245fc 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -70,6 +70,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) { @@ -3603,23 +3617,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);