From patchwork Sun Sep 24 09:09:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9967857 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 203E560383 for ; Sun, 24 Sep 2017 09:11:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 116C128966 for ; Sun, 24 Sep 2017 09:11:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0690028C5D; Sun, 24 Sep 2017 09:11:21 +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 0045328DDB for ; Sun, 24 Sep 2017 09:11:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751969AbdIXJK1 (ORCPT ); Sun, 24 Sep 2017 05:10:27 -0400 Received: from mail-by2nam01on0051.outbound.protection.outlook.com ([104.47.34.51]:27899 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751630AbdIXJKX (ORCPT ); Sun, 24 Sep 2017 05:10:23 -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=cBQS0PKXeyDY+iwwkYG/eBUsY+kjnMVOft7ImL7mtVs=; b=Qu04ATcABhMgg0nz2aEmLRJU833zTchDmUAWeUVFZoV/TvdGQDpTKXgx+bqveDjZJR4gi9eg+p37DYMySAO+ymZ1k/GWqOcNL3GV47oMQTDsDR087eVefCdTTvgJgXwX9NQbwyvjIHfFBnzmCxXKvNwsYmW0B6jsP79cnefzr0E= Received: from CO2PR07CA0066.namprd07.prod.outlook.com (10.174.192.34) by CY1PR0701MB2092.namprd07.prod.outlook.com (10.163.142.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sun, 24 Sep 2017 09:10:21 +0000 Received: from BN1AFFO11FD020.protection.gbl (2a01:111:f400:7c10::195) by CO2PR07CA0066.outlook.office365.com (2603:10b6:100::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.8 via Frontend Transport; Sun, 24 Sep 2017 09:10:21 +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 BN1AFFO11FD020.mail.protection.outlook.com (10.58.52.80) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.35.14 via Frontend Transport; Sun, 24 Sep 2017 09:10:20 +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; Sun, 24 Sep 2017 02:10:17 -0700 From: Michal Kalderon To: , , CC: , , Michal Kalderon , Ariel Elior 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 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(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); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB2092; 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; BN1AFFO11FD020; 1:Xa0unD+fENOlHrUNDQFsTVH1j37m3eoc2hUDvXK67CVb2qY1nSgY/SM78fuYlFPVNr7xv2AtCQMX7xXikL51OkJparOqOZYi9rEf+0a8sIrCd5nVsyVXkIeRhsfFelrB X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1842feba-ed2d-4c38-01e2-08d5032c14fe X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY1PR0701MB2092; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2092; 3:yGC+ZmYlQ7uUokV4s6xQoRjU0rZUf61tiFvDXz4R/gzzJsQPE5xt57MLXsmtcOzdltyh9xI99kzHYWy811oG3xUwmFDvoU/6RGQM93EF2RcskZOKAIy0pOktLpD0dWXPrUDp1hm6YwhrTAQfV3vg5xL5CIJysjSa+fbXrl3LQu2VHTChrerY1VmAvYbh/6/2lATCm95E4xTkX194kjar/GQJOwyPLuSZaxa2ulj9xcT/5dkb2VP3widRVfF3H/VuFczS0w7cIF6u/vPhx5mT6mqK+x1USH5VCR+sBIwUfjiUx/IvivCaRu2wfBqxClCWJ3n6/kNiF+dPS18G885e0A==; 25:OA9S8RQzLX32sl0ZRbSGwe38kk8tc+CQWOPzyZRL4c7TAepWwQYEAAe7eCw2OpsYFxg1Upc/CU8RM2JMdKWXOtK+W1dK1JZHUo9+ev6aKmKcDg/M63g00hwKBB9lamErKKwG7xSV+VVNp3h/IC3VWj2bcp99TD8Yx+DWdVGFjPZoYxSnf9RaVyL8io4PtJHwDLq69WPjt718FyT0FzYIMXkCfBhcMKykcfXN74D/3TvWVaxxKSBnhqeHnqKlfYAWz+HHF84MZX0xnrkh+i2SrtSMsX+U8VbQQy2pOe4G3MJs3TxBoz4V7yjMGc/DE2hbCl9fSLAlu6H5OhJv+drUMg==; 31:Pqy3VilCF+ywu73PfYqr6+jpMXFIDrUKqamZvPUbe87zJiE7+WHBUEai3hqFAhDzy0eo9y9d1WhKOtfmUdRVFcaXwURPVoKZv2aAP26QbvQiP8mgeEqfablWQ7umefH2bKVIKu448eoboOf5plaPv1SZa0BxMWXVTs2DwBho3VnyuESZfmtOZN13AVWu1nIJZ835KcJ/spUuOaCxHKUp/qHZKxoDxbMNMWP7AqE+MKI= X-MS-TrafficTypeDiagnostic: CY1PR0701MB2092: X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2092; 20:YsGVO8Gwpu05A4K6OMyJfrhalqN84OfDsb5QLyrXnoXuX7kVzpG0qH3g7lxXNdEKM/ZIXm73O6dFhbpsWdWH/z+K6Yn5+3aVEEY9NLbZOSnDuM9WopQLItxwtIN+16BHYxmzrguqdFZKCwYgM9q6b122wGT544BE155M0HWM31Vnni2FHuU8h7Jv3xdrWkKfcOjYrrsTAQ3nZ0nWgAb+zEOUXdAly30BPG9t2OZ0TnjZnzUQ1s2g19nkkkGwdytWmc40cXNCLYPmbz8qGUqBLSZ9FARgUTO+kbD8UMVq61eeAbFURg1xEc3vuPa5+Es9myWa2Hje0R8W53djJiztFcMRTwjneLSXYIo10NqhmB93WERJQPBUp6box+Nivh4AWdW51Z8HeTk3Iwn7pnQk1TgH2KM1bzq7z9PW1GqgRA3H93Ys+bpik7t8HDN8UpZxb8UuTQtpmC7IlqXHXcJjU3GQB/Zxd3fDqVQpgTQYLgWq8ZFJjb6OaQQg3Do0oB99; 4:YL4NRjJ6QomexrlidmN7m/g5a4ns22BQZnzwqQfjTr5CQjHROSYfWFbefjAuKAQfbP1ahD1WciVrcY/pbCDtDqMhIlhWis3zX1frOHTgFfUSTDDtc6J1fsSLnIUff/vqFcG8Ja9m+RXMbzYSaM2vc1NrbMwYFO/xA0pzDdZYCYrvn78USzVDLYUl9lVZzJOUoKV3jvy6vh+Nk5O2tTCAC7AE/JTscyuc3aFLZS3gzkTgva34SY4UnTeLwEz10PG8 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)(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); SRVR:CY1PR0701MB2092; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0701MB2092; X-Forefront-PRVS: 0440AC9990 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB2092; 23:CcZuWHxDz6TshEC0sFEdpVoR07q64zeCLRbJNrM?= =?us-ascii?Q?RoZ7GVGgq4v3rgjOgFvtQYZxyROdJoIMjNDMIvBMVoWGN6vJnJp00n5eDLtL?= =?us-ascii?Q?+PkFK1GpZwMJ+H0PhDucGc2DdwEOfdpmK14LCJDdZzygvfN8FFkA165VKwl5?= =?us-ascii?Q?TZyHdudVgAFfSvvIuoM9BPEkfnXgD1UP/Xzw3q+89jt/WWI53x6Dr9TToJrr?= =?us-ascii?Q?HIsMH6RSjfYwXvuui5rIes3UeWq7Q+owGhhz5Dz7fkMbVfica2RYXwK6ONX+?= =?us-ascii?Q?dhxpR0egdFQrhqO7KTagRakwi+5tmakKmXVlk8yZOKdgUdIM7Nw5PENQkdz4?= =?us-ascii?Q?cdB1qx5c2LySdQwrMCHx68IIGrsoYg+ffI7kpCkg19Jx6Xb84BfErB11dwja?= =?us-ascii?Q?rr5hIxJsjxJ+cLrwdg1Eu9Bv092kgj7PTPGVGMuVfnfL7i5TOY1ct88hMp66?= =?us-ascii?Q?ooNJDNwHg1CIzX4qWjk6QiDMy6pSTYQ9h3gigtA4elw67EsfhitSu+RfDC2y?= =?us-ascii?Q?K/EU8lEgnAxEa93brNNHymYnyWWXeYGfIS/WpVdorGH7Uq3zY/ue+edb+9mn?= =?us-ascii?Q?Ezde+/k9Ti/7QARspBLmt1QYDODFiixAe/rkMwkylxH8vkm3J9R5TdjfLr5L?= =?us-ascii?Q?l7Tk+6Ql/IaQv0k3RZ/exSnienlfRbK4CPju5wcksOyYgbZKx9uZF83NMNlY?= =?us-ascii?Q?ueewQj91E0gMIz1t4nSc7KhXVUClw9XwHlYjRHU6HMEpTHgdj3qDnaXYPlKT?= =?us-ascii?Q?fBf9Wkz15WenI+mksIKl+nYVUMWYDIMPMj9y+auxCkMXtTYMCBoPKwjcs68I?= =?us-ascii?Q?6wDmsxcZ7xNAC/NN+hKaO5+hsyGXzzatUFXBI4qyB8xv6oKkJmLcSINNbV8x?= =?us-ascii?Q?ObHFebYDbMxRJMX1y8/6qH9hnEuJ8YQhvEv+CHqdHS5EHc1PA6kZwTM3nZLV?= =?us-ascii?Q?fDEcOTCFK/BDdN/yJfdbR/fVbspz/tvL+ULfVhX9V/AOCXfIXIQ+hP6TndG+?= =?us-ascii?Q?CXydYSP17711hOfujZqa9++lD?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2092; 6:ZpnZ33Pwe7B0qRLMo9zWAEiLvslZFb6UIMB1pCzTvO6z/pOOZQ/fRWfHB5S+VvYydlElngLMcZkOh5cVARocM0sRnkDhJO64RJe5BogoztTkXJrzqQwGVt7Ig8ZHE4woNFQgrxgzusH5rOB4cDfaQ+5wx32Z/vGCELx1C7P5gufRhwyiQuMO/uAoLVLlzPy0eGle8pSTTAEad+7iPsQChGrKvNNP9h8gKN4UdJv+YFzZc9xfUQ+N42RUcjqQEIRzooyzOXvMH8BlNJzqr5XtyMvH4ute9Xs2GQICIw2/duLPRLEYIbbrBMtFbbV0nXe/yaNhm0JKDB4yM1knMgBB4w==; 5:T4T6WbFRjruH1Wq4OCi5en+6Y7PHOr2KXbUx17FN2UmO44AYVY4XaIxDZ7jLx9uP8d2AlUI72bidyu+9ndQMezlbGF6KpNKK2xVWZfVmWxpwbte9N2alBew/NWL84O22tDUtLhPWIz1WltJ6hF+HgA==; 24:SQ3cxi/FF4HR61D6KO32Qn47Qsrsdl72AiIxRVIbBKv5EPXSatHV/lZnWYL35D5BXxvpyTK/hR+RWe7cKRnUzrxABwGdrVAdNXyLcfHOikc=; 7:fk3NV9+cwo3Z3gl+RHjCSbKsUhrkMPld9TjWp/vI1Os4u/a76DiXjKJxAOHKbBkvw3vIsJ/9uIb+wNcNqwHQVjQnY4ZpVuzFkoZfs8ha/Uk4pD/p52fj7Cz4vF+UZsKvC/ITFPACQkySzni9KBbEr2b1lC5nADZACakHyeruWNHl/1PuYDaldyQFd2psGznVhHxZiXrtfN1i9H21V2reMViD6KedP1eivLDcnafHfS4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2017 09:10:20.4840 (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: CY1PR0701MB2092 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 iWARP requires OOO support which is already provided by the ll2 interface (until now was used only for iSCSI offload). The changes mostly include opening a ll2 dedicated connection for OOO and notifiying the FW about the handle id. Signed-off-by: Michal Kalderon Signed-off-by: Ariel Elior --- drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 44 +++++++++++++++++++++++++++++ drivers/net/ethernet/qlogic/qed/qed_iwarp.h | 11 +++++++- drivers/net/ethernet/qlogic/qed/qed_rdma.c | 7 +++-- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index 9d989c9..568e985 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -41,6 +41,7 @@ #include "qed_rdma.h" #include "qed_reg_addr.h" #include "qed_sp.h" +#include "qed_ooo.h" #define QED_IWARP_ORD_DEFAULT 32 #define QED_IWARP_IRD_DEFAULT 32 @@ -119,6 +120,13 @@ static void qed_iwarp_cid_cleaned(struct qed_hwfn *p_hwfn, u32 cid) spin_unlock_bh(&p_hwfn->p_rdma_info->lock); } +void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn, + struct iwarp_init_func_params *p_ramrod) +{ + p_ramrod->ll2_ooo_q_index = RESC_START(p_hwfn, QED_LL2_QUEUE) + + p_hwfn->p_rdma_info->iwarp.ll2_ooo_handle; +} + static int qed_iwarp_alloc_cid(struct qed_hwfn *p_hwfn, u32 *cid) { int rc; @@ -1876,6 +1884,16 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) iwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL; } + if (iwarp_info->ll2_ooo_handle != QED_IWARP_HANDLE_INVAL) { + rc = qed_ll2_terminate_connection(p_hwfn, + iwarp_info->ll2_ooo_handle); + if (rc) + DP_INFO(p_hwfn, "Failed to terminate ooo connection\n"); + + qed_ll2_release_connection(p_hwfn, iwarp_info->ll2_ooo_handle); + iwarp_info->ll2_ooo_handle = QED_IWARP_HANDLE_INVAL; + } + qed_llh_remove_mac_filter(p_hwfn, p_ptt, p_hwfn->p_rdma_info->iwarp.mac_addr); return rc; @@ -1927,10 +1945,12 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) struct qed_iwarp_info *iwarp_info; struct qed_ll2_acquire_data data; struct qed_ll2_cbs cbs; + u16 n_ooo_bufs; int rc = 0; iwarp_info = &p_hwfn->p_rdma_info->iwarp; iwarp_info->ll2_syn_handle = QED_IWARP_HANDLE_INVAL; + iwarp_info->ll2_ooo_handle = QED_IWARP_HANDLE_INVAL; iwarp_info->max_mtu = params->max_mtu; @@ -1978,6 +1998,29 @@ static int qed_iwarp_ll2_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) if (rc) goto err; + /* Start OOO connection */ + data.input.conn_type = QED_LL2_TYPE_OOO; + data.input.mtu = params->max_mtu; + + n_ooo_bufs = (QED_IWARP_MAX_OOO * QED_IWARP_RCV_WND_SIZE_DEF) / + iwarp_info->max_mtu; + n_ooo_bufs = min_t(u32, n_ooo_bufs, QED_IWARP_LL2_OOO_MAX_RX_SIZE); + + data.input.rx_num_desc = n_ooo_bufs; + data.input.rx_num_ooo_buffers = n_ooo_bufs; + + data.input.tx_max_bds_per_packet = 1; /* will never be fragmented */ + data.input.tx_num_desc = QED_IWARP_LL2_OOO_DEF_TX_SIZE; + data.p_connection_handle = &iwarp_info->ll2_ooo_handle; + + rc = qed_ll2_acquire_connection(p_hwfn, &data); + if (rc) + goto err; + + rc = qed_ll2_establish_connection(p_hwfn, iwarp_info->ll2_ooo_handle); + if (rc) + goto err; + return rc; err: qed_iwarp_ll2_stop(p_hwfn, p_ptt); @@ -2014,6 +2057,7 @@ int qed_iwarp_setup(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, qed_spq_register_async_cb(p_hwfn, PROTOCOLID_IWARP, qed_iwarp_async_event); + qed_ooo_setup(p_hwfn); return qed_iwarp_ll2_start(p_hwfn, params, p_ptt); } diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.h b/drivers/net/ethernet/qlogic/qed/qed_iwarp.h index 148ef3c..9e2bfde 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.h +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.h @@ -47,7 +47,12 @@ enum qed_iwarp_qp_state { #define QED_IWARP_LL2_SYN_TX_SIZE (128) #define QED_IWARP_LL2_SYN_RX_SIZE (256) #define QED_IWARP_MAX_SYN_PKT_SIZE (128) -#define QED_IWARP_HANDLE_INVAL (0xff) + +#define QED_IWARP_LL2_OOO_DEF_TX_SIZE (256) +#define QED_IWARP_MAX_OOO (16) +#define QED_IWARP_LL2_OOO_MAX_RX_SIZE (16384) + +#define QED_IWARP_HANDLE_INVAL (0xff) struct qed_iwarp_ll2_buff { void *data; @@ -67,6 +72,7 @@ struct qed_iwarp_info { u8 crc_needed; u8 tcp_flags; u8 ll2_syn_handle; + u8 ll2_ooo_handle; u8 peer2peer; enum mpa_negotiation_mode mpa_rev; enum mpa_rtr_type rtr_type; @@ -147,6 +153,9 @@ struct qed_iwarp_listener { int qed_iwarp_setup(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt, struct qed_rdma_start_in_params *params); +void qed_iwarp_init_fw_ramrod(struct qed_hwfn *p_hwfn, + struct iwarp_init_func_params *p_ramrod); + int qed_iwarp_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); void qed_iwarp_resc_free(struct qed_hwfn *p_hwfn); diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c index 06715f7..4f46f28 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c @@ -551,10 +551,13 @@ static int qed_rdma_start_fw(struct qed_hwfn *p_hwfn, if (rc) return rc; - if (QED_IS_IWARP_PERSONALITY(p_hwfn)) + if (QED_IS_IWARP_PERSONALITY(p_hwfn)) { + qed_iwarp_init_fw_ramrod(p_hwfn, + &p_ent->ramrod.iwarp_init_func.iwarp); p_ramrod = &p_ent->ramrod.iwarp_init_func.rdma; - else + } else { p_ramrod = &p_ent->ramrod.roce_init_func.rdma; + } p_params_header = &p_ramrod->params_header; p_params_header->cnq_start_offset = (u8)RESC_START(p_hwfn,