get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42618,
    "url": "http://patches.dpdk.org/api/patches/42618/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1531136777-9815-3-git-send-email-jia.guo@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": "<1531136777-9815-3-git-send-email-jia.guo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1531136777-9815-3-git-send-email-jia.guo@intel.com",
    "date": "2018-07-09T11:46:15",
    "name": "[v3,2/4] net/ixgbe: enable hotplug detect in ixgbe",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "250055a3ff41e66aabcd6be4d73bbca2aafec39e",
    "submitter": {
        "id": 507,
        "url": "http://patches.dpdk.org/api/people/507/?format=api",
        "name": "Guo, Jia",
        "email": "jia.guo@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1531136777-9815-3-git-send-email-jia.guo@intel.com/mbox/",
    "series": [
        {
            "id": 472,
            "url": "http://patches.dpdk.org/api/series/472/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=472",
            "date": "2018-07-09T11:46:13",
            "name": "Enable eal hotplug event detect for i40e/ixgbe",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/472/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/42618/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/42618/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 64D101B3A2;\n\tMon,  9 Jul 2018 13:48:48 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby dpdk.org (Postfix) with ESMTP id 57EBE1B1FC\n\tfor <dev@dpdk.org>; Mon,  9 Jul 2018 13:48:44 +0200 (CEST)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t09 Jul 2018 04:48:43 -0700",
            "from jeffguo-z170x-ud5.sh.intel.com (HELO localhost.localdomain)\n\t([10.67.104.10])\n\tby fmsmga002.fm.intel.com with ESMTP; 09 Jul 2018 04:48:40 -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,330,1526367600\"; d=\"scan'208\";a=\"65345357\"",
        "From": "Jeff Guo <jia.guo@intel.com>",
        "To": "stephen@networkplumber.org, bruce.richardson@intel.com,\n\tferruh.yigit@intel.com, konstantin.ananyev@intel.com,\n\tgaetan.rivet@6wind.com, jingjing.wu@intel.com, thomas@monjalon.net,\n\tmotih@mellanox.com, matan@mellanox.com, harry.van.haaren@intel.com,\n\tqi.z.zhang@intel.com, shaopeng.he@intel.com,\n\tbernard.iremonger@intel.com, \n\tarybchenko@solarflare.com, wenzhuo.lu@intel.com",
        "Cc": "jblunck@infradead.org, shreyansh.jain@nxp.com, dev@dpdk.org,\n\tjia.guo@intel.com, helin.zhang@intel.com",
        "Date": "Mon,  9 Jul 2018 19:46:15 +0800",
        "Message-Id": "<1531136777-9815-3-git-send-email-jia.guo@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1531136777-9815-1-git-send-email-jia.guo@intel.com>",
        "References": "<1530787185-5915-1-git-send-email-jia.guo@intel.com>\n\t<1531136777-9815-1-git-send-email-jia.guo@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v3 2/4] net/ixgbe: enable hotplug detect in ixgbe",
        "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": "This patch aim to enable hotplug detect in ixgbe pmd driver. Firstly it\nset the flags RTE_PCI_DRV_INTR_RMV in drv_flags to announce the hotplug\nability, and then use rte_dev_event_callback_register to register\nthe hotplug event callback to eal. When eal detect the hotplug event,\nit will call the callback to process it, if the event is hotplug remove,\nit will trigger the RTE_ETH_EVENT_INTR_RMV event into ethdev callback\nto let app process the hotplug for the ethdev.\n\nThis is an example for other driver, that if any driver support hotplug\nfeature could be use this way to enable hotplug detect.\n\nSigned-off-by: Jeff Guo <jia.guo@intel.com>\n---\nv3->v2:\nremove the callback from driver to ethdev.\n---\n drivers/net/ixgbe/ixgbe_ethdev.c | 7 ++++++-\n 1 file changed, 6 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 87d2ad0..a1c2588 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -1678,6 +1678,11 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)\n \trte_intr_enable(intr_handle);\n \tixgbevf_intr_enable(eth_dev);\n \n+\t/* register the device event callback */\n+\trte_dev_event_callback_register(eth_dev->device->name,\n+\t\t\t\t\trte_eth_dev_event_callback,\n+\t\t\t\t\t(void *)eth_dev);\n+\n \tPMD_INIT_LOG(DEBUG, \"port %d vendorID=0x%x deviceID=0x%x mac.type=%s\",\n \t\t     eth_dev->data->port_id, pci_dev->id.vendor_id,\n \t\t     pci_dev->id.device_id, \"ixgbe_mac_82599_vf\");\n@@ -1801,7 +1806,7 @@ static int eth_ixgbe_pci_remove(struct rte_pci_device *pci_dev)\n static struct rte_pci_driver rte_ixgbe_pmd = {\n \t.id_table = pci_id_ixgbe_map,\n \t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n-\t\t     RTE_PCI_DRV_IOVA_AS_VA,\n+\t\t     RTE_PCI_DRV_IOVA_AS_VA | RTE_PCI_DRV_INTR_RMV,\n \t.probe = eth_ixgbe_pci_probe,\n \t.remove = eth_ixgbe_pci_remove,\n };\n",
    "prefixes": [
        "v3",
        "2/4"
    ]
}