From patchwork Tue Sep 19 17:26:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9959779 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 254B860568 for ; Tue, 19 Sep 2017 17:27:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0DC2A28ED5 for ; Tue, 19 Sep 2017 17:27:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 02D3328ED9; Tue, 19 Sep 2017 17:27:52 +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 5F5A028ED5 for ; Tue, 19 Sep 2017 17:27:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751391AbdISR1c (ORCPT ); Tue, 19 Sep 2017 13:27:32 -0400 Received: from mail-sn1nam02on0080.outbound.protection.outlook.com ([104.47.36.80]:55516 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751378AbdISR12 (ORCPT ); Tue, 19 Sep 2017 13:27:28 -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=Zgg+A4hszB5KGCtKuGPGnVEGIYQUAVVTVMDSMWCEoN06ipsoor0UX529vs7YCqWRIUT9U+dh5DyuPErg/M4W4j9BQIMsUTtfWx4n2MqRCgsEbYeFrbxbNDaObUPP/xyvyy7tV6sKXLVStO8TpYLkWHdvOUPrpLKrVSQ0NXXbohQ= Received: from DM5PR07CA0025.namprd07.prod.outlook.com (2603:10b6:3:16::11) by DM2PR07MB496.namprd07.prod.outlook.com (2a01:111:e400:2446::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Tue, 19 Sep 2017 17:27:26 +0000 Received: from BL2FFO11FD034.protection.gbl (2a01:111:f400:7c09::183) by DM5PR07CA0025.outlook.office365.com (2603:10b6:3:16::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.11 via Frontend Transport; Tue, 19 Sep 2017 17:27:26 +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 BL2FFO11FD034.mail.protection.outlook.com (10.173.161.130) 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; Tue, 19 Sep 2017 17:27:25 +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; Tue, 19 Sep 2017 10:27:23 -0700 From: Michal Kalderon To: , CC: , , Michal Kalderon , Ariel Elior Subject: [PATCH net-next 2/4] qed: Add iWARP out of order support Date: Tue, 19 Sep 2017 20:26:17 +0300 Message-ID: <1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1505841979-26365-1-git-send-email-Michal.Kalderon@cavium.com> References: <1505841979-26365-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)(346002)(376002)(2980300002)(428002)(189002)(199003)(5003940100001)(478600001)(4326008)(5660300001)(305945005)(2906002)(48376002)(104016004)(16586007)(86362001)(72206003)(110136005)(47776003)(316002)(107886003)(36756003)(54906002)(76176999)(50986999)(50226002)(101416001)(81156014)(106466001)(81166006)(105586002)(8676002)(50466002)(8936002)(2950100002)(189998001)(356003)(6666003)(69596002)(77096006); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR07MB496; 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; BL2FFO11FD034; 1:01gtZMnE0AUKrpmDPjKDJqdm7ogZ0Pzg09nwXCi9u5vEaEi3MThmlDJrvjcxFN0tZYthxXboNCOMpOfYG/IDHBgvvUOsLFl5G0izZVzcCWbZCWYpxrVvv2TeBJIUjYGf X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 16d3bf52-87e4-41df-4ed2-08d4ff83b215 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR07MB496; X-Microsoft-Exchange-Diagnostics: 1; DM2PR07MB496; 3:RaiqEdk30VAOOCh4omVW27oS0WAhCqkGABWaxbmCCi6s4hmBKu6rYnclprOFdIBpqSw8LmwgScq98XywqyctcTPVDJd/mP2Yuut4I0UhnGwRRW9OXpPVYNiifTicc4RXpPspFN/RII02kPx5zGaHQukVUx3IE9wf2ZWUypcAoflG33ZKHjAnCTasK18O+wJ8YXe5PQTiztL0vtwn4J9lPJhr2tay87HbokjuYFiMa1L+zd9QBgtwrWLADsWBKf6k0jmpO0G7cJ9EY2JA8xddjcy/z/puwA/a4H6Xb68JHI9BqMe/3yW3TjqkJbCI9dWWVi6Jx6ECmZgoX8qAdSnff09KHilxv5ir5nXSWvyZWcM=; 25:2j7B1QFR3/UQ0eI+gY0LiouQDQbtC0M2N6sys8KhpPCikIn/7H8a8VuzMud7vrf4BRTaLeb9VWetOqMduMiA2XcXgdHPHosuXHQxonWWHjySBaOeZEUzpZZOx9EelKwWGi42wY4AOlZ3fYrbR2eYDzbqcxymr4N3hf5e+T2B3jtEpYe7o5tZQR7wkir5cmicpAp+rpxN2tG/lT2FQ5cSfHkW8d1YOYCPIpMGtntxXAwr9fmMMYH+YG/t5/bc2yMHzzkyPPehWxqnzDuyNZxEVI4Z7yx/ljxhW8RQbJasI1HnIVjGB9YYeyCDql1Mim8YAtAZO9TdRwd1syIV08fwKA== X-MS-TrafficTypeDiagnostic: DM2PR07MB496: X-Microsoft-Exchange-Diagnostics: 1; DM2PR07MB496; 31:kgaZRqy7HANJBRV7LW+Hf1kp0SmmW0129Cpws/QRc+Pq3qHWW+7VOczCP4i44TpmAE75Tffu+nV9++Xgty8ROqfP3Wf09sZ19fhpvD0Liumsw8BBrQfmn1XAbp4Ehumt69ZpEDgBhBjJ+4qsPDGyliK6/TuVywxwM1+hEm+6w5S5DAo6lvA+MzCvX1C8bn7vs8PIA3vo3cyD9lSsup0nSj5U9kJDf+19BeVhTiKWMD8=; 20:M4R/Or6GzdYhIAqK/L/tY3+s8rGe4pC5UULr7cy2/c8JtuiFsvG/6AE2B9eaq+U/ewS1yBslCpDWvOQKaBGUSxAuZ9WA9oG3B+Lr9Z+nQbnp6aPeI7FCTaWoe3TZVOoP7A0ZEgZEFDrspgrFa814qpBv5aiO9aTm8zE8fXlrWRjc3XCcYebsj32kSxD+TPJi4mi86v10r+1eqvjLyw5MMX4ML9Pwc7UHvW5MYv2twn1stOkoxhukuwjIefjXtFKca0KOSKAGkBUqksk48UDfINb0SYmSRVjKjt1sUex6yb6hQlMf7Th08obvWBbXs83ntEP1wJHS85ivMi/Rw/saDe3kDHbfob9AouFyWTq3HqsuFYwK6avbhpTF9r33++phmMiqY/N4luf5BE747ZsWcnk+Ep0EpOkrt5/WYuV0MRv7IjegAgXpQW62xgNmitSGAHpEFMpR8TiCKxlHFLthp86QcIS6CSJLzQ0I0n5Voq0VyXqCZATua2Gg+FBw1Na8 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)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6041248)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR07MB496; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR07MB496; X-Microsoft-Exchange-Diagnostics: 1; DM2PR07MB496; 4:xS/ddjNPQ82PrrDYdIjHbMZGW3VYUZ9ukKa56DG8vCpcAFOiK7E+0T9kvKWqIC++A0divATQsxuY9H1BUz5JMjAI6Mfpho7NJGgrElVi3EHFgtI/1u2NFyHVcIOx3bRRpWH5x/SNZueepFHjLaXHZROCw/qNIPaf8YqtGo5/S+HkNJNYF6IPbczliNZd1+OSPtNA5RDoXg5/jcsR41hZe5Yi96RewGo9zUax+JtC6jgmiJCEhzQO/d40PzS8C0m6 X-Forefront-PRVS: 04359FAD81 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR07MB496; 23:DzDM4VR9qtg8DZnKZcd9TgvwNqAMFv51Qfzoi9GSVg?= =?us-ascii?Q?hC81HoAFhroiHPYxr4GP2U+WN1EbrJnTMuxtoUsUrW0+0EMQ+MUoYy98t7nl?= =?us-ascii?Q?SeghU2LIr5n0VriAvG3Jt9P6KWfxN5EH7zJ0z/PbyBQPvYoaiN5fLZUGOr1w?= =?us-ascii?Q?aZ8SQ8zyJ/9MEv9G53N/BFtvVatcDnjkhVMmABMK8a7GxrQcyV9tAO0AFg7U?= =?us-ascii?Q?x92/yhkzLmfC24aw//VnnwISqY0cguUq/WTSXMeoy+kf7KD6UAsrdogfVPrL?= =?us-ascii?Q?8HqKrm54RfDrpClRWuf5ATPFEguqQwR2SR7jJfbtydAICZVTvYP6budF7AtL?= =?us-ascii?Q?lTZ4pI0pTiIQQvwicD/BHtN6uy3oFlIeO6Og0cwyyipyWY3v7/bPMwOWqmYQ?= =?us-ascii?Q?q3rB8MEc6+AX8LZKgMC85PSq1FBZT2qouQu9dthoJu8kywgQX0nSRWIhrFRP?= =?us-ascii?Q?pBJqvL8hvvoc1AuYvscyaj89k/UAdpEFTYXag8V61asHPpftf0tA97awydlZ?= =?us-ascii?Q?JzB31Q78UbxxybXKIFnGAsFwoQwxvTZdjruxsfPpxwbwpWgsymJKiJ0PE2Dj?= =?us-ascii?Q?iEZMramNCc8xlOwR88Ge2P3LjMV0813AgjvJYpPchxCOcbGiQgHkDsYSGJkN?= =?us-ascii?Q?HK7Hjp3LD8/Z4oKJwhZWDnWsr3TzOuAJKyZUzEHLsBGy/vy5JdfBHene0387?= =?us-ascii?Q?tJILlZtsTd4lEa7cW4HM7BXQ9KAxTo/9pCdipIF9vNZm4Eer+mysy7GG7le1?= =?us-ascii?Q?hd/ARQqqscTF1f1KLMLQpOuUE1SxSgJ6umPR+8uCJ9f5PK+QmFZ1HSh0P7g4?= =?us-ascii?Q?pT2AybRhtxgtCJ7qn7U0BZSYhSRLgGJI5jk+5yD1bv2m2cp9GCj/cGVAEPg8?= =?us-ascii?Q?PwbL7rojjMc+5+OTJaQe+BZFGgpQQxiKcBXMxlZWL6XN0kSXRqfE10FoSdRx?= =?us-ascii?Q?uhySIEgXdWohFzegqW0mUBBIPg9HNNoQMDXGjn10akYgP+mlO8o1SynGy7aq?= =?us-ascii?Q?w=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR07MB496; 6:5SwborcSVOLX3TDewWd+j12Di8ourrvfW3pfW05qRkKxIfN+LSs4mPaLvpgECrDyN55JqQn5V1F+yp8KPmwCAH4CsUY2ypcU7n51ONtgwB9exvnoMKm5bfo2elZYmJaMOUQzG2P2GQ4kfKO4GQqzRwU1uGPNdKvVSt/FX4wlsIaiTV/+xiU8/Ht1BU7Z0Y4fHy3KLnuIsiaO1/RhahrdRNkP9fljV49aTUECYpaKZpvaKP146qvmRJldleAmcpcRr+uNtbw0RijgG+nEnuciISjQjyQfROvYxfQaVAlJvpzYvuR6LuSHSKTo8UdG/e+ZzhtILPqSuSBqWldjMIwlkQ==; 5:vB+JFcynOon6tXqertjIFGapyjGDn+oYGFYeB5rISF3JdWoXzwoXJ66wvGNwvsvLOesybBWW5YnVqhC7KXxVZjmDmZjX+GVSBaCnhHFXGQidn/oBoi1y/ytGhGhGgi4gHQdIGGAa4aTH8nZ+Z6kDVA==; 24:g10v88kr4k0OSC8hksIX4FNri7yHUQgCGto5hLBXo4yjB/JY5jT8o+JAGGyr/qhEQy272ARgq6ny1Wd0nV4FSGUTCTVKIfCwjghhDYN5k6M=; 7:y/5JmhgOQIY90bj4SS0Tbfr3fKiOOMcsNV9YFUOMc6H1ZFg86G09D4Pirlk2jkj3/WDRLDQxYvxOE5ZMrRQ4muic0SVl87nyYNiPhEDIBNnK2sydDAlRTRKy4sSQQwTkcMBqcc5bJchC7WsvQp/W49w8f2n94pHaOZcA4WjSFqgvhy2geUmoXkw5tZzROaiF6v7c7OCBIyN4Fr9rdDBnOuJy42sPZcb5digj7l8ql/c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 17:27:25.6190 (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: DM2PR07MB496 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,