get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77841,
    "url": "https://patches.dpdk.org/api/patches/77841/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200916042851.32914-13-ajit.khaparde@broadcom.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200916042851.32914-13-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200916042851.32914-13-ajit.khaparde@broadcom.com",
    "date": "2020-09-16T04:28:38",
    "name": "[v2,12/25] net/bnxt: fix VFR cleanup during init failure",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "1ea0160d95e48665b7aa8b74eca4c7071590abd9",
    "submitter": {
        "id": 501,
        "url": "https://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "https://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200916042851.32914-13-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 12255,
            "url": "https://patches.dpdk.org/api/series/12255/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=12255",
            "date": "2020-09-16T04:28:26",
            "name": "patchset for bnxt",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/12255/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/77841/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/77841/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 88B6EA04C7;\n\tWed, 16 Sep 2020 06:31:07 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 09DF51C19F;\n\tWed, 16 Sep 2020 06:29:23 +0200 (CEST)",
            "from mail-pf1-f226.google.com (mail-pf1-f226.google.com\n [209.85.210.226]) by dpdk.org (Postfix) with ESMTP id A57451C19F\n for <dev@dpdk.org>; Wed, 16 Sep 2020 06:29:11 +0200 (CEST)",
            "by mail-pf1-f226.google.com with SMTP id z18so686497pfg.0\n for <dev@dpdk.org>; Tue, 15 Sep 2020 21:29:11 -0700 (PDT)",
            "from localhost.localdomain ([192.19.223.252])\n by smtp-relay.gmail.com with ESMTPS id hk6sm132636pjb.6.2020.09.15.21.29.10\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Tue, 15 Sep 2020 21:29:10 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com;\n s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=jMc0VYK9X62arJbzhvQVonQH5/F6wLUA9imtipla3y0=;\n b=EbKhb/n+PMDo/xx5yzR1MGjSbC6xDq+3B2suc8YtoOJNSPQi9UBCFyGMsoOI90mGbz\n 9mNbjcaCoCTc8JkXJD95Ird3ym/VzgZtmpzmSCGuPWAO4T0fa5b4dV2tzvihYreaIDMV\n YYoqKFw1mbW+iM0Na/3dSWbPAkVGtjz34Xz7s=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=jMc0VYK9X62arJbzhvQVonQH5/F6wLUA9imtipla3y0=;\n b=IO21rAg8ILo6Mmql9isOdErrjAF2Wc06GGTgkVC2HvHqjL69/SuCl5cde+LlBnngNX\n Pu+KQPJ5MbH7UAHt41QnRhy082gOFaRHR602XBA09rMn5clRLbxe20Ok+vHjbEVycCG3\n wsjGvy57vbqloqkHNCGIGLiBTR9+0sxVhckfFUwt3vGIneNNpr4bYJT5LrPRzcgR7bRr\n 5zRuuGAhwBG0VTbrpaDfRfBGubqdGqJefrmDKCMZW6NumBOD2vJGRu9GzZfgrnf4JLxQ\n 81TDGFG2cKfCvk3HwvYPNuyhanMTVflOKjrzxiHP7smeuG+YycCvMc74bZ6Jq8eeSniV\n S4JA==",
        "X-Gm-Message-State": "AOAM533HYd5Q9nrC22j+P/FTd0u4FE5IX7Y5sckuA6QZVBEOa2EA+WZI\n atnmcm+yGm0aKWtKcqdibvnmZhfDtqIDlzbKQikNtJBig3OQjqzUT5AadHKgVWZu5utK4/ZvKVt\n EDZdQtacHZqi3soBQtRuZ1lXdZGIVxCMgmIdfg8icxTCzgXO23lPPCvb/Mru6sgCNGSfkLRXwT5\n BBHw==",
        "X-Google-Smtp-Source": "\n ABdhPJyjYKqoXyaz/THr/di4BAgCjHctEs80ncsjiJIG9KJyYXGW95Unw0/OzkNbVrWcC4Oxu4Cf7NEYxLfZ",
        "X-Received": "by 2002:a62:be0f:0:b029:142:2501:39f0 with SMTP id\n l15-20020a62be0f0000b0290142250139f0mr4843504pff.63.1600230550714;\n Tue, 15 Sep 2020 21:29:10 -0700 (PDT)",
        "X-Relaying-Domain": "broadcom.com",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Somnath Kotur <somnath.kotur@broadcom.com>,\n Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>",
        "Date": "Tue, 15 Sep 2020 21:28:38 -0700",
        "Message-Id": "<20200916042851.32914-13-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.21.1 (Apple Git-122.3)",
        "In-Reply-To": "<20200916042851.32914-1-ajit.khaparde@broadcom.com>",
        "References": "<20200911015603.88359-1-ajit.khaparde@broadcom.com>\n <20200916042851.32914-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 12/25] net/bnxt: fix VFR cleanup during init\n\tfailure",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Somnath Kotur <somnath.kotur@broadcom.com>\n\nIf VF-rep port add fails for some reason, code was rolling back\nall ports added so far. With some applications, there is no need\nto do that. Just log failure message for the VF rep port add and continue.\nAlso include RTE_MAX_ETH_PORTS value in the bounds check as one port\nwill be taken by the uplink port anyway\n\nFixes: 6dc83230b43b (\"net/bnxt: support port representor data path\")\n\nSigned-off-by: Somnath Kotur <somnath.kotur@broadcom.com>\nReviewed-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt_ethdev.c | 44 ++++++++++++++++++++--------------\n 1 file changed, 26 insertions(+), 18 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 890888531..2a106fe7a 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -6014,7 +6014,7 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,\n \t\treturn -EINVAL;\n \t}\n \n-\tif (num_rep > RTE_MAX_ETHPORTS) {\n+\tif (num_rep >= RTE_MAX_ETHPORTS) {\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"nb_representor_ports = %d > %d MAX ETHPORTS\\n\",\n \t\t\t    num_rep, RTE_MAX_ETHPORTS);\n@@ -6057,28 +6057,36 @@ static int bnxt_rep_port_probe(struct rte_pci_device *pci_dev,\n \t\t\t\t\t NULL, NULL,\n \t\t\t\t\t bnxt_vf_representor_init,\n \t\t\t\t\t &representor);\n-\n-\t\tif (!ret) {\n-\t\t\tvf_rep_eth_dev = rte_eth_dev_allocated(name);\n-\t\t\tif (!vf_rep_eth_dev) {\n-\t\t\t\tPMD_DRV_LOG(ERR, \"Failed to find the eth_dev\"\n-\t\t\t\t\t    \" for VF-Rep: %s.\", name);\n-\t\t\t\tbnxt_pci_remove_dev_with_reps(backing_eth_dev);\n-\t\t\t\tret = -ENODEV;\n-\t\t\t\treturn ret;\n-\t\t\t}\n-\t\t\tPMD_DRV_LOG(DEBUG, \"BNXT Port:%d VFR pci probe\\n\",\n-\t\t\t\t    backing_eth_dev->data->port_id);\n-\t\t\tbacking_bp->rep_info[representor.vf_id].vfr_eth_dev =\n-\t\t\t\tvf_rep_eth_dev;\n-\t\t\tbacking_bp->num_reps++;\n-\t\t} else {\n+\t\tif (ret) {\n \t\t\tPMD_DRV_LOG(ERR, \"failed to create bnxt vf \"\n \t\t\t\t    \"representor %s.\", name);\n-\t\t\tbnxt_pci_remove_dev_with_reps(backing_eth_dev);\n+\t\t\tgoto err;\n \t\t}\n+\n+\t\tvf_rep_eth_dev = rte_eth_dev_allocated(name);\n+\t\tif (!vf_rep_eth_dev) {\n+\t\t\tPMD_DRV_LOG(ERR, \"Failed to find the eth_dev\"\n+\t\t\t\t    \" for VF-Rep: %s.\", name);\n+\t\t\tret = -ENODEV;\n+\t\t\tgoto err;\n+\t\t}\n+\n+\t\tPMD_DRV_LOG(DEBUG, \"BNXT Port:%d VFR pci probe\\n\",\n+\t\t\t\tbacking_eth_dev->data->port_id);\n+\t\tbacking_bp->rep_info[representor.vf_id].vfr_eth_dev =\n+\t\t\t\t\t\t\t vf_rep_eth_dev;\n+\t\tbacking_bp->num_reps++;\n \t}\n \n+\treturn 0;\n+\n+err:\n+\t/* If num_rep > 1, then rollback already created\n+\t * ports, since we'll be failing the probe anyway\n+\t */\n+\tif (num_rep > 1)\n+\t\tbnxt_pci_remove_dev_with_reps(backing_eth_dev);\n+\n \treturn ret;\n }\n \n",
    "prefixes": [
        "v2",
        "12/25"
    ]
}