get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 16146,
    "url": "http://patches.dpdk.org/api/patches/16146/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20160926161852.GA28159@C02PT1RBG8WP.aus.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": "<20160926161852.GA28159@C02PT1RBG8WP.aus.broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20160926161852.GA28159@C02PT1RBG8WP.aus.broadcom.com",
    "date": "2016-09-26T16:18:52",
    "name": "[dpdk-dev,v2,06/15] bnxt: Add support for port hotplug",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "a19867f6561b86c757896db60cc28f579c8e7c7a",
    "submitter": {
        "id": 501,
        "url": "http://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 10,
        "url": "http://patches.dpdk.org/api/users/10/?format=api",
        "username": "bruce",
        "first_name": "Bruce",
        "last_name": "Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20160926161852.GA28159@C02PT1RBG8WP.aus.broadcom.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/16146/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/16146/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 5516272FB;\n\tMon, 26 Sep 2016 18:18:56 +0200 (CEST)",
            "from mail-gw3-out.broadcom.com (mail-gw3-out.broadcom.com\n\t[216.31.210.64]) by dpdk.org (Postfix) with ESMTP id 8488372FB\n\tfor <dev@dpdk.org>; Mon, 26 Sep 2016 18:18:54 +0200 (CEST)",
            "from mail-irv-18.broadcom.com ([10.15.198.37])\n\tby mail-gw3-out.broadcom.com with ESMTP; 26 Sep 2016 09:53:07 -0700",
            "from mail-irva-12.broadcom.com (mail-irva-12.broadcom.com\n\t[10.11.16.101])\n\tby mail-irv-18.broadcom.com (Postfix) with ESMTP id DDF61850C2\n\tfor <dev@dpdk.org>; Mon, 26 Sep 2016 09:18:59 -0700 (PDT)",
            "from C02PT1RBG8WP.aus.broadcom.com\n\t(dhcp-10-46-50-80.aus.broadcom.com [10.46.50.80])\n\tby mail-irva-12.broadcom.com (Postfix) with ESMTP id 5B9D0A6280\n\tfor <dev@dpdk.org>; Mon, 26 Sep 2016 09:18:53 -0700 (PDT)"
        ],
        "X-IronPort-AV": "E=Sophos;i=\"5.30,400,1470726000\"; d=\"scan'208\";a=\"105165748\"",
        "Date": "Mon, 26 Sep 2016 11:18:52 -0500",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Message-ID": "<20160926161852.GA28159@C02PT1RBG8WP.aus.broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=us-ascii",
        "Content-Disposition": "inline",
        "User-Agent": "Mutt/1.5.23 (2014-03-12)",
        "Subject": "[dpdk-dev] [v2 06/15] bnxt: Add support for port hotplug",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This patch adds support for port hotplug framework.\n\nSigned-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt_cpr.c    |  3 +++\n drivers/net/bnxt/bnxt_ethdev.c | 24 ++++++++++++++++++++----\n drivers/net/bnxt/bnxt_filter.c |  3 +++\n drivers/net/bnxt/bnxt_vnic.c   |  3 +++\n 4 files changed, 29 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_cpr.c b/drivers/net/bnxt/bnxt_cpr.c\nindex 60c277a..e9f9741 100644\n--- a/drivers/net/bnxt/bnxt_cpr.c\n+++ b/drivers/net/bnxt/bnxt_cpr.c\n@@ -124,6 +124,9 @@ void bnxt_free_def_cp_ring(struct bnxt *bp)\n {\n \tstruct bnxt_cp_ring_info *cpr = bp->def_cp_ring;\n \n+\tif (cpr == NULL)\n+\t\treturn;\n+\n \tbnxt_free_ring(cpr->cp_ring_struct);\n \trte_free(cpr->cp_ring_struct);\n \trte_free(cpr);\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 110ec2a..bd1ffc0 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -478,7 +478,14 @@ static void bnxt_dev_close_op(struct rte_eth_dev *eth_dev)\n \tbnxt_free_tx_mbufs(bp);\n \tbnxt_free_rx_mbufs(bp);\n \tbnxt_free_mem(bp);\n-\trte_free(eth_dev->data->mac_addrs);\n+\tif (eth_dev->data->mac_addrs != NULL) {\n+\t\trte_free(eth_dev->data->mac_addrs);\n+\t\teth_dev->data->mac_addrs = NULL;\n+\t}\n+\tif (bp->grp_info != NULL) {\n+\t\trte_free(bp->grp_info);\n+\t\tbp->grp_info = NULL;\n+\t}\n }\n \n /* Unload the driver, release resources */\n@@ -1084,12 +1091,20 @@ bnxt_dev_uninit(struct rte_eth_dev *eth_dev) {\n \tstruct bnxt *bp = eth_dev->data->dev_private;\n \tint rc;\n \n-\tif (eth_dev->data->mac_addrs)\n+\tif (eth_dev->data->mac_addrs != NULL) {\n \t\trte_free(eth_dev->data->mac_addrs);\n-\tif (bp->grp_info)\n+\t\teth_dev->data->mac_addrs = NULL;\n+\t}\n+\tif (bp->grp_info != NULL) {\n \t\trte_free(bp->grp_info);\n+\t\tbp->grp_info = NULL;\n+\t}\n \trc = bnxt_hwrm_func_driver_unregister(bp, 0);\n \tbnxt_free_hwrm_resources(bp);\n+\teth_dev->dev_ops = NULL;\n+\teth_dev->rx_pkt_burst = NULL;\n+\teth_dev->tx_pkt_burst = NULL;\n+\n \treturn rc;\n }\n \n@@ -1097,7 +1112,8 @@ static struct eth_driver bnxt_rte_pmd = {\n \t.pci_drv = {\n \t\t    .name = \"rte_\" DRV_MODULE_NAME \"_pmd\",\n \t\t    .id_table = bnxt_pci_id_map,\n-\t\t    .drv_flags = RTE_PCI_DRV_NEED_MAPPING,\n+\t\t    .drv_flags = RTE_PCI_DRV_NEED_MAPPING |\n+\t\t\t    RTE_PCI_DRV_DETACHABLE,\n \t\t    },\n \t.eth_dev_init = bnxt_dev_init,\n \t.eth_dev_uninit = bnxt_dev_uninit,\ndiff --git a/drivers/net/bnxt/bnxt_filter.c b/drivers/net/bnxt/bnxt_filter.c\nindex f03a1dc..df1042c 100644\n--- a/drivers/net/bnxt/bnxt_filter.c\n+++ b/drivers/net/bnxt/bnxt_filter.c\n@@ -118,6 +118,9 @@ void bnxt_free_filter_mem(struct bnxt *bp)\n \tuint16_t max_filters, i;\n \tint rc = 0;\n \n+\tif (bp->filter_info == NULL)\n+\t\treturn;\n+\n \t/* Ensure that all filters are freed */\n \tif (BNXT_PF(bp)) {\n \t\tstruct bnxt_pf_info *pf = &bp->pf;\ndiff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c\nindex c04c4c7..6297e87 100644\n--- a/drivers/net/bnxt/bnxt_vnic.c\n+++ b/drivers/net/bnxt/bnxt_vnic.c\n@@ -229,6 +229,9 @@ void bnxt_free_vnic_mem(struct bnxt *bp)\n \tstruct bnxt_vnic_info *vnic;\n \tuint16_t max_vnics, i;\n \n+\tif (bp->vnic_info == NULL)\n+\t\treturn;\n+\n \tif (BNXT_PF(bp)) {\n \t\tstruct bnxt_pf_info *pf = &bp->pf;\n \n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "06/15"
    ]
}