From patchwork Wed Jul 26 11:41:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9864623 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 A3FE56038C for ; Wed, 26 Jul 2017 11:44:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AABE128726 for ; Wed, 26 Jul 2017 11:44:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9F47028756; Wed, 26 Jul 2017 11:44:14 +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 D0AC428726 for ; Wed, 26 Jul 2017 11:44:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751474AbdGZLnj (ORCPT ); Wed, 26 Jul 2017 07:43:39 -0400 Received: from mail-sn1nam01on0085.outbound.protection.outlook.com ([104.47.32.85]:16654 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751413AbdGZLni (ORCPT ); Wed, 26 Jul 2017 07:43:38 -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=cOkfag1p1BPo6ydmhy+NLGCL0l0TgfZ9RHOXN8NPJuo=; b=ZvWCU+lHyrBHP3ncbHey/qYS0Q4TXFx7LhJRg2YyoEmHW7Y57bI1McNFVNxUj/l5pewyjDPRpC4OV/aot7+nX4VwjqtbeixbwkycR/VEwUTQPSalVwFNdbo5+iyTeLoViKXxDLQs3IyfjwfFislqnQyf1aIvPRDRUF1HRLxtn74= Received: from SN1PR0701CA0053.namprd07.prod.outlook.com (10.163.126.21) by CY1PR07MB2181.namprd07.prod.outlook.com (10.164.112.23) 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:43:36 +0000 Received: from BY2FFO11FD036.protection.gbl (2a01:111:f400:7c0c::158) by SN1PR0701CA0053.outlook.office365.com (2a01:111:e400:52fd::21) 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:43:36 +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 BY2FFO11FD036.mail.protection.outlook.com (10.1.14.221) 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:43:35 +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:43:32 -0700 From: Michal Kalderon To: , , CC: , Michal Kalderon , Ram Amrani , Ariel Elior Subject: [PATCH for-next 8/8] RDMA/qedr: Add support for iWARP in user space Date: Wed, 26 Jul 2017 14:41:57 +0300 Message-ID: <1501069317-16601-9-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)(39840400002)(39850400002)(39450400003)(39400400002)(39410400002)(39860400002)(2980300002)(428002)(189002)(199003)(6666003)(38730400002)(2950100002)(69596002)(107886003)(626005)(72206003)(189998001)(305945005)(50466002)(4326008)(47776003)(54906002)(36756003)(478600001)(5003940100001)(48376002)(356003)(77096006)(106466001)(105586002)(5660300001)(81156014)(2906002)(86362001)(2201001)(8676002)(8936002)(104016004)(101416001)(81166006)(50986999)(50226002)(76176999); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2181; 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; BY2FFO11FD036; 1:Io6EXz+3M9PH7mc4iXdEy8Wp4TCy2BZhca/8O/hl47P0t6URhqdJtOOa85IJAzA0fZRtv7ru6GGIvLplNZGVDrfzbqZ7TOI7c7Eky2CuZt6Ze5kIsB4LQ9RkDSwqL1PDSnCGsICBi1kzWNXU4eQaY2Mb9qnnIMYk6ecIEtXY9GieHDt/6Cv6fgDzXz9RIZDhyVp6/8MWp6+nzLZwijI86PSKN4jHexTC+S9gdB55McpSrOGEtzeoRlSAYvs5uu+wFlmtPXcOVrPfaxkleV15ZnEA7Myp/eevGJXXzdjV/J/JTJFu5dNF6gdfCqN1H3RETfW8bnBwSpzdqAfto4z15g3xvykB8+78ydygYkCnc2bjhIv8sklJcfN0+vCCg27YBX3I4Q7WfWqko7AVjY+14yViFK/8yuj6rN+/CVsf0fJ3BS8Q/3bXNnhMFbQPyYb/v1SjXSIPg3Sx1+WJBOqcnNd+RUs5vyNsTapoT+4my9FDu52ixbQCtBspULwZOiV7T09s4PYEkye8tzdr6DW8FMifslvrFxNT10tRYdl1xoweLCqOvt6PH2fGMISVpvW/pzaLCyw6fPBFOKFnOnI3JjxGNfNmdba0qOIxuNp9ZK5cOCfkv6xR1OCxnjNknWJqGQUXV8d8+Hptjs3RZ60gD09RUlVaNCTy9ZW07wBYSAlKTC2rgLgqMTPxV1Fvg3GI7th+NmnYL2TQTxa0brdbRYP7WdtXxvgdNFy29oSd0+UrKUAZOARrs/aRtb3QThA61RNPOGsjLdqh4KyBOKIjLgQCV1IOnJBJLQGxxveP5baPhb0TIgPSvqlXFDiF1qE/S4cs1mf9YFnOnvMUIwc1uw== X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f5329c15-b813-48f0-a88b-08d4d41b8ced 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:CY1PR07MB2181; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2181; 3:8s8iAVlK1iFAjpGhDQzUF1axeqSqxemwZCzZOFTaWaItAotuyvqaJmxBrA9T3gNtp81MBRzelzdLAUw0fDb24e3sByOjO96Adkj4ok3jzz9GsO2ZIfTsQR6ps3luo20cAhXnndUfNa87CLkqNhyIr3nSw4wQACdMIFiE/x+0Adu5UXYjQaM0CwZ1xVi68ocWgPkqcV6YZ4rDrxjPB7rQha5f8J6/LkiNiCIlscViPkK3Hnh+UIE1XFyD2iJdPohugqBCgkv875vpqnCmHOJnvHT13eXDJ/63gdVLa7Ops6PxhriMXvKa55VIZAKVFMT+3gfr0dbgO2LpYgd77S7esKBrf99/95ZiS1EqqFlEUX2DVmMDdu1P4CpgGS0RNrLn2eWi1h+lrZQCZKqQLUz7Bl9yi7FyXNm79r/EyJHv5ne8nchpueZ5eVkoY9bWvxTUBZaV+qK0KEt/JlawrRUu0PPujPuJFacAWU6Ay33IrmyK4d4yV8yudxrmTznIraHhnGuw3fDgqhS4SI42Qv0XG4HhCRj24nnEeIfnyyh0mjiMLHnFj+YBnD17I0ObSE5l0zu3tr8ZDZJHSVG6wM5kRSY6DpHuH2FIPe7mVCTps7vE/jtwQ52+vBioVLBzLx4+4QPGSNIzTq3Wu/g8xD+utr5ZSZTE1+9OuKM2vEAkv8QJokORfu34z3cWgaHqrPJ+dqc3O27TDVxGaViCF8cICMicXk/b7cnDLY0yL+BtghNkrt67tZnO3Kwm+gL2c4ALzydBoLA1hr8CUABoAVbwPIcGYTuO29cVV2ROM923dRIt1pofVS9QA/Y7uwjPUXPYSiGENvBcrf87hE4Pqw0NvmBxPgdD1dVq8HbzOzXYRailEr1Pv+8HYpAeXASTl6EcJ3PpVTi+0ID+Ica4SaWthg3WMdFI3b7IzIM6sP3A63 6wg518b6ChkNmDp+J+43WX X-MS-TrafficTypeDiagnostic: CY1PR07MB2181: X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2181; 25:D6nX4DY+HP72K4nf/gZnYrEKuaoZHzMBAM1OJJvajt0KVjj2wUHwHwHmxAhMbnILBeCqaECJ3EiN+le9mwvkgEBW19qn/4yOk+/NzNrz3Ecb5sSt+faMChIB9ZmbRv5ILzhL1xPg/9aLkKtiVrZy+SQEZTlglzDXunfRyjS7h9hWkJul6oC4fTFyPdFLEBqYDcPhFb8bVX1dGjo4Mpm6IlqQzwXP1s+9YQh7ZSIU6mfPSy40x/AO2TmxBPMmdZyKWsiB4oPVXuUX7D4YuIuf1SOfWOXtK9D3kRaHFrc3HSkZVCmOpqkFL8VEWfJNjmZ2unl8ZRF3EjW+hF9Xzpc5PO8cs3UoYorSqjYFQAPl5WrGNj6xQXdrsAZPRt8dC8loZ1R9UxtCPxPbgh+akXBtGvda8JC3tv0y0lhRvbTczbAJqfJ7I0lNzJW/KxU8KPq6laGLU7lC7nhnjMoU7yGYzEPu2ruWK6UO9yZ+N6CQAagaG7U/1gF9TZX1zFGwVkWhXMWdusKNJo695MXbEfoaWW/1fEwG2ek/0s3Bx8KoHM7q1BL7Dn8Ur+XdA0neG8zrQOEUwBflkmkuvyMqHQMtC8VihmBvgecUNs3a9C3s467oCTrsvFLRvNCT6zQIGXtAeepW9ZTqO+kiW19ZWhR0BxHmUP98q1xDEV6dHyN86Lu7Sw69fgXraUjkSzupVhARsMGkAKSCbIJRsMTReIWzoA9ssFcQ6VrjGVlFuGli3SGzKimg/DZWG/YRoikaOzgvAEAUux9RSi++XLNeatzBhUpmsCtRHUBCjIiadia5x4FQuDqF8FYpmC3L0LuHtQVURdMZa37ZBj/kzcvNfPOYykh2v/2b++oEGXE2ps4Du7+JUW0w/QfxqPLyLXdx2gi1GtBu6Z97C8NZzpTe7gdluJtaUffzuxH5XItAcoETP fk= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2181; 31:TtBH04aLGKE8X2rOM+lqrXT+RK8l+jx7IOAyjRq04Upucbra0T0waf+qLhgi1anPlisjF0zvMcr1V6qSGnctuOlaU+GZCkAj8TCRO66ZAI9GYt3KclV7JF9piO7mwdY8W8NctmjBnb6IYDySegzuwkEBiwg8YYaxcHGUrx+RxNaH4SxVFf+FdU5H6naZPap9XHvm/sI9ym7GQEMWiWvn5RiCBewLrlY4Di3qMXMTvt++WUSbO/21kxZGVraf+7Y0DbsJ/ufsJju2LtKMpX4XtCian2HK91pj5pL+F2z2J/rwfA5JxuTzB2kTAVavRu/TU5FEj9HsZMPacp0EMLhNujR82ZJhP92bA/WtMo8K7OCQ001zbSZVNeZQeFHLFj8ia+91BP0Mgt/KGIgs+TlpnPccVzfQfDLVBCagptP5tlqQagljfbWrUZjNltBvxfah5DG0F/owvuWpElkus2300B21Vf3fxE9jLyLqx1S02WexWwBRfHzleCOSmjcL8fBfJjFtEv+YppyXJ6TqiVUOa8gmJmvNHWF43TG5CErMYvitZXymNdMo3YNpJKoHGGvE5OLvnfMMiZs111QhBxKDLU1z3Tq3fycUZIFbKw02VAjfxvbam3meFg+RyMEiOvYujYp+T+GOyVAPgtVQ20ggdaIPwmQ1t0dPKawn0SGhyorFrI6TxQWuOm22XTmZ6sD+WEzS8N10bkP7QVdOynD0gQ== X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2181; 20:ic5tPUpDhn45crug8SQWBoc3Dd42X9rR07K3xtFI1lgi/ugkSZVqdBxgxOyrJBop24R5JK0NePX1Ukcs8xmnqIYvyz175dlgkO632m/IBeZc07B79P/gGfGd0sqsfbDzANPINLgIOHZ4tmPZkirUHLIcqs9C17Q6A31+u9CdfBz97Q8PSv4ISBxniYrIAGS1Ta8+PRlkB1YpHDxuzdVvJ0qK8Lag7yJ/N6VXppu/bGOWRRuetATdCZw5fPhZdU1NGMDZVKNu6gffcAFiqDamI70hI5OHgzOdiTOa3X3kmBYJ72p0BjWBUCRKNB+Zu/1T1rPvqG9ps21wWzWB3WjbR8sKPzZ3BNkInecnbsyR4jH8shuXJPJlY4u3uW5S/ZcpeRLQG67X8vUn0b4dnfiybCiA0xzDUpgRprxxc0JEvNonzPeAxsfvkNuivwxfaP2MgKl64U87v4M8RehwmAbh9nRpwLf+zwcQuCASkmyP8j/cggP2d537cDdKE2NCWOl3 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)(13016025)(5005006)(13018025)(8121501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR07MB2181; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR07MB2181; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2181; 4:mRFyjqGW3RN0fb8sUlYMBwDdbdeAW2ntSOmXbWXcqu?= =?us-ascii?Q?r3IgAGimaFwJ4WTegtvlgcA55veIkveI0G5bNFmoosmAjfku9p8cpZF2XtJP?= =?us-ascii?Q?SOq8T8+8mA5YEohaDbeujD9gCrp2YcIfFCN/A+Bp21Y/s3+5PxP7M/V+vAbj?= =?us-ascii?Q?sNf85YbNXVoWpMYnRMk07ZgQ1XQGF7UZreaXlYeyVIfl365zv5F9bM11NAAU?= =?us-ascii?Q?DNyYCcZeyb6IfSfNNXL+zE5qPiGZUaZMMAVogxYNTSSYpB82+TnKI5zNxtMX?= =?us-ascii?Q?EzxJ7fFKubcLu7ZGn2y2rx4Okb5qkVoFDrQd1eVkLi1k0uQVX6xp+6eL/8e9?= =?us-ascii?Q?s3nXSLnuI1r26PkJ8vzTqpQXM+IoU0m2stFNWXRKOGXKlRiXVMBTE7Df7ze6?= =?us-ascii?Q?9Jr9s7f9u3nf0B2rCkg/1LCwq2SHXmvS3IrZ1S2bQxOrvZmSowFUpv1a4RBl?= =?us-ascii?Q?/JXlnR804LBPF1/6JhOAIB5GBJaBcFrxlYPYjFe/YZTrLlyxXjgYuLnQpuDr?= =?us-ascii?Q?okOxHYn56+N+Hn7RxfttlDZ7szZQ5pNukheTd9ptWEcXXaFQPFuzHHKwbJNJ?= =?us-ascii?Q?x6OrnWrB3AP+kQSeGejRFdmVDiuK4Ts38XgcIc3M1hccksOdlId1H4fw+OmN?= =?us-ascii?Q?smrBVM7j0XwIk1nDm2004ghXp+PlxlNByc8qgHPjZNS7jOoXPwmqB8B2Vsva?= =?us-ascii?Q?dRqZXMj0M7R8pMXw3T3X3mtDQipruMTiPBp0YYLKB1i5vvUg+AWthJThwbIA?= =?us-ascii?Q?x+lc5RnMX4bhoeeSE+xBS8nIZYBQ9FjBF2kZXNtw+zH3f8f0DzVqumHdKy+a?= =?us-ascii?Q?w2KlA3uJwvUnaLlsuKQ3HDCraogWwzKzw823jUWZosN3CYSTxlynXYVQJod7?= =?us-ascii?Q?LKf7zQdKt7M9ftoVqzmPwNBDp7scVEoN1ADyv30YFzhK9zp08u1Ajf9wgAyX?= =?us-ascii?Q?c/amtYtobGb39Q6Z2Nqw+7P9uwnvmpgkJF5K3HGg8qF8rIDtZB8ZniUxqccX?= =?us-ascii?Q?63KdkvGAkNd+Y6Bllp48lpaBQWFAvbFplEuVKkR6vUINZ7IVszUQavjE2oT5?= =?us-ascii?Q?iy/RsAUZsWHhxU/N5HKmgijGMNkPeLridHctrLbELVZ5tUPycioo7r0Bnktx?= =?us-ascii?Q?sElE22l+P7mmTa2x7HjxOxjN3cBr4Euji+vYPMeER/ymSmDXkuM0WfZiyKi6?= =?us-ascii?Q?qBEqBKjD1+m50=3D?= X-Forefront-PRVS: 038002787A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2181; 23:FOn9oASIQpibiitB2t65QoduBgUABFmY1jzdXM4xI?= =?us-ascii?Q?zW0IgEZ4OhAT9y2CRgZ2sayzceG1LzOl61e/0Z71Mv8SvYpACqPzDIjxgjpN?= =?us-ascii?Q?ii5oGGIZQkKFbWT2Kherw9A25hh60Th6N3TY24K5idk1u50NQH7+m6ZIkKvL?= =?us-ascii?Q?R5rm/QJATpqMLgTEDjc7rTSH6MAe47VP3fLZRDbrs0/NT2b7NCrdvTuPdYW2?= =?us-ascii?Q?02O6MQNQx/DJm2xdJW0+Tox1li50gyjPtx+eXyKl58Jyk1lEuefFLHyN+iAU?= =?us-ascii?Q?6M7oXG9+v9SzG9VWebxee1wvhBXNfA1c8SY8mDHk25RV59TZfDy9xYco4HAB?= =?us-ascii?Q?GAfTG3ycCIaETRCwOiszuv5r33cG1o5N28UDUuN+hAZmvKYEfcdVSMKmO9Yy?= =?us-ascii?Q?BDwu3zBwG5383d9K+YUk8bGC6AuOgcM/QklqJY3btayIZe8lKL0ZD3196hWL?= =?us-ascii?Q?Ifl5xhJ8DB3jIawB0G4LobQ9J/gBFeJBqcwlDF+qX9yI6twH3HEI6QWYv7NJ?= =?us-ascii?Q?8zqIf7EqpoJm0bCTBKkknLEn5EORo1/cWEt0iyEcjNgR5SfSATv5A6xrQlGT?= =?us-ascii?Q?86OahLLHyDCWviPH5312s+lMOeGe1JsgDidULTrSVbCseADLXLvqk0RaZtjw?= =?us-ascii?Q?/8ipsRf51NnuwxEBk01E0RlG3bzyO6GJr+KDq10h5Nm203mCnBZWQxrrwMhS?= =?us-ascii?Q?YvRxDvQyEDHnSeEK+1nT27+kgfqMojbpzqARv0rmsQVRDIljRXF7KzknsNCg?= =?us-ascii?Q?0hNC2bLtQ0zO0hrHl2IHMHzeh5u+sRDMuwYCRRGa1FifYpvLxJ88HFSRuNpi?= =?us-ascii?Q?uOQFkEq0YUcTMYQtJN4XflRe61MmS4mu3GlHfR79tx+1tRUKUI/JIzdaU/Bf?= =?us-ascii?Q?5xkviIS1X2aV1q/lUBqmWx4tl1tygcxpycbb8TveWA9lDzlIJ+UWb8Cmu8IC?= =?us-ascii?Q?HAiw4pgO5tNtMF7MsWBtqjZanrqnHa+jEHWPbes/rhEeBfykimWQLVG1MEbX?= =?us-ascii?Q?hRPcvONQuvcoCIVELE3GtAsSB6kse/OoSIzCjGdAouaRfUDICtigxKRhQ51H?= =?us-ascii?Q?9JLGv834vHUXifNpwzjs7CtrrakG067x6ETWmLw8ru0NobbNW1SW82UTqe8d?= =?us-ascii?Q?d5KFN07vxs=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2181; 6:aa9S7oDbjrHrvR5+Rv1AIRchBHysw1pE7Z4SoV7sY9?= =?us-ascii?Q?ecieNIrr/v3+YjOnU3F/CHrmch/cQqRfvPNSmYp/ixP+c4TToV/9sEz58nZQ?= =?us-ascii?Q?b6M7tvuqiLyGbNZbr8l8YXJ02eaTZoQfBnB4KfHBIFuJqrfw9xG12AGXo94J?= =?us-ascii?Q?qQmek0UWVzFxP7vcWezHQvlAi65rmkLY5QrOwNncD6ywZ5yQG1ZAHkGzWrTR?= =?us-ascii?Q?S4xQZLGpXXNCFXhh6iQHcJRTOqK2HpWTHcpDUFYb9s3aiyM3TsDcsBSw8Wyd?= =?us-ascii?Q?K6b6izVF03L3rM78rY9XecaddrlZyrwZnrhtwbfU2s3hIXlq+etkvsZ5wBCL?= =?us-ascii?Q?5la+Ofd9U2746GFB82RfIbaDsfQaiBj20eGONR17Jk30taq1D7PGYHwNs0D0?= =?us-ascii?Q?a5NXmkZ1RJIYp4Yoj+bv84yomaih2P8HzA/DYCWFrsejVS51YxrBILizwt6N?= =?us-ascii?Q?GF0jvJb21I5ZYoiW3XNr2eZui+Jrq/LQFWg0pDvXVwN5KLvMQfEgo6CAR8bI?= =?us-ascii?Q?4DK6klB+4HzhODNLtuYG+2cfSt384ZoKCU2xfV7beiP2O5BdMVKv8y3r0woO?= =?us-ascii?Q?LQJW29AsA/qEqBLv3O1hTyBrG7RHpLZ7V/5aESV+gyqU7gt/dlw9N5l0ujq2?= =?us-ascii?Q?XbWJkhiGHOUgksFfhrfy6wYqjg2x3LGeF3uxbkjgoQuV2obGb8T7CoyEuMI9?= =?us-ascii?Q?/eDige9Rnog2bB29M0rWKZqh5NIH0zj0Q2fFvpvv2oK2nrCfo//MWlJ3E+CV?= =?us-ascii?Q?vUSA9EIbB2KP5LiHKf7gCA3PvpLkox9SbNdPzHXUMA3nip29O/jSmZuXh6Ob?= =?us-ascii?Q?h10/w2bgKoRS5Ylo05xpS7gP0SwFG+1yQWxHvG07mKwyW1SCt3ruGvm1dtza?= =?us-ascii?Q?Ey8xmKh82S8A5irwWAb5zMk/x6N3CTxjYD8JmjDFDSwA26J0O2O7kq1Dg7+I?= =?us-ascii?Q?aTIVk446RnJREaDaC8n99ul+lrRVL4fNKDJgb9xeeb6kjM8z9k72dmYBlPRU?= =?us-ascii?Q?A=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2181; 5:EwJ/SmCMHuGB3x+f54YQ2oLpA8loD5YXYUpVwb1zfunvPIbasPjRVtRKDLRCqbVmDKDnvR1lX4ht+IpCaWdrL3QquHhw2nwmPg55EnX6WC+80zsIC5G1E80GyleRX25g14bFik51jRpSo0F4V7mrzYESnerN9VFjEl3x4YCmds6sTYRTTh06K89O8WovU2uZqpvmQEb7h7S1VCU+i9WsvUp/NTRfbj+Iz/MZsO3daRHCEfduvi+vLEmQPMsau2QXKF7nGN03h6DRzrjqnCHEwtv/mUaF8JlFawUFEgtSdCZJEk+/lwguLRSag/ilxdoKln9BAfhvJKPwLt8vTNpd13pv+wHg60j+1jBtb8tF5sqeLVhpSt9lRnZ+deo/mM/c6njGoY923TkSo3qRe3VS6AkktAh5XIc2UYvhQSu3wp5YAt1XUmrHTtLSzcaaK1gSaqKso+w277VCwIVELKcM+dLzZi6Jomx4ztJhOYm9RztWsqXD5DQAorJOCNHdcg1K; 24:cd/G/qiu5PTH3ugioW2YPnsZXBrvvMn4N8uscCyohWE2R6fDhQWkeRLjXUDiZgdgFu6P6OEmsV3aY3xtBw6y4F/UgEuGnF288OSqZ7YdMJA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2181; 7:3nEb8MQeRF9cBj2ziKxTaKEBqUgPTzNkW9jzRBcL/WEGiEzqroCzlfkr2rc7Glk/Ww2JwzPyB8FyRfK4+GmYpavJ+2p/g38oBB0rIz3yVVLImY/vDmXYLQ6Ml59KbdEK/LE4xyhriZd64wseIkAf8PaklNwNoIxft3PP8gnuXnykx7LaZcVdit5ULpYqBxTBCW3todj+qSZu5UIeD3NMjPERG0tUT0AtLa6OWHr9RrxUP5iYSzw+QcURshNsrBhxJKozOy2SCaGp7CLFksZ4aLzWIIhq1poEJProPSr0H0omUFu4Urj4MiWCtZ5y7tDtEe+G+ln9ZCMELkFlDjvPtGq2xwlsLuxjb9XOqCEGKB/s4sfPAPe/PxDQz9WdJ5KR2RXVpduDpQqnes74hDRkWGQvhDyvXNcaevKjqBPE0Wu1e5FBpXxTaaER0tt7a9zcg5eNwpsy404oaKjuL+NbGsfb6vXtBiLHnc8LJ10trCcwpa4zGAgkxT3vONEvJe2pm9p6PkFvZ6Mf6Uz7ONuDxfXKfwpZNpvNipEOKJiMNlNyssAmw1u88JNzsQgnahWfWyzXQdEPiRmmT5J9LVzuasukkHFEF5NNfmuGfRdG7ENEt+oa/j6Q56dbrKJeXQtNWyo7eiyWt5MHmD9b1H32dUIvj+0pa8w2ZslZQ0HLIkHWRwhfjYScAf+2C7dbdrUjtKLMxmboHwAnrwO9Om3+1lAInLHeinYMPeVUuftKDhp8D07dI/EWRZqaIfUjZBrjiwJGGNJomMcjpPC04fixuDPbu61KMnkN7Nj1cUAiP4Y= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2017 11:43:35.7645 (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: CY1PR07MB2181 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 Pass the second doorbell offset to userspace in create_qp response. Pbl allocation is different for RoCE and iWARP and requires different handling. RoCE allocated the pbl and passes the pointer to qed, where-as in iWARP, qed allocates the pbl and qedr populates it after it returns Signed-off-by: Michal Kalderon Signed-off-by: Ram Amrani Signed-off-by: Ariel Elior --- drivers/infiniband/hw/qedr/verbs.c | 80 ++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 7067249..4e14a55 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -789,7 +789,8 @@ static inline int qedr_init_user_queue(struct ib_ucontext *ib_ctx, struct qedr_dev *dev, struct qedr_userq *q, u64 buf_addr, size_t buf_len, - int access, int dmasync) + int access, int dmasync, + int alloc_and_init) { u32 fw_pages; int rc; @@ -810,19 +811,25 @@ static inline int qedr_init_user_queue(struct ib_ucontext *ib_ctx, if (rc) goto err0; - q->pbl_tbl = qedr_alloc_pbl_tbl(dev, &q->pbl_info, GFP_KERNEL); - if (IS_ERR(q->pbl_tbl)) { - rc = PTR_ERR(q->pbl_tbl); - goto err0; - } - + if (alloc_and_init) { + q->pbl_tbl = qedr_alloc_pbl_tbl(dev, &q->pbl_info, GFP_KERNEL); + if (IS_ERR(q->pbl_tbl)) { + rc = PTR_ERR(q->pbl_tbl); + goto err0; + } qedr_populate_pbls(dev, q->umem, q->pbl_tbl, &q->pbl_info, FW_PAGE_SHIFT); + } else { + q->pbl_tbl = kzalloc(sizeof(*q->pbl_tbl), GFP_KERNEL); + if (!q->pbl_tbl) + goto err0; + } return 0; err0: ib_umem_release(q->umem); + q->umem = NULL; return rc; } @@ -948,7 +955,8 @@ struct ib_cq *qedr_create_cq(struct ib_device *ibdev, cq->cq_type = QEDR_CQ_TYPE_USER; rc = qedr_init_user_queue(ib_ctx, dev, &cq->q, ureq.addr, - ureq.len, IB_ACCESS_LOCAL_WRITE, 1); + ureq.len, IB_ACCESS_LOCAL_WRITE, + 1, 1); if (rc) goto err0; @@ -1241,18 +1249,34 @@ static int qedr_check_qp_attrs(struct ib_pd *ibpd, struct qedr_dev *dev, return 0; } -static void qedr_copy_rq_uresp(struct qedr_create_qp_uresp *uresp, +static void qedr_copy_rq_uresp(struct qedr_dev *dev, + struct qedr_create_qp_uresp *uresp, struct qedr_qp *qp) { - uresp->rq_db_offset = DB_ADDR_SHIFT(DQ_PWM_OFFSET_TCM_ROCE_RQ_PROD); + /* iWARP requires two doorbells per RQ. */ + if (rdma_protocol_iwarp(&dev->ibdev, 1)) { + uresp->rq_db_offset = + DB_ADDR_SHIFT(DQ_PWM_OFFSET_TCM_IWARP_RQ_PROD); + uresp->rq_db2_offset = DB_ADDR_SHIFT(DQ_PWM_OFFSET_TCM_FLAGS); + } else { + uresp->rq_db_offset = + DB_ADDR_SHIFT(DQ_PWM_OFFSET_TCM_ROCE_RQ_PROD); + } + uresp->rq_icid = qp->icid; } -static void qedr_copy_sq_uresp(struct qedr_create_qp_uresp *uresp, +static void qedr_copy_sq_uresp(struct qedr_dev *dev, + struct qedr_create_qp_uresp *uresp, struct qedr_qp *qp) { uresp->sq_db_offset = DB_ADDR_SHIFT(DQ_PWM_OFFSET_XCM_RDMA_SQ_PROD); - uresp->sq_icid = qp->icid + 1; + + /* iWARP uses the same cid for rq and sq */ + if (rdma_protocol_iwarp(&dev->ibdev, 1)) + uresp->sq_icid = qp->icid; + else + uresp->sq_icid = qp->icid + 1; } static int qedr_copy_qp_uresp(struct qedr_dev *dev, @@ -1262,8 +1286,8 @@ static int qedr_copy_qp_uresp(struct qedr_dev *dev, int rc; memset(&uresp, 0, sizeof(uresp)); - qedr_copy_sq_uresp(&uresp, qp); - qedr_copy_rq_uresp(&uresp, qp); + qedr_copy_sq_uresp(dev, &uresp, qp); + qedr_copy_rq_uresp(dev, &uresp, qp); uresp.atomic_supported = dev->atomic_cap != IB_ATOMIC_NONE; uresp.qp_id = qp->qp_id; @@ -1381,6 +1405,25 @@ static void qedr_idr_remove(struct qedr_dev *dev, u32 id) idr_remove(&dev->qpidr, id); spin_unlock_irq(&dev->idr_lock); } + +static inline void +qedr_iwarp_populate_user_qp(struct qedr_dev *dev, + struct qedr_qp *qp, + struct qed_rdma_create_qp_out_params *out_params) +{ + qp->usq.pbl_tbl->va = out_params->sq_pbl_virt; + qp->usq.pbl_tbl->pa = out_params->sq_pbl_phys; + + qedr_populate_pbls(dev, qp->usq.umem, qp->usq.pbl_tbl, + &qp->usq.pbl_info, FW_PAGE_SHIFT); + + qp->urq.pbl_tbl->va = out_params->rq_pbl_virt; + qp->urq.pbl_tbl->pa = out_params->rq_pbl_phys; + + qedr_populate_pbls(dev, qp->urq.umem, qp->urq.pbl_tbl, + &qp->urq.pbl_info, FW_PAGE_SHIFT); +} + static void qedr_cleanup_user(struct qedr_dev *dev, struct qedr_qp *qp) { if (qp->usq.umem) @@ -1404,6 +1447,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev, struct ib_ucontext *ib_ctx = NULL; struct qedr_ucontext *ctx = NULL; struct qedr_create_qp_ureq ureq; + int alloc_and_init = rdma_protocol_roce(&dev->ibdev, 1); int rc = -EINVAL; ib_ctx = ibpd->uobject->context; @@ -1418,14 +1462,13 @@ static int qedr_create_user_qp(struct qedr_dev *dev, /* SQ - read access only (0), dma sync not required (0) */ rc = qedr_init_user_queue(ib_ctx, dev, &qp->usq, ureq.sq_addr, - ureq.sq_len, 0, 0); + ureq.sq_len, 0, 0, alloc_and_init); if (rc) return rc; /* RQ - read access only (0), dma sync not required (0) */ rc = qedr_init_user_queue(ib_ctx, dev, &qp->urq, ureq.rq_addr, - ureq.rq_len, 0, 0); - + ureq.rq_len, 0, 0, alloc_and_init); if (rc) return rc; @@ -1446,6 +1489,9 @@ static int qedr_create_user_qp(struct qedr_dev *dev, goto err1; } + if (rdma_protocol_iwarp(&dev->ibdev, 1)) + qedr_iwarp_populate_user_qp(dev, qp, &out_params); + qp->qp_id = out_params.qp_id; qp->icid = out_params.icid;