get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42771,
    "url": "http://patches.dpdk.org/api/patches/42771/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20180711030917.181098-13-qi.z.zhang@intel.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": "<20180711030917.181098-13-qi.z.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180711030917.181098-13-qi.z.zhang@intel.com",
    "date": "2018-07-11T03:09:10",
    "name": "[v11,12/19] net/null: enable hotplug on secondary process",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "bf75a6004838694e6b5d07a7bd4b593923de82e2",
    "submitter": {
        "id": 504,
        "url": "http://patches.dpdk.org/api/people/504/?format=api",
        "name": "Qi Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20180711030917.181098-13-qi.z.zhang@intel.com/mbox/",
    "series": [
        {
            "id": 508,
            "url": "http://patches.dpdk.org/api/series/508/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=508",
            "date": "2018-07-11T03:08:59",
            "name": "enable hotplug on multi-process",
            "version": 11,
            "mbox": "http://patches.dpdk.org/series/508/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/42771/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/42771/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5158E1B4E4;\n\tWed, 11 Jul 2018 05:09:36 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n\tby dpdk.org (Postfix) with ESMTP id 794551B46F\n\tfor <dev@dpdk.org>; Wed, 11 Jul 2018 05:09:05 +0200 (CEST)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t10 Jul 2018 20:09:01 -0700",
            "from dpdk51.sh.intel.com ([10.67.110.190])\n\tby fmsmga001.fm.intel.com with ESMTP; 10 Jul 2018 20:08:58 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,336,1526367600\"; d=\"scan'208\";a=\"71306901\"",
        "From": "Qi Zhang <qi.z.zhang@intel.com>",
        "To": "thomas@monjalon.net,\n\tanatoly.burakov@intel.com",
        "Cc": "konstantin.ananyev@intel.com, dev@dpdk.org, bruce.richardson@intel.com, \n\tferruh.yigit@intel.com, benjamin.h.shelton@intel.com,\n\tnarender.vangati@intel.com, Qi Zhang <qi.z.zhang@intel.com>",
        "Date": "Wed, 11 Jul 2018 11:09:10 +0800",
        "Message-Id": "<20180711030917.181098-13-qi.z.zhang@intel.com>",
        "X-Mailer": "git-send-email 2.13.6",
        "In-Reply-To": "<20180711030917.181098-1-qi.z.zhang@intel.com>",
        "References": "<20180607123849.14439-1-qi.z.zhang@intel.com>\n\t<20180711030917.181098-1-qi.z.zhang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v11 12/19] net/null: enable hotplug on secondary\n\tprocess",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Attach port from secondary should ignore devargs since the private\ndevice is not necessary to support. Also previously, detach port on\na secondary process will mess primary process and cause the same\ndevice can't be attached back again. A secondary process should use\nrte_eth_release_port_private to release a port.\n\nSigned-off-by: Qi Zhang <qi.z.zhang@intel.com>\n---\n drivers/net/null/rte_eth_null.c | 12 +++++++++---\n 1 file changed, 9 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c\nindex 1d2e6b9e9..4d5989bd1 100644\n--- a/drivers/net/null/rte_eth_null.c\n+++ b/drivers/net/null/rte_eth_null.c\n@@ -614,8 +614,7 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)\n \tparams = rte_vdev_device_args(dev);\n \tPMD_LOG(INFO, \"Initializing pmd_null for %s\", name);\n \n-\tif (rte_eal_process_type() == RTE_PROC_SECONDARY &&\n-\t    strlen(params) == 0) {\n+\tif (rte_eal_process_type() == RTE_PROC_SECONDARY) {\n \t\teth_dev = rte_eth_dev_attach_secondary(name);\n \t\tif (!eth_dev) {\n \t\t\tPMD_LOG(ERR, \"Failed to probe %s\", name);\n@@ -623,6 +622,7 @@ rte_pmd_null_probe(struct rte_vdev_device *dev)\n \t\t}\n \t\t/* TODO: request info from primary to set up Rx and Tx */\n \t\teth_dev->dev_ops = &ops;\n+\t\teth_dev->device = &dev->device;\n \t\trte_eth_dev_probing_finish(eth_dev);\n \t\treturn 0;\n \t}\n@@ -667,18 +667,24 @@ static int\n rte_pmd_null_remove(struct rte_vdev_device *dev)\n {\n \tstruct rte_eth_dev *eth_dev = NULL;\n+\tconst char *name;\n \n \tif (!dev)\n \t\treturn -EINVAL;\n \n+\tname = rte_vdev_device_name(dev);\n+\n \tPMD_LOG(INFO, \"Closing null ethdev on numa socket %u\",\n \t\t\trte_socket_id());\n \n \t/* find the ethdev entry */\n-\teth_dev = rte_eth_dev_allocated(rte_vdev_device_name(dev));\n+\teth_dev = rte_eth_dev_allocated(name);\n \tif (eth_dev == NULL)\n \t\treturn -1;\n \n+\tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n+\t\treturn rte_eth_dev_release_port_private(eth_dev);\n+\n \trte_free(eth_dev->data->dev_private);\n \n \trte_eth_dev_release_port(eth_dev);\n",
    "prefixes": [
        "v11",
        "12/19"
    ]
}