get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/815715/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 815715,
    "url": "http://patchwork.ozlabs.org/api/patches/815715/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "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": "<1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com>",
    "list_archive_url": null,
    "date": "2017-09-19T17:26:17",
    "name": "[net-next,2/4] qed: Add iWARP out of order support",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "f5082b8725f9200533d9fa45f9ff38f9d009a95d",
    "submitter": {
        "id": 69904,
        "url": "http://patchwork.ozlabs.org/api/people/69904/?format=api",
        "name": "Michal Kalderon",
        "email": "Michal.Kalderon@cavium.com"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1505841979-26365-3-git-send-email-Michal.Kalderon@cavium.com/mbox/",
    "series": [
        {
            "id": 3932,
            "url": "http://patchwork.ozlabs.org/api/series/3932/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=3932",
            "date": "2017-09-19T17:26:15",
            "name": "qed: iWARP fixes and enhancements",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/3932/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/815715/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/815715/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=\"Zgg+A4hs\"; \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 3xxVF63q2kz9sMN\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 20 Sep 2017 03:27:38 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751473AbdISR1e (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 19 Sep 2017 13:27:34 -0400",
            "from mail-sn1nam02on0080.outbound.protection.outlook.com\n\t([104.47.36.80]:55516\n\t\"EHLO NAM02-SN1-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751378AbdISR12 (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tTue, 19 Sep 2017 13:27:28 -0400",
            "from DM5PR07CA0025.namprd07.prod.outlook.com (2603:10b6:3:16::11)\n\tby\n\tDM2PR07MB496.namprd07.prod.outlook.com (2a01:111:e400:2446::27) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11;\n\tTue, 19 Sep 2017 17:27:26 +0000",
            "from BL2FFO11FD034.protection.gbl (2a01:111:f400:7c09::183) by\n\tDM5PR07CA0025.outlook.office365.com (2603:10b6:3:16::11) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n\t15.20.56.11 via Frontend Transport; Tue, 19 Sep 2017 17:27:26 +0000",
            "from CAEXCH02.caveonetworks.com (50.232.66.26) by\n\tBL2FFO11FD034.mail.protection.outlook.com (10.173.161.130) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384)\n\tid 15.20.35.14 via Frontend Transport; Tue, 19 Sep 2017 17:27:25 +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; Tue, 19 Sep 2017 10:27:23 -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=Zgg+A4hszB5KGCtKuGPGnVEGIYQUAVVTVMDSMWCEoN06ipsoor0UX529vs7YCqWRIUT9U+dh5DyuPErg/M4W4j9BQIMsUTtfWx4n2MqRCgsEbYeFrbxbNDaObUPP/xyvyy7tV6sKXLVStO8TpYLkWHdvOUPrpLKrVSQ0NXXbohQ=",
        "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>",
        "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 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",
        "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)(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);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR07MB496;\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; BL2FFO11FD034;\n\t1:01gtZMnE0AUKrpmDPjKDJqdm7ogZ0Pzg09nwXCi9u5vEaEi3MThmlDJrvjcxFN0tZYthxXboNCOMpOfYG/IDHBgvvUOsLFl5G0izZVzcCWbZCWYpxrVvv2TeBJIUjYGf",
            "1; DM2PR07MB496;\n\t3:RaiqEdk30VAOOCh4omVW27oS0WAhCqkGABWaxbmCCi6s4hmBKu6rYnclprOFdIBpqSw8LmwgScq98XywqyctcTPVDJd/mP2Yuut4I0UhnGwRRW9OXpPVYNiifTicc4RXpPspFN/RII02kPx5zGaHQukVUx3IE9wf2ZWUypcAoflG33ZKHjAnCTasK18O+wJ8YXe5PQTiztL0vtwn4J9lPJhr2tay87HbokjuYFiMa1L+zd9QBgtwrWLADsWBKf6k0jmpO0G7cJ9EY2JA8xddjcy/z/puwA/a4H6Xb68JHI9BqMe/3yW3TjqkJbCI9dWWVi6Jx6ECmZgoX8qAdSnff09KHilxv5ir5nXSWvyZWcM=;\n\t25:2j7B1QFR3/UQ0eI+gY0LiouQDQbtC0M2N6sys8KhpPCikIn/7H8a8VuzMud7vrf4BRTaLeb9VWetOqMduMiA2XcXgdHPHosuXHQxonWWHjySBaOeZEUzpZZOx9EelKwWGi42wY4AOlZ3fYrbR2eYDzbqcxymr4N3hf5e+T2B3jtEpYe7o5tZQR7wkir5cmicpAp+rpxN2tG/lT2FQ5cSfHkW8d1YOYCPIpMGtntxXAwr9fmMMYH+YG/t5/bc2yMHzzkyPPehWxqnzDuyNZxEVI4Z7yx/ljxhW8RQbJasI1HnIVjGB9YYeyCDql1Mim8YAtAZO9TdRwd1syIV08fwKA==",
            "1; DM2PR07MB496;\n\t31:kgaZRqy7HANJBRV7LW+Hf1kp0SmmW0129Cpws/QRc+Pq3qHWW+7VOczCP4i44TpmAE75Tffu+nV9++Xgty8ROqfP3Wf09sZ19fhpvD0Liumsw8BBrQfmn1XAbp4Ehumt69ZpEDgBhBjJ+4qsPDGyliK6/TuVywxwM1+hEm+6w5S5DAo6lvA+MzCvX1C8bn7vs8PIA3vo3cyD9lSsup0nSj5U9kJDf+19BeVhTiKWMD8=;\n\t20:M4R/Or6GzdYhIAqK/L/tY3+s8rGe4pC5UULr7cy2/c8JtuiFsvG/6AE2B9eaq+U/ewS1yBslCpDWvOQKaBGUSxAuZ9WA9oG3B+Lr9Z+nQbnp6aPeI7FCTaWoe3TZVOoP7A0ZEgZEFDrspgrFa814qpBv5aiO9aTm8zE8fXlrWRjc3XCcYebsj32kSxD+TPJi4mi86v10r+1eqvjLyw5MMX4ML9Pwc7UHvW5MYv2twn1stOkoxhukuwjIefjXtFKca0KOSKAGkBUqksk48UDfINb0SYmSRVjKjt1sUex6yb6hQlMf7Th08obvWBbXs83ntEP1wJHS85ivMi/Rw/saDe3kDHbfob9AouFyWTq3HqsuFYwK6avbhpTF9r33++phmMiqY/N4luf5BE747ZsWcnk+Ep0EpOkrt5/WYuV0MRv7IjegAgXpQW62xgNmitSGAHpEFMpR8TiCKxlHFLthp86QcIS6CSJLzQ0I0n5Voq0VyXqCZATua2Gg+FBw1Na8",
            "1; DM2PR07MB496;\n\t4:xS/ddjNPQ82PrrDYdIjHbMZGW3VYUZ9ukKa56DG8vCpcAFOiK7E+0T9kvKWqIC++A0divATQsxuY9H1BUz5JMjAI6Mfpho7NJGgrElVi3EHFgtI/1u2NFyHVcIOx3bRRpWH5x/SNZueepFHjLaXHZROCw/qNIPaf8YqtGo5/S+HkNJNYF6IPbczliNZd1+OSPtNA5RDoXg5/jcsR41hZe5Yi96RewGo9zUax+JtC6jgmiJCEhzQO/d40PzS8C0m6",
            "1; DM2PR07MB496;\n\t23:DzDM4VR9qtg8DZnKZcd9TgvwNqAMFv51Qfzoi9GSVghC81HoAFhroiHPYxr4GP2U+WN1EbrJnTMuxtoUsUrW0+0EMQ+MUoYy98t7nlSeghU2LIr5n0VriAvG3Jt9P6KWfxN5EH7zJ0z/PbyBQPvYoaiN5fLZUGOr1waZ8SQ8zyJ/9MEv9G53N/BFtvVatcDnjkhVMmABMK8a7GxrQcyV9tAO0AFg7Ux92/yhkzLmfC24aw//VnnwISqY0cguUq/WTSXMeoy+kf7KD6UAsrdogfVPrL8HqKrm54RfDrpClRWuf5ATPFEguqQwR2SR7jJfbtydAICZVTvYP6budF7AtLlTZ4pI0pTiIQQvwicD/BHtN6uy3oFlIeO6Og0cwyyipyWY3v7/bPMwOWqmYQq3rB8MEc6+AX8LZKgMC85PSq1FBZT2qouQu9dthoJu8kywgQX0nSRWIhrFRPpBJqvL8hvvoc1AuYvscyaj89k/UAdpEFTYXag8V61asHPpftf0tA97awydlZJzB31Q78UbxxybXKIFnGAsFwoQwxvTZdjruxsfPpxwbwpWgsymJKiJ0PE2DjiEZMramNCc8xlOwR88Ge2P3LjMV0813AgjvJYpPchxCOcbGiQgHkDsYSGJkNHK7Hjp3LD8/Z4oKJwhZWDnWsr3TzOuAJKyZUzEHLsBGy/vy5JdfBHene0387tJILlZtsTd4lEa7cW4HM7BXQ9KAxTo/9pCdipIF9vNZm4Eer+mysy7GG7le1hd/ARQqqscTF1f1KLMLQpOuUE1SxSgJ6umPR+8uCJ9f5PK+QmFZ1HSh0P7g4pT2AybRhtxgtCJ7qn7U0BZSYhSRLgGJI5jk+5yD1bv2m2cp9GCj/cGVAEPg8PwbL7rojjMc+5+OTJaQe+BZFGgpQQxiKcBXMxlZWL6XN0kSXRqfE10FoSdRxuhySIEgXdWohFzegqW0mUBBIPg9HNNoQMDXGjn10akYgP+mlO8o1SynGy7aqw=",
            "1; DM2PR07MB496;\n\t6:5SwborcSVOLX3TDewWd+j12Di8ourrvfW3pfW05qRkKxIfN+LSs4mPaLvpgECrDyN55JqQn5V1F+yp8KPmwCAH4CsUY2ypcU7n51ONtgwB9exvnoMKm5bfo2elZYmJaMOUQzG2P2GQ4kfKO4GQqzRwU1uGPNdKvVSt/FX4wlsIaiTV/+xiU8/Ht1BU7Z0Y4fHy3KLnuIsiaO1/RhahrdRNkP9fljV49aTUECYpaKZpvaKP146qvmRJldleAmcpcRr+uNtbw0RijgG+nEnuciISjQjyQfROvYxfQaVAlJvpzYvuR6LuSHSKTo8UdG/e+ZzhtILPqSuSBqWldjMIwlkQ==;\n\t5:vB+JFcynOon6tXqertjIFGapyjGDn+oYGFYeB5rISF3JdWoXzwoXJ66wvGNwvsvLOesybBWW5YnVqhC7KXxVZjmDmZjX+GVSBaCnhHFXGQidn/oBoi1y/ytGhGhGgi4gHQdIGGAa4aTH8nZ+Z6kDVA==;\n\t24:g10v88kr4k0OSC8hksIX4FNri7yHUQgCGto5hLBXo4yjB/JY5jT8o+JAGGyr/qhEQy272ARgq6ny1Wd0nV4FSGUTCTVKIfCwjghhDYN5k6M=;\n\t7:y/5JmhgOQIY90bj4SS0Tbfr3fKiOOMcsNV9YFUOMc6H1ZFg86G09D4Pirlk2jkj3/WDRLDQxYvxOE5ZMrRQ4muic0SVl87nyYNiPhEDIBNnK2sydDAlRTRKy4sSQQwTkcMBqcc5bJchC7WsvQp/W49w8f2n94pHaOZcA4WjSFqgvhy2geUmoXkw5tZzROaiF6v7c7OCBIyN4Fr9rdDBnOuJy42sPZcb5digj7l8ql/c="
        ],
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "16d3bf52-87e4-41df-4ed2-08d4ff83b215",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DM2PR07MB496; ",
        "X-MS-TrafficTypeDiagnostic": "DM2PR07MB496:",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Microsoft-Antispam-PRVS": "<DM2PR07MB4964AE907B943DBA5B4D72788600@DM2PR07MB496.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)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6041248)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DM2PR07MB496; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DM2PR07MB496; ",
        "X-Forefront-PRVS": "04359FAD81",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "cavium.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Sep 2017 17:27:25.6190\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": "DM2PR07MB496",
        "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": [
        "net-next",
        "2/4"
    ]
}