get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 64252,
    "url": "http://patches.dpdk.org/api/patches/64252/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200107003735.96055-2-ajit.khaparde@broadcom.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20200107003735.96055-2-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200107003735.96055-2-ajit.khaparde@broadcom.com",
    "date": "2020-01-07T00:37:29",
    "name": "[v3,1/7] net/bnxt: fix link failure during port toggle",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "65ec503b3d428698ab64e3f7f60253f98c161cbb",
    "submitter": {
        "id": 501,
        "url": "http://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200107003735.96055-2-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 7997,
            "url": "http://patches.dpdk.org/api/series/7997/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7997",
            "date": "2020-01-07T00:37:28",
            "name": "bnxt patchset",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/7997/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/64252/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/64252/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 49988A04F6;\n\tTue,  7 Jan 2020 01:38:11 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id AE5D91D728;\n\tTue,  7 Jan 2020 01:37:48 +0100 (CET)",
            "from rnd-relay.smtp.broadcom.com (rnd-relay.smtp.broadcom.com\n [192.19.229.170]) by dpdk.org (Postfix) with ESMTP id A75021D710;\n Tue,  7 Jan 2020 01:37:41 +0100 (CET)",
            "from mail-irv-17.broadcom.com (mail-irv-17.lvn.broadcom.net\n [10.75.242.48])\n by rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id 397C430C2C3;\n Mon,  6 Jan 2020 16:31:49 -0800 (PST)",
            "from C02VPB22HTD6.wifi.broadcom.net (c02vpb22htd6.wifi.broadcom.net\n [10.69.74.102])\n by mail-irv-17.broadcom.com (Postfix) with ESMTP id 4E68814008B;\n Mon,  6 Jan 2020 16:37:38 -0800 (PST)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com 397C430C2C3",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n s=dkimrelay; t=1578357109;\n bh=5guPopVHKTAPlFVsIOEZQC1L2fCiY07M2CT80meDiu4=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=h5ei1SZ41E6viavQcj7sjOKuMQUqw0cNIe96yVS60X4EDk/YGh8b1y5pq3U/rDSH6\n nFcQjxG+AeiSNCwJ/aoA+Q5DP0erXTSBfNtNjPJJBm6OM0q5s5cpy9f2M2xEELRI6d\n MZw9tUxvdBEMOHAHTCmO/oZqk38EK52amZUu1/mU=",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com,\n Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>,\n stable@dpdk.org, Somnath Kotur <somnath.kotur@broadcom.com>",
        "Date": "Mon,  6 Jan 2020 16:37:29 -0800",
        "Message-Id": "<20200107003735.96055-2-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.21.0 (Apple Git-122.2)",
        "In-Reply-To": "<20200107003735.96055-1-ajit.khaparde@broadcom.com>",
        "References": "<20191221022937.54397-1-ajit.khaparde@broadcom.com>\n <20200107003735.96055-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 1/7] net/bnxt: fix link failure during port\n\ttoggle",
        "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: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>\n\nWe need to wait for up to 500ms to receive async event notification after\nforcing link down. Similarly we need to wait for up to 10s for link to\ncome up after configuring the hardware for link up.\n\nFixes: c09f57b49c13 (\"net/bnxt: add start/stop/link update operations\")\nCc: stable@dpdk.org\n\nSigned-off-by: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>\nSigned-off-by: Somnath Kotur <somnath.kotur@broadcom.com>\n---\n drivers/net/bnxt/bnxt.h        | 10 ++++++----\n drivers/net/bnxt/bnxt_cpr.c    |  2 +-\n drivers/net/bnxt/bnxt_ethdev.c | 18 +++++++++++++-----\n 3 files changed, 20 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h\nindex ab18e8acd..ab0b8dde1 100644\n--- a/drivers/net/bnxt/bnxt.h\n+++ b/drivers/net/bnxt/bnxt.h\n@@ -231,9 +231,10 @@ struct bnxt_pf_info {\n \tuint8_t\t\t\tevb_mode;\n };\n \n-/* Max wait time is 10 * 100ms = 1s */\n-#define BNXT_LINK_WAIT_CNT\t10\n-#define BNXT_LINK_WAIT_INTERVAL\t100\n+/* Max wait time for link up is 10s and link down is 500ms */\n+#define BNXT_LINK_UP_WAIT_CNT\t200\n+#define BNXT_LINK_DOWN_WAIT_CNT\t10\n+#define BNXT_LINK_WAIT_INTERVAL\t50\n struct bnxt_link_info {\n \tuint32_t\t\tphy_flags;\n \tuint8_t\t\t\tmac_type;\n@@ -656,7 +657,8 @@ struct bnxt {\n };\n \n int bnxt_mtu_set_op(struct rte_eth_dev *eth_dev, uint16_t new_mtu);\n-int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete);\n+int bnxt_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete,\n+\t\t     bool exp_link_status);\n int bnxt_rcv_msg_from_vf(struct bnxt *bp, uint16_t vf_id, void *msg);\n int is_bnxt_in_error(struct bnxt *bp);\n uint16_t bnxt_rss_ctxts(const struct bnxt *bp);\ndiff --git a/drivers/net/bnxt/bnxt_cpr.c b/drivers/net/bnxt/bnxt_cpr.c\nindex 2c3129fe2..bb316b9e0 100644\n--- a/drivers/net/bnxt/bnxt_cpr.c\n+++ b/drivers/net/bnxt/bnxt_cpr.c\n@@ -63,7 +63,7 @@ void bnxt_handle_async_event(struct bnxt *bp,\n \tcase HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE:\n \tcase HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE:\n \t\t/* FALLTHROUGH */\n-\t\tbnxt_link_update_op(bp->eth_dev, 0);\n+\t\tbnxt_link_update(bp->eth_dev, 0, ETH_LINK_UP);\n \t\tbreak;\n \tcase HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD:\n \t\tPMD_DRV_LOG(INFO, \"Async event: PF driver unloaded\\n\");\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 1b4ed293d..88df82b86 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -856,7 +856,7 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev)\n \n \teth_dev->data->scattered_rx = bnxt_scattered_rx(eth_dev);\n \n-\tbnxt_link_update_op(eth_dev, 1);\n+\tbnxt_link_update(eth_dev, 1, ETH_LINK_UP);\n \n \tif (rx_offloads & DEV_RX_OFFLOAD_VLAN_FILTER)\n \t\tvlan_mask |= ETH_VLAN_FILTER_MASK;\n@@ -940,7 +940,7 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)\n \t * During reset recovery, there is no need to wait\n \t */\n \tif (!is_bnxt_in_error(bp))\n-\t\trte_delay_ms(BNXT_LINK_WAIT_INTERVAL * 2);\n+\t\tbnxt_link_update(eth_dev, 1, ETH_LINK_DOWN);\n \n \t/* Clean queue intr-vector mapping */\n \trte_intr_efd_disable(intr_handle);\n@@ -1086,12 +1086,14 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev,\n \treturn rc;\n }\n \n-int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)\n+int bnxt_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete,\n+\t\t     bool exp_link_status)\n {\n \tint rc = 0;\n \tstruct bnxt *bp = eth_dev->data->dev_private;\n \tstruct rte_eth_link new;\n-\tunsigned int cnt = BNXT_LINK_WAIT_CNT;\n+\tint cnt = exp_link_status ? BNXT_LINK_UP_WAIT_CNT :\n+\t\t  BNXT_LINK_DOWN_WAIT_CNT;\n \n \trc = is_bnxt_in_error(bp);\n \tif (rc)\n@@ -1109,7 +1111,7 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)\n \t\t\tgoto out;\n \t\t}\n \n-\t\tif (!wait_to_complete || new.link_status)\n+\t\tif (!wait_to_complete || new.link_status == exp_link_status)\n \t\t\tbreak;\n \n \t\trte_delay_ms(BNXT_LINK_WAIT_INTERVAL);\n@@ -1131,6 +1133,12 @@ int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete)\n \treturn rc;\n }\n \n+static int bnxt_link_update_op(struct rte_eth_dev *eth_dev,\n+\t\t\t       int wait_to_complete)\n+{\n+\treturn bnxt_link_update(eth_dev, wait_to_complete, ETH_LINK_UP);\n+}\n+\n static int bnxt_promiscuous_enable_op(struct rte_eth_dev *eth_dev)\n {\n \tstruct bnxt *bp = eth_dev->data->dev_private;\n",
    "prefixes": [
        "v3",
        "1/7"
    ]
}