get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 43762,
    "url": "http://patches.dpdk.org/api/patches/43762/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1534502916-31636-2-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": "<1534502916-31636-2-git-send-email-jia.guo@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1534502916-31636-2-git-send-email-jia.guo@intel.com",
    "date": "2018-08-17T10:48:28",
    "name": "[v10,1/8] bus: add memory failure handler",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "dcbfb192da35c4637ef851ee0d22793c210282d3",
    "submitter": {
        "id": 507,
        "url": "http://patches.dpdk.org/api/people/507/?format=api",
        "name": "Guo, Jia",
        "email": "jia.guo@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/1534502916-31636-2-git-send-email-jia.guo@intel.com/mbox/",
    "series": [
        {
            "id": 1007,
            "url": "http://patches.dpdk.org/api/series/1007/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1007",
            "date": "2018-08-17T10:48:27",
            "name": "hotplug failure handle mechanism",
            "version": 10,
            "mbox": "http://patches.dpdk.org/series/1007/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/43762/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/43762/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 CE1392A62;\n\tFri, 17 Aug 2018 12:51:24 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby dpdk.org (Postfix) with ESMTP id 613B91E2F\n\tfor <dev@dpdk.org>; Fri, 17 Aug 2018 12:51:23 +0200 (CEST)",
            "from fmsmga007.fm.intel.com ([10.253.24.52])\n\tby fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t17 Aug 2018 03:51:22 -0700",
            "from jeffguo-z170x-ud5.sh.intel.com (HELO localhost.localdomain)\n\t([10.67.104.10])\n\tby fmsmga007.fm.intel.com with ESMTP; 17 Aug 2018 03:51:20 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.53,250,1531810800\"; d=\"scan'208\";a=\"63131817\"",
        "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": "Fri, 17 Aug 2018 18:48:28 +0800",
        "Message-Id": "<1534502916-31636-2-git-send-email-jia.guo@intel.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1534502916-31636-1-git-send-email-jia.guo@intel.com>",
        "References": "<1498711073-42917-1-git-send-email-jia.guo@intel.com>\n\t<1534502916-31636-1-git-send-email-jia.guo@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v10 1/8] bus: add memory failure handler",
        "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": "A memory failure and system crash can be caused if a device is hotplugged\nout but the application can still access the device by MMIO.\n\nThis patch introduces bus ops to handle memory failures of illegal access,\nespecially for hotplug. Each bus can implement its own case-dependent\nlogic to handle the memory failures.\n\nSigned-off-by: Jeff Guo <jia.guo@intel.com>\n---\nv10->v9:\nmodify bus ops name\n---\n lib/librte_eal/common/include/rte_bus.h | 16 ++++++++++++++++\n 1 file changed, 16 insertions(+)",
    "diff": "diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h\nindex b7b5b08..2606451 100644\n--- a/lib/librte_eal/common/include/rte_bus.h\n+++ b/lib/librte_eal/common/include/rte_bus.h\n@@ -168,6 +168,20 @@ typedef int (*rte_bus_unplug_t)(struct rte_device *dev);\n typedef int (*rte_bus_parse_t)(const char *name, void *addr);\n \n /**\n+ * Implement a specific memory failure handler, which is responsible for\n+ * handle the failure of memory illegal access, especially for hotplug. When\n+ * the event of hotplug-out be detected, it could call this function to handle\n+ * the memory failure and avoid system crash.\n+ * @param dev\n+ *\tPointer of the device structure.\n+ *\n+ * @return\n+ *\t0 on success.\n+ *\t!0 on error.\n+ */\n+typedef int (*rte_bus_memory_failure_handler_t)(struct rte_device *dev);\n+\n+/**\n  * Bus scan policies\n  */\n enum rte_bus_scan_mode {\n@@ -212,6 +226,8 @@ struct rte_bus {\n \tstruct rte_bus_conf conf;    /**< Bus configuration */\n \trte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */\n \trte_dev_iterate_t dev_iterate; /**< Device iterator. */\n+\trte_bus_memory_failure_handler_t memory_failure_handler;\n+\t\t\t\t\t/**< handle memory failure on the bus */\n };\n \n /**\n",
    "prefixes": [
        "v10",
        "1/8"
    ]
}