get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 811636,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/811636/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1504880304-12069-17-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-17-git-send-email-mst@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-08T14:19:40",
    "name": "[PULL,16/17] pci: add reserved slot check to do_pci_register_device()",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "f748417d6ec60a18a028dd99eaa7de83a48713bb",
    "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-17-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/811636/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/811636/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-mx04.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx04.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 3xpfql5Fq1z9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  9 Sep 2017 00:30:27 +1000 (AEST)",
            "from localhost ([::1]:45720 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 1dqKIb-0008NV-QL\n\tfor incoming@patchwork.ozlabs.org; Fri, 08 Sep 2017 10:30:25 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:49293)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <mst@redhat.com>) id 1dqK8N-00074l-6A\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 10:19:55 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <mst@redhat.com>) id 1dqK8H-0005Nm-G0\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 10:19:51 -0400",
            "from mx1.redhat.com ([209.132.183.28]:32986)\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>) id 1dqK8H-0005Mx-6i\n\tfor qemu-devel@nongnu.org; Fri, 08 Sep 2017 10:19:45 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\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 4DEB77EA8B;\n\tFri,  8 Sep 2017 14:19:44 +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 AA5A5600C0;\n\tFri,  8 Sep 2017 14:19:40 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 4DEB77EA8B",
        "Date": "Fri, 8 Sep 2017 17:19:40 +0300",
        "From": "\"Michael S. Tsirkin\" <mst@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Message-ID": "<1504880304-12069-17-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.11",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.28]);\n\tFri, 08 Sep 2017 14:19:44 +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 16/17] pci: add reserved slot check to\n\tdo_pci_register_device()",
        "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": "Marcel Apfelbaum <marcel@redhat.com>,\n\tPeter Maydell <peter.maydell@linaro.org>,\n\tMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>",
        "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: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>\n\nAdd a new slot_reserved_mask bitmask to PCIBus indicating whether or not each\nPCI slot on the bus is reserved. Ensure that it is initialised to zero to\nmaintain the existing behaviour that all slots are available by default, and\nadd the additional check with appropriate error reporting to\ndo_pci_register_device().\n\nSigned-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>\nReviewed-by: Marcel Apfelbaum <marcel@redhat.com>\nReviewed-by: Michael S. Tsirkin <mst@redhat.com>\nSigned-off-by: Michael S. Tsirkin <mst@redhat.com>\n---\n include/hw/pci/pci_bus.h |  1 +\n hw/pci/pci.c             | 18 +++++++++++++++---\n 2 files changed, 16 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/include/hw/pci/pci_bus.h b/include/hw/pci/pci_bus.h\nindex 5484a9b..bc34fd0 100644\n--- a/include/hw/pci/pci_bus.h\n+++ b/include/hw/pci/pci_bus.h\n@@ -23,6 +23,7 @@ struct PCIBus {\n     PCIIOMMUFunc iommu_fn;\n     void *iommu_opaque;\n     uint8_t devfn_min;\n+    uint32_t slot_reserved_mask;\n     pci_set_irq_fn set_irq;\n     pci_map_irq_fn map_irq;\n     pci_route_irq_fn route_intx_to_irq;\ndiff --git a/hw/pci/pci.c b/hw/pci/pci.c\nindex 002e669..21e203b 100644\n--- a/hw/pci/pci.c\n+++ b/hw/pci/pci.c\n@@ -373,6 +373,7 @@ static void pci_bus_init(PCIBus *bus, DeviceState *parent,\n {\n     assert(PCI_FUNC(devfn_min) == 0);\n     bus->devfn_min = devfn_min;\n+    bus->slot_reserved_mask = 0x0;\n     bus->address_space_mem = address_space_mem;\n     bus->address_space_io = address_space_io;\n \n@@ -958,6 +959,11 @@ static bool pci_bus_devfn_available(PCIBus *bus, int devfn)\n     return !(bus->devices[devfn]);\n }\n \n+static bool pci_bus_devfn_reserved(PCIBus *bus, int devfn)\n+{\n+    return bus->slot_reserved_mask & (1UL << PCI_SLOT(devfn));\n+}\n+\n /* -1 for devfn means auto assign */\n static PCIDevice *do_pci_register_device(PCIDevice *pci_dev, PCIBus *bus,\n                                          const char *name, int devfn,\n@@ -981,14 +987,20 @@ static PCIDevice *do_pci_register_device(PCIDevice *pci_dev, PCIBus *bus,\n     if (devfn < 0) {\n         for(devfn = bus->devfn_min ; devfn < ARRAY_SIZE(bus->devices);\n             devfn += PCI_FUNC_MAX) {\n-            if (pci_bus_devfn_available(bus, devfn)) {\n+            if (pci_bus_devfn_available(bus, devfn) &&\n+                   !pci_bus_devfn_reserved(bus, devfn)) {\n                 goto found;\n             }\n         }\n-        error_setg(errp, \"PCI: no slot/function available for %s, all in use\",\n-                   name);\n+        error_setg(errp, \"PCI: no slot/function available for %s, all in use \"\n+                   \"or reserved\", name);\n         return NULL;\n     found: ;\n+    } else if (pci_bus_devfn_reserved(bus, devfn)) {\n+        error_setg(errp, \"PCI: slot %d function %d not available for %s,\"\n+                   \" reserved\",\n+                   PCI_SLOT(devfn), PCI_FUNC(devfn), name);\n+        return NULL;\n     } else if (!pci_bus_devfn_available(bus, devfn)) {\n         error_setg(errp, \"PCI: slot %d function %d not available for %s,\"\n                    \" in use by %s\",\n",
    "prefixes": [
        "PULL",
        "16/17"
    ]
}