get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 811632,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/811632/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504880304-12069-2-git-send-email-mst@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1504880304-12069-2-git-send-email-mst@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-08T14:21:59",
    "name": "[PULL,01/17] vhost: Release memory references on cleanup",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "341d00089a97b2cfd3aaa9f5954b83c7ac2670ab",
    "submitter": {
        "id": 2235,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/2235/?format=api",
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504880304-12069-2-git-send-email-mst@redhat.com/mbox/",
    "series": [
        {
            "id": 2227,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/2227/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2227",
            "date": "2017-09-08T14:18:52",
            "name": "[PULL,01/17] vhost: Release memory references on cleanup",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/2227/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/811632/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/811632/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=mst@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xpfm70MsLz9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  9 Sep 2017 00:27:19 +1000 (AEST)",
            "from localhost ([::1]:45706 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dqKFY-00051W-C0\n\tfor incoming@patchwork.ozlabs.org; Fri, 08 Sep 2017 10:27:16 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:50058)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <mst@redhat.com>) id 1dqKAa-0000kO-Hr\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 10:22:12 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <mst@redhat.com>) id 1dqKAW-0006ye-9S\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 10:22:08 -0400",
            "from mx1.redhat.com ([209.132.183.28]:42588)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <mst@redhat.com>)\n\tid 1dqKAW-0006xq-3G; Fri, 08 Sep 2017 10:22:04 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 4034480F95;\n\tFri,  8 Sep 2017 14:22:03 +0000 (UTC)",
            "from redhat.com (ovpn-120-144.rdu2.redhat.com [10.10.120.144])\n\tby smtp.corp.redhat.com (Postfix) with SMTP id 03807627DF;\n\tFri,  8 Sep 2017 14:21:59 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 4034480F95",
        "Date": "Fri, 8 Sep 2017 17:21:59 +0300",
        "From": "\"Michael S. Tsirkin\" <mst@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Message-ID": "<1504880304-12069-2-git-send-email-mst@redhat.com>",
        "References": "<1504880304-12069-1-git-send-email-mst@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=us-ascii",
        "Content-Disposition": "inline",
        "In-Reply-To": "<1504880304-12069-1-git-send-email-mst@redhat.com>",
        "X-Mutt-Fcc": "=sent",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.15",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tFri, 08 Sep 2017 14:22:03 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PULL 01/17] vhost: Release memory references on\n\tcleanup",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "Peter Maydell <peter.maydell@linaro.org>,\n\tAlex Williamson <alex.williamson@redhat.com>,\n\tqemu-stable@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "From: Alex Williamson <alex.williamson@redhat.com>\n\nvhost registers a MemoryListener where it adds and removes references\nto MemoryRegions as the MemoryRegionSections pass through.  The\nregion_add callback is invoked for each existing section when the\nMemoryListener is registered, but unregistering the MemoryListener\nperforms no reciprocal region_del callback.  It's therefore the\nowner of the MemoryListener's responsibility to cleanup any persistent\nchanges, such as these memory references, after unregistering.\n\nThe consequence of this bug is that if we have both a vhost device\nand a vfio device, the vhost device will reference any mmap'd MMIO of\nthe vfio device via this MemoryListener.  If the vhost device is then\nremoved, those references remain outstanding.  If we then attempt to\nremove the vfio device, it never gets finalized and the only way to\nrelease the kernel file descriptors is to terminate the QEMU process.\n\nFixes: dfde4e6e1a86 (\"memory: add ref/unref calls\")\nCc: Michael S. Tsirkin <mst@redhat.com>\nCc: Paolo Bonzini <pbonzini@redhat.com>\nCc: qemu-stable@nongnu.org # v1.6.0+\nSigned-off-by: Alex Williamson <alex.williamson@redhat.com>\nReviewed-by: Michael S. Tsirkin <mst@redhat.com>\nSigned-off-by: Michael S. Tsirkin <mst@redhat.com>\n---\n hw/virtio/vhost.c | 4 ++++\n 1 file changed, 4 insertions(+)",
    "diff": "diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c\nindex 0049a2c..5fd69f0 100644\n--- a/hw/virtio/vhost.c\n+++ b/hw/virtio/vhost.c\n@@ -1356,6 +1356,10 @@ void vhost_dev_cleanup(struct vhost_dev *hdev)\n     if (hdev->mem) {\n         /* those are only safe after successful init */\n         memory_listener_unregister(&hdev->memory_listener);\n+        for (i = 0; i < hdev->n_mem_sections; ++i) {\n+            MemoryRegionSection *section = &hdev->mem_sections[i];\n+            memory_region_unref(section->mr);\n+        }\n         QLIST_REMOVE(hdev, entry);\n     }\n     if (hdev->migration_blocker) {\n",
    "prefixes": [
        "PULL",
        "01/17"
    ]
}