{"id":817884,"url":"http://patchwork.ozlabs.org/api/patches/817884/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/1506244185-2129-3-git-send-email-Michal.Kalderon@cavium.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1506244185-2129-3-git-send-email-Michal.Kalderon@cavium.com>","list_archive_url":null,"date":"2017-09-24T09:09:43","name":"[v2,net-next,2/4] qed: Add iWARP out of order support","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"f5082b8725f9200533d9fa45f9ff38f9d009a95d","submitter":{"id":69904,"url":"http://patchwork.ozlabs.org/api/people/69904/?format=json","name":"Michal Kalderon","email":"Michal.Kalderon@cavium.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1506244185-2129-3-git-send-email-Michal.Kalderon@cavium.com/mbox/","series":[{"id":4808,"url":"http://patchwork.ozlabs.org/api/series/4808/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=4808","date":"2017-09-24T09:09:41","name":"qed: iWARP fixes and enhancements","version":2,"mbox":"http://patchwork.ozlabs.org/series/4808/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/817884/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/817884/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com\n\theader.i=@CAVIUMNETWORKS.onmicrosoft.com header.b=\"Qu04ATcA\"; \n\tdkim-atps=neutral","spf=none (sender IP is 50.232.66.26)\n\tsmtp.mailfrom=cavium.com; vger.kernel.org;\n\tdkim=none (message not signed)\n\theader.d=none; vger.kernel.org;\n\tdmarc=none action=none header.from=cavium.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y0LzC3Sr7z9tX6\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun, 24 Sep 2017 19:10:31 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751983AbdIXJK2 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSun, 24 Sep 2017 05:10:28 -0400","from mail-by2nam01on0051.outbound.protection.outlook.com\n\t([104.47.34.51]:27899\n\t\"EHLO NAM01-BY2-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751630AbdIXJKX (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tSun, 24 Sep 2017 05:10:23 -0400","from CO2PR07CA0066.namprd07.prod.outlook.com (10.174.192.34) by\n\tCY1PR0701MB2092.namprd07.prod.outlook.com (10.163.142.154) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7;\n\tSun, 24 Sep 2017 09:10:21 +0000","from BN1AFFO11FD020.protection.gbl (2a01:111:f400:7c10::195) by\n\tCO2PR07CA0066.outlook.office365.com (2603:10b6:100::34) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.56.8 via Frontend Transport; Sun, 24 Sep 2017 09:10:21 +0000","from CAEXCH02.caveonetworks.com (50.232.66.26) by\n\tBN1AFFO11FD020.mail.protection.outlook.com (10.58.52.80) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id\n\t15.20.35.14 via Frontend Transport; Sun, 24 Sep 2017 09:10:20 +0000","from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by\n\tCAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id\n\t14.2.347.0; Sun, 24 Sep 2017 02:10:17 -0700"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=cBQS0PKXeyDY+iwwkYG/eBUsY+kjnMVOft7ImL7mtVs=;\n\tb=Qu04ATcABhMgg0nz2aEmLRJU833zTchDmUAWeUVFZoV/TvdGQDpTKXgx+bqveDjZJR4gi9eg+p37DYMySAO+ymZ1k/GWqOcNL3GV47oMQTDsDR087eVefCdTTvgJgXwX9NQbwyvjIHfFBnzmCxXKvNwsYmW0B6jsP79cnefzr0E=","Received-SPF":"None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)","From":"Michal Kalderon <Michal.Kalderon@cavium.com>","To":"<davem@davemloft.net>, <netdev@vger.kernel.org>, <leon@kernel.org>","CC":"<linux-rdma@vger.kernel.org>, <dledford@redhat.com>,\n\tMichal Kalderon <Michal.Kalderon@cavium.com>,\n\tAriel Elior <Ariel.Elior@cavium.com>","Subject":"[PATCH v2 net-next 2/4] qed: Add iWARP out of order support","Date":"Sun, 24 Sep 2017 12:09:43 +0300","Message-ID":"<1506244185-2129-3-git-send-email-Michal.Kalderon@cavium.com>","X-Mailer":"git-send-email 1.9.3","In-Reply-To":"<1506244185-2129-1-git-send-email-Michal.Kalderon@cavium.com>","References":"<1506244185-2129-1-git-send-email-Michal.Kalderon@cavium.com>","MIME-Version":"1.0","Content-Type":"text/plain","X-EOPAttributedMessage":"0","X-Forefront-Antispam-Report":"CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(376002)(346002)(2980300002)(428002)(189002)(199003)(76176999)(478600001)(77096006)(69596002)(86362001)(5660300001)(50466002)(2201001)(16586007)(48376002)(2950100002)(6666003)(189998001)(106466001)(8936002)(104016004)(356003)(107886003)(2906002)(110136005)(101416001)(105586002)(50986999)(81166006)(5003940100001)(72206003)(81156014)(50226002)(8676002)(36756003)(4326008)(305945005)(54906003)(47776003)(316002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB2092;\n\tH:CAEXCH02.caveonetworks.com; FPR:; SPF:None;\n\tPTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1;\n\tLANG:en; ","X-Microsoft-Exchange-Diagnostics":["1; BN1AFFO11FD020;\n\t1:Xa0unD+fENOlHrUNDQFsTVH1j37m3eoc2hUDvXK67CVb2qY1nSgY/SM78fuYlFPVNr7xv2AtCQMX7xXikL51OkJparOqOZYi9rEf+0a8sIrCd5nVsyVXkIeRhsfFelrB","1; CY1PR0701MB2092;\n\t3:yGC+ZmYlQ7uUokV4s6xQoRjU0rZUf61tiFvDXz4R/gzzJsQPE5xt57MLXsmtcOzdltyh9xI99kzHYWy811oG3xUwmFDvoU/6RGQM93EF2RcskZOKAIy0pOktLpD0dWXPrUDp1hm6YwhrTAQfV3vg5xL5CIJysjSa+fbXrl3LQu2VHTChrerY1VmAvYbh/6/2lATCm95E4xTkX194kjar/GQJOwyPLuSZaxa2ulj9xcT/5dkb2VP3widRVfF3H/VuFczS0w7cIF6u/vPhx5mT6mqK+x1USH5VCR+sBIwUfjiUx/IvivCaRu2wfBqxClCWJ3n6/kNiF+dPS18G885e0A==;\n\t25:OA9S8RQzLX32sl0ZRbSGwe38kk8tc+CQWOPzyZRL4c7TAepWwQYEAAe7eCw2OpsYFxg1Upc/CU8RM2JMdKWXOtK+W1dK1JZHUo9+ev6aKmKcDg/M63g00hwKBB9lamErKKwG7xSV+VVNp3h/IC3VWj2bcp99TD8Yx+DWdVGFjPZoYxSnf9RaVyL8io4PtJHwDLq69WPjt718FyT0FzYIMXkCfBhcMKykcfXN74D/3TvWVaxxKSBnhqeHnqKlfYAWz+HHF84MZX0xnrkh+i2SrtSMsX+U8VbQQy2pOe4G3MJs3TxBoz4V7yjMGc/DE2hbCl9fSLAlu6H5OhJv+drUMg==;\n\t31:Pqy3VilCF+ywu73PfYqr6+jpMXFIDrUKqamZvPUbe87zJiE7+WHBUEai3hqFAhDzy0eo9y9d1WhKOtfmUdRVFcaXwURPVoKZv2aAP26QbvQiP8mgeEqfablWQ7umefH2bKVIKu448eoboOf5plaPv1SZa0BxMWXVTs2DwBho3VnyuESZfmtOZN13AVWu1nIJZ835KcJ/spUuOaCxHKUp/qHZKxoDxbMNMWP7AqE+MKI=","1; CY1PR0701MB2092;\n\t20:YsGVO8Gwpu05A4K6OMyJfrhalqN84OfDsb5QLyrXnoXuX7kVzpG0qH3g7lxXNdEKM/ZIXm73O6dFhbpsWdWH/z+K6Yn5+3aVEEY9NLbZOSnDuM9WopQLItxwtIN+16BHYxmzrguqdFZKCwYgM9q6b122wGT544BE155M0HWM31Vnni2FHuU8h7Jv3xdrWkKfcOjYrrsTAQ3nZ0nWgAb+zEOUXdAly30BPG9t2OZ0TnjZnzUQ1s2g19nkkkGwdytWmc40cXNCLYPmbz8qGUqBLSZ9FARgUTO+kbD8UMVq61eeAbFURg1xEc3vuPa5+Es9myWa2Hje0R8W53djJiztFcMRTwjneLSXYIo10NqhmB93WERJQPBUp6box+Nivh4AWdW51Z8HeTk3Iwn7pnQk1TgH2KM1bzq7z9PW1GqgRA3H93Ys+bpik7t8HDN8UpZxb8UuTQtpmC7IlqXHXcJjU3GQB/Zxd3fDqVQpgTQYLgWq8ZFJjb6OaQQg3Do0oB99;\n\t4:YL4NRjJ6QomexrlidmN7m/g5a4ns22BQZnzwqQfjTr5CQjHROSYfWFbefjAuKAQfbP1ahD1WciVrcY/pbCDtDqMhIlhWis3zX1frOHTgFfUSTDDtc6J1fsSLnIUff/vqFcG8Ja9m+RXMbzYSaM2vc1NrbMwYFO/xA0pzDdZYCYrvn78USzVDLYUl9lVZzJOUoKV3jvy6vh+Nk5O2tTCAC7AE/JTscyuc3aFLZS3gzkTgva34SY4UnTeLwEz10PG8","1; CY1PR0701MB2092;\n\t23:CcZuWHxDz6TshEC0sFEdpVoR07q64zeCLRbJNrMRoZ7GVGgq4v3rgjOgFvtQYZxyROdJoIMjNDMIvBMVoWGN6vJnJp00n5eDLtL+PkFK1GpZwMJ+H0PhDucGc2DdwEOfdpmK14LCJDdZzygvfN8FFkA165VKwl5TZyHdudVgAFfSvvIuoM9BPEkfnXgD1UP/Xzw3q+89jt/WWI53x6Dr9TToJrrHIsMH6RSjfYwXvuui5rIes3UeWq7Q+owGhhz5Dz7fkMbVfica2RYXwK6ONX+dhxpR0egdFQrhqO7KTagRakwi+5tmakKmXVlk8yZOKdgUdIM7Nw5PENQkdz4cdB1qx5c2LySdQwrMCHx68IIGrsoYg+ffI7kpCkg19Jx6Xb84BfErB11dwjarr5hIxJsjxJ+cLrwdg1Eu9Bv092kgj7PTPGVGMuVfnfL7i5TOY1ct88hMp66ooNJDNwHg1CIzX4qWjk6QiDMy6pSTYQ9h3gigtA4elw67EsfhitSu+RfDC2yK/EU8lEgnAxEa93brNNHymYnyWWXeYGfIS/WpVdorGH7Uq3zY/ue+edb+9mnEzde+/k9Ti/7QARspBLmt1QYDODFiixAe/rkMwkylxH8vkm3J9R5TdjfLr5Ll7Tk+6Ql/IaQv0k3RZ/exSnienlfRbK4CPju5wcksOyYgbZKx9uZF83NMNlYueewQj91E0gMIz1t4nSc7KhXVUClw9XwHlYjRHU6HMEpTHgdj3qDnaXYPlKTfBf9Wkz15WenI+mksIKl+nYVUMWYDIMPMj9y+auxCkMXtTYMCBoPKwjcs68I6wDmsxcZ7xNAC/NN+hKaO5+hsyGXzzatUFXBI4qyB8xv6oKkJmLcSINNbV8xObHFebYDbMxRJMX1y8/6qH9hnEuJ8YQhvEv+CHqdHS5EHc1PA6kZwTM3nZLVfDEcOTCFK/BDdN/yJfdbR/fVbspz/tvL+ULfVhX9V/AOCXfIXIQ+hP6TndG+CXydYSP17711hOfujZqa9++lD","1; CY1PR0701MB2092;\n\t6:ZpnZ33Pwe7B0qRLMo9zWAEiLvslZFb6UIMB1pCzTvO6z/pOOZQ/fRWfHB5S+VvYydlElngLMcZkOh5cVARocM0sRnkDhJO64RJe5BogoztTkXJrzqQwGVt7Ig8ZHE4woNFQgrxgzusH5rOB4cDfaQ+5wx32Z/vGCELx1C7P5gufRhwyiQuMO/uAoLVLlzPy0eGle8pSTTAEad+7iPsQChGrKvNNP9h8gKN4UdJv+YFzZc9xfUQ+N42RUcjqQEIRzooyzOXvMH8BlNJzqr5XtyMvH4ute9Xs2GQICIw2/duLPRLEYIbbrBMtFbbV0nXe/yaNhm0JKDB4yM1knMgBB4w==;\n\t5:T4T6WbFRjruH1Wq4OCi5en+6Y7PHOr2KXbUx17FN2UmO44AYVY4XaIxDZ7jLx9uP8d2AlUI72bidyu+9ndQMezlbGF6KpNKK2xVWZfVmWxpwbte9N2alBew/NWL84O22tDUtLhPWIz1WltJ6hF+HgA==;\n\t24:SQ3cxi/FF4HR61D6KO32Qn47Qsrsdl72AiIxRVIbBKv5EPXSatHV/lZnWYL35D5BXxvpyTK/hR+RWe7cKRnUzrxABwGdrVAdNXyLcfHOikc=;\n\t7:fk3NV9+cwo3Z3gl+RHjCSbKsUhrkMPld9TjWp/vI1Os4u/a76DiXjKJxAOHKbBkvw3vIsJ/9uIb+wNcNqwHQVjQnY4ZpVuzFkoZfs8ha/Uk4pD/p52fj7Cz4vF+UZsKvC/ITFPACQkySzni9KBbEr2b1lC5nADZACakHyeruWNHl/1PuYDaldyQFd2psGznVhHxZiXrtfN1i9H21V2reMViD6KedP1eivLDcnafHfS4="],"X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"1842feba-ed2d-4c38-01e2-08d5032c14fe","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:CY1PR0701MB2092; ","X-MS-TrafficTypeDiagnostic":"CY1PR0701MB2092:","X-Exchange-Antispam-Report-Test":"UriScan:;","X-Microsoft-Antispam-PRVS":"<CY1PR0701MB2092FA5FD6379E5B1F32595088650@CY1PR0701MB2092.namprd07.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123564025)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY1PR0701MB2092; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR0701MB2092; ","X-Forefront-PRVS":"0440AC9990","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"cavium.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"24 Sep 2017 09:10:20.4840\n\t(UTC)","X-MS-Exchange-CrossTenant-Id":"711e4ccf-2e9b-4bcf-a551-4094005b6194","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194;\n\tIp=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com]","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY1PR0701MB2092","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"iWARP requires OOO support which is already provided by the ll2\ninterface (until now was used only for iSCSI offload).\nThe changes mostly include opening a ll2 dedicated connection for\nOOO and notifiying the FW about the handle id.\n\nSigned-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>\nSigned-off-by: Ariel Elior <Ariel.Elior@cavium.com>\n---\n drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 44 +++++++++++++++++++++++++++++\n drivers/net/ethernet/qlogic/qed/qed_iwarp.h | 11 +++++++-\n drivers/net/ethernet/qlogic/qed/qed_rdma.c  |  7 +++--\n 3 files changed, 59 insertions(+), 3 deletions(-)","diff":"diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\nindex 9d989c9..568e985 100644\n--- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n+++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c\n@@ -41,6 +41,7 @@\n #include \"qed_rdma.h\"\n #include \"qed_reg_addr.h\"\n #include \"qed_sp.h\"\n+#include \"qed_ooo.h\"\n \n #define QED_IWARP_ORD_DEFAULT\t\t32\n #define QED_IWARP_IRD_DEFAULT\t\t32\n@@ -119,6 +120,13 @@ static void qed_iwarp_cid_cleaned(struct qed_hwfn *p_hwfn, u32 cid)\n \tspin_unlock_bh(&p_hwfn->p_rdma_info->lock);\n }\n \n+void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn,\n+\t\t\t      struct iwarp_init_func_params *p_ramrod)\n+{\n+\tp_ramrod->ll2_ooo_q_index = RESC_START(p_hwfn, QED_LL2_QUEUE) +\n+\t\t\t\t    p_hwfn->p_rdma_info->iwarp.ll2_ooo_handle;\n+}\n+\n static int qed_iwarp_alloc_cid(struct qed_hwfn *p_hwfn, u32 *cid)\n {\n \tint rc;\n@@ -1876,6 +1884,16 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n \t\tiwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL;\n \t}\n \n+\tif (iwarp_info->ll2_ooo_handle != QED_IWARP_HANDLE_INVAL) {\n+\t\trc = qed_ll2_terminate_connection(p_hwfn,\n+\t\t\t\t\t\t  iwarp_info->ll2_ooo_handle);\n+\t\tif (rc)\n+\t\t\tDP_INFO(p_hwfn, \"Failed to terminate ooo connection\\n\");\n+\n+\t\tqed_ll2_release_connection(p_hwfn, iwarp_info->ll2_ooo_handle);\n+\t\tiwarp_info->ll2_ooo_handle = QED_IWARP_HANDLE_INVAL;\n+\t}\n+\n \tqed_llh_remove_mac_filter(p_hwfn,\n \t\t\t\t  p_ptt, p_hwfn->p_rdma_info->iwarp.mac_addr);\n \treturn rc;\n@@ -1927,10 +1945,12 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n \tstruct qed_iwarp_info *iwarp_info;\n \tstruct qed_ll2_acquire_data data;\n \tstruct qed_ll2_cbs cbs;\n+\tu16 n_ooo_bufs;\n \tint rc = 0;\n \n \tiwarp_info = &p_hwfn->p_rdma_info->iwarp;\n \tiwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL;\n+\tiwarp_info->ll2_ooo_handle = QED_IWARP_HANDLE_INVAL;\n \n \tiwarp_info->max_mtu = params->max_mtu;\n \n@@ -1978,6 +1998,29 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)\n \tif (rc)\n \t\tgoto err;\n \n+\t/* Start OOO connection */\n+\tdata.input.conn_type = QED_LL2_TYPE_OOO;\n+\tdata.input.mtu = params->max_mtu;\n+\n+\tn_ooo_bufs = (QED_IWARP_MAX_OOO * QED_IWARP_RCV_WND_SIZE_DEF) /\n+\t\t     iwarp_info->max_mtu;\n+\tn_ooo_bufs = min_t(u32, n_ooo_bufs, QED_IWARP_LL2_OOO_MAX_RX_SIZE);\n+\n+\tdata.input.rx_num_desc = n_ooo_bufs;\n+\tdata.input.rx_num_ooo_buffers = n_ooo_bufs;\n+\n+\tdata.input.tx_max_bds_per_packet = 1;\t/* will never be fragmented */\n+\tdata.input.tx_num_desc = QED_IWARP_LL2_OOO_DEF_TX_SIZE;\n+\tdata.p_connection_handle = &iwarp_info->ll2_ooo_handle;\n+\n+\trc = qed_ll2_acquire_connection(p_hwfn, &data);\n+\tif (rc)\n+\t\tgoto err;\n+\n+\trc = qed_ll2_establish_connection(p_hwfn, iwarp_info->ll2_ooo_handle);\n+\tif (rc)\n+\t\tgoto err;\n+\n \treturn rc;\n err:\n \tqed_iwarp_ll2_stop(p_hwfn, p_ptt);\n@@ -2014,6 +2057,7 @@ int qed_iwarp_setup(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,\n \n \tqed_spq_register_async_cb(p_hwfn, PROTOCOLID_IWARP,\n \t\t\t\t  qed_iwarp_async_event);\n+\tqed_ooo_setup(p_hwfn);\n \n \treturn qed_iwarp_ll2_start(p_hwfn, params, p_ptt);\n }\ndiff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.h b/drivers/net/ethernet/qlogic/qed/qed_iwarp.h\nindex 148ef3c..9e2bfde 100644\n--- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.h\n+++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.h\n@@ -47,7 +47,12 @@ enum qed_iwarp_qp_state {\n #define QED_IWARP_LL2_SYN_TX_SIZE       (128)\n #define QED_IWARP_LL2_SYN_RX_SIZE       (256)\n #define QED_IWARP_MAX_SYN_PKT_SIZE      (128)\n-#define QED_IWARP_HANDLE_INVAL\t\t\t(0xff)\n+\n+#define QED_IWARP_LL2_OOO_DEF_TX_SIZE   (256)\n+#define QED_IWARP_MAX_OOO\t\t(16)\n+#define QED_IWARP_LL2_OOO_MAX_RX_SIZE   (16384)\n+\n+#define QED_IWARP_HANDLE_INVAL\t\t(0xff)\n \n struct qed_iwarp_ll2_buff {\n \tvoid *data;\n@@ -67,6 +72,7 @@ struct qed_iwarp_info {\n \tu8 crc_needed;\n \tu8 tcp_flags;\n \tu8 ll2_syn_handle;\n+\tu8 ll2_ooo_handle;\n \tu8 peer2peer;\n \tenum mpa_negotiation_mode mpa_rev;\n \tenum mpa_rtr_type rtr_type;\n@@ -147,6 +153,9 @@ struct qed_iwarp_listener {\n int qed_iwarp_setup(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,\n \t\t    struct qed_rdma_start_in_params *params);\n \n+void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn,\n+\t\t\t      struct iwarp_init_func_params *p_ramrod);\n+\n int qed_iwarp_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);\n \n void qed_iwarp_resc_free(struct qed_hwfn *p_hwfn);\ndiff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c\nindex 06715f7..4f46f28 100644\n--- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c\n+++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c\n@@ -551,10 +551,13 @@ static int qed_rdma_start_fw(struct qed_hwfn *p_hwfn,\n \tif (rc)\n \t\treturn rc;\n \n-\tif (QED_IS_IWARP_PERSONALITY(p_hwfn))\n+\tif (QED_IS_IWARP_PERSONALITY(p_hwfn)) {\n+\t\tqed_iwarp_init_fw_ramrod(p_hwfn,\n+\t\t\t\t\t &p_ent->ramrod.iwarp_init_func.iwarp);\n \t\tp_ramrod = &p_ent->ramrod.iwarp_init_func.rdma;\n-\telse\n+\t} else {\n \t\tp_ramrod = &p_ent->ramrod.roce_init_func.rdma;\n+\t}\n \n \tp_params_header = &p_ramrod->params_header;\n \tp_params_header->cnq_start_offset = (u8)RESC_START(p_hwfn,\n","prefixes":["v2","net-next","2/4"]}